Search
lxdream.org :: lxdream/test/sh4/cmp.s
lxdream 0.9.1
released Jun 29
Download Now
filename test/sh4/cmp.s
changeset 231:a9e61a96a885
author nkeynes
date Thu Jul 24 07:27:48 2008 +0000 (15 years ago)
permissions -rw-r--r--
last change Halt emulation after reporting an error
file annotate diff log raw
nkeynes@231
     1
.section .text
nkeynes@231
     2
.include "sh4/inc.s"
nkeynes@231
     3
!
nkeynes@231
     4
! Test cmp/xx
nkeynes@231
     5
nkeynes@231
     6
.global _test_cmp
nkeynes@231
     7
_test_cmp:	
nkeynes@231
     8
	start_test
nkeynes@231
     9
nkeynes@231
    10
test_cmpeq_1:	! CMP/EQ 0, 0
nkeynes@231
    11
	add #1, r12
nkeynes@231
    12
	xor r0, r0
nkeynes@231
    13
	xor r1, r1
nkeynes@231
    14
	cmp/eq r0, r1
nkeynes@231
    15
	bt test_cmpeq_2
nkeynes@231
    16
	fail test_cmpeq_str_k
nkeynes@231
    17
nkeynes@231
    18
test_cmpeq_2:	! CMP/EQ !0, 0
nkeynes@231
    19
	add #1, r12
nkeynes@231
    20
	mov #50, r2
nkeynes@231
    21
	cmp/eq r1, r2
nkeynes@231
    22
	bf test_cmpeq_3
nkeynes@231
    23
	fail test_cmpeq_str_k
nkeynes@231
    24
nkeynes@231
    25
test_cmpeq_3:	! CMP/EQ -50, 50
nkeynes@231
    26
	add #1, r12
nkeynes@231
    27
	mov #-50, r3
nkeynes@231
    28
	cmp/eq r3, r2
nkeynes@231
    29
	bf test_cmpeq_4
nkeynes@231
    30
	fail test_cmpeq_str_k
nkeynes@231
    31
nkeynes@231
    32
test_cmpeq_4:	! CMP/EQ 50, 50
nkeynes@231
    33
	add #1, r12
nkeynes@231
    34
	mov #50, r6
nkeynes@231
    35
	cmp/eq r6, r2
nkeynes@231
    36
	bt test_cmpeq_5
nkeynes@231
    37
	fail test_cmpeq_str_k
nkeynes@231
    38
nkeynes@231
    39
test_cmpeq_5:
nkeynes@231
    40
nkeynes@231
    41
test_cmpeq_6:
nkeynes@231
    42
nkeynes@231
    43
test_cmpge_1:	
nkeynes@231
    44
	add #1, r12
nkeynes@231
    45
	cmp/ge r2, r6
nkeynes@231
    46
	bt test_cmpge_2
nkeynes@231
    47
	fail test_cmpge_str_k
nkeynes@231
    48
nkeynes@231
    49
test_cmpge_2:
nkeynes@231
    50
	add #1, r12
nkeynes@231
    51
	cmp/ge r3, r2
nkeynes@231
    52
	bt test_cmpge_3
nkeynes@231
    53
	fail test_cmpge_str_k
nkeynes@231
    54
nkeynes@231
    55
test_cmpge_3:
nkeynes@231
    56
	add #1, r12
nkeynes@231
    57
	cmp/ge r2, r3
nkeynes@231
    58
	bf test_cmpge_4
nkeynes@231
    59
	fail test_cmpge_str_k
nkeynes@231
    60
nkeynes@231
    61
test_cmpge_4:
nkeynes@231
    62
	add #1, r12
nkeynes@231
    63
	mov #75, r5
nkeynes@231
    64
	cmp/ge r2, r5
nkeynes@231
    65
	bt test_cmpge_5
nkeynes@231
    66
	fail test_cmpge_str_k
nkeynes@231
    67
nkeynes@231
    68
test_cmpge_5:	
nkeynes@231
    69
	add #1, r12
nkeynes@231
    70
	cmp/ge r5, r2
nkeynes@231
    71
	bf test_cmpgt_1
nkeynes@231
    72
	fail test_cmpge_str_k
nkeynes@231
    73
	
nkeynes@231
    74
test_cmpgt_1:	
nkeynes@231
    75
	add #1, r12
nkeynes@231
    76
	cmp/gt r2, r6
nkeynes@231
    77
	bf test_cmpgt_2
nkeynes@231
    78
	fail test_cmpgt_str_k
nkeynes@231
    79
nkeynes@231
    80
test_cmpgt_2:
nkeynes@231
    81
	add #1, r12
nkeynes@231
    82
	cmp/gt r3, r2
nkeynes@231
    83
	bt test_cmpgt_3
nkeynes@231
    84
	fail test_cmpgt_str_k
nkeynes@231
    85
nkeynes@231
    86
test_cmpgt_3:
nkeynes@231
    87
	add #1, r12
nkeynes@231
    88
	cmp/gt r2, r3
nkeynes@231
    89
	bf test_cmpgt_4
nkeynes@231
    90
	fail test_cmpgt_str_k
nkeynes@231
    91
nkeynes@231
    92
test_cmpgt_4:
nkeynes@231
    93
	add #1, r12
nkeynes@231
    94
	mov #75, r5
nkeynes@231
    95
	cmp/gt r2, r5
nkeynes@231
    96
	bt test_cmpgt_5
nkeynes@231
    97
	fail test_cmpgt_str_k
nkeynes@231
    98
nkeynes@231
    99
test_cmpgt_5:	
nkeynes@231
   100
	add #1, r12
nkeynes@231
   101
	cmp/gt r5, r2
nkeynes@231
   102
	bf test_cmphi_1
nkeynes@231
   103
	fail test_cmpgt_str_k
nkeynes@231
   104
	
nkeynes@231
   105
	
nkeynes@231
   106
test_cmphi_1:	
nkeynes@231
   107
	add #1, r12
nkeynes@231
   108
	cmp/hi r2, r6
nkeynes@231
   109
	bf test_cmphi_2
nkeynes@231
   110
	fail test_cmphi_str_k
nkeynes@231
   111
nkeynes@231
   112
test_cmphi_2:
nkeynes@231
   113
	add #1, r12
nkeynes@231
   114
	cmp/hi r3, r2
nkeynes@231
   115
	bf test_cmphi_3
nkeynes@231
   116
	fail test_cmphi_str_k
nkeynes@231
   117
nkeynes@231
   118
test_cmphi_3:
nkeynes@231
   119
	add #1, r12
nkeynes@231
   120
	cmp/hi r2, r3
nkeynes@231
   121
	bt test_cmphi_4
nkeynes@231
   122
	fail test_cmphi_str_k
nkeynes@231
   123
nkeynes@231
   124
test_cmphi_4:
nkeynes@231
   125
	add #1, r12
nkeynes@231
   126
	mov #75, r5
nkeynes@231
   127
	cmp/hi r2, r5
nkeynes@231
   128
	bt test_cmphi_5
nkeynes@231
   129
	fail test_cmphi_str_k
nkeynes@231
   130
nkeynes@231
   131
test_cmphi_5:	
nkeynes@231
   132
	add #1, r12
nkeynes@231
   133
	cmp/hi r5, r2
nkeynes@231
   134
	bf test_cmphs_1
nkeynes@231
   135
	fail test_cmphi_str_k
nkeynes@231
   136
nkeynes@231
   137
test_cmphs_1:	
nkeynes@231
   138
	add #1, r12
nkeynes@231
   139
	cmp/hs r2, r6
nkeynes@231
   140
	bt test_cmphs_2
nkeynes@231
   141
	fail test_cmphs_str_k
nkeynes@231
   142
nkeynes@231
   143
test_cmphs_2:
nkeynes@231
   144
	add #1, r12
nkeynes@231
   145
	cmp/hs r3, r2
nkeynes@231
   146
	bf test_cmphs_3
nkeynes@231
   147
	fail test_cmphs_str_k
nkeynes@231
   148
nkeynes@231
   149
test_cmphs_3:
nkeynes@231
   150
	add #1, r12
nkeynes@231
   151
	cmp/hs r2, r3
nkeynes@231
   152
	bt test_cmphs_4
nkeynes@231
   153
	fail test_cmphs_str_k
nkeynes@231
   154
nkeynes@231
   155
test_cmphs_4:
nkeynes@231
   156
	add #1, r12
nkeynes@231
   157
	mov #75, r5
nkeynes@231
   158
	cmp/hs r2, r5
nkeynes@231
   159
	bt test_cmphs_5
nkeynes@231
   160
	fail test_cmphs_str_k
nkeynes@231
   161
nkeynes@231
   162
test_cmphs_5:	
nkeynes@231
   163
	add #1, r12
nkeynes@231
   164
	cmp/hs r5, r2
nkeynes@231
   165
	bf test_cmppl_1
nkeynes@231
   166
	fail test_cmphs_str_k
nkeynes@231
   167
nkeynes@231
   168
test_cmppl_1:
nkeynes@231
   169
	
nkeynes@231
   170
test_cmp_end:
nkeynes@231
   171
	end_test test_cmp_str_k
nkeynes@231
   172
test_cmpeq_str:
nkeynes@231
   173
	.string "CMP/EQ"
nkeynes@231
   174
test_cmpge_str:
nkeynes@231
   175
	.string "CMP/GE"
nkeynes@231
   176
test_cmpgt_str:
nkeynes@231
   177
	.string "CMP/GT"
nkeynes@231
   178
test_cmphi_str:
nkeynes@231
   179
	.string "CMP/HI"
nkeynes@231
   180
test_cmphs_str:
nkeynes@231
   181
	.string "CMP/HS"
nkeynes@231
   182
test_cmp_str:
nkeynes@231
   183
	.string "CMP"
nkeynes@231
   184
nkeynes@231
   185
.align 4	
nkeynes@231
   186
test_cmp_str_k:	
nkeynes@231
   187
	.long test_cmp_str
nkeynes@231
   188
test_cmpeq_str_k:
nkeynes@231
   189
	.long test_cmpeq_str
nkeynes@231
   190
test_cmpge_str_k:
nkeynes@231
   191
	.long test_cmpge_str
nkeynes@231
   192
test_cmpgt_str_k:
nkeynes@231
   193
	.long test_cmpgt_str
nkeynes@231
   194
test_cmphi_str_k:
nkeynes@231
   195
	.long test_cmphi_str
nkeynes@231
   196
test_cmphs_str_k:
nkeynes@231
   197
	.long test_cmphs_str
nkeynes@231
   198
	
.