1 1.1 christos # Hitachi H8 testcase 'not.b, not.w, not.l' 2 1.1 christos # mach(): all 3 1.1 christos # as(h8300): --defsym sim_cpu=0 4 1.1 christos # as(h8300h): --defsym sim_cpu=1 5 1.1 christos # as(h8300s): --defsym sim_cpu=2 6 1.1 christos # as(h8sx): --defsym sim_cpu=3 7 1.1 christos # ld(h8300h): -m h8300helf 8 1.1 christos # ld(h8300s): -m h8300self 9 1.1 christos # ld(h8sx): -m h8300sxelf 10 1.1 christos 11 1.1 christos .include "testutils.inc" 12 1.1 christos 13 1.1 christos # Instructions tested: 14 1.1 christos # not.b rd ; 1 7 0 rd 15 1.1 christos # not.b @erd ; 7 d rd ???? 1 7 0 ignore 16 1.1 christos # not.b @erd+ ; 0 1 7 4 6 c rd 1??? 1 7 0 ignore 17 1.1 christos # not.b @erd- ; 0 1 7 6 6 c rd 1??? 1 7 0 ignore 18 1.1 christos # not.b @+erd ; 0 1 7 5 6 c rd 1??? 1 7 0 ignore 19 1.1 christos # not.b @-erd ; 0 1 7 7 6 c rd 1??? 1 7 0 ignore 20 1.1 christos # not.b @(d:2, erd) ; 0 1 7 01dd 6 8 rd 8 1 7 0 ignore 21 1.1 christos # not.b @(d:16, erd) ; 0 1 7 4 6 e rd 1??? dd:16 1 7 0 ignore 22 1.1 christos # not.b @(d:32, erd) ; 7 8 rd 4 6 a 2 1??? dd:32 1 7 0 ignore 23 1.1 christos # not.b @aa:16 ; 6 a 1 1??? aa:16 1 7 0 ignore 24 1.1 christos # not.b @aa:32 ; 6 a 3 1??? aa:32 1 7 0 ignore 25 1.1 christos # word operations 26 1.1 christos # long operations 27 1.1 christos # 28 1.1 christos # Coming soon: 29 1.1 christos # not.b @aa:8 ; 7 f aaaaaaaa 1 7 0 ignore 30 1.1 christos # 31 1.1 christos 32 1.1 christos .data 33 1.1 christos byte_dest: .byte 0xa5 34 1.1 christos .align 2 35 1.1 christos word_dest: .word 0xa5a5 36 1.1 christos .align 4 37 1.1 christos long_dest: .long 0xa5a5a5a5 38 1.1 christos start 39 1.1 christos 40 1.1 christos # 41 1.1 christos # 8-bit byte operations 42 1.1 christos # 43 1.1 christos 44 1.1 christos not_b_reg8: 45 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 46 1.1 christos ;; fixme set ccr 47 1.1 christos 48 1.1 christos ;; not.b Rd 49 1.1 christos not r0l ; 8-bit register 50 1.1 christos ;;; .word 0x1708 51 1.1 christos 52 1.1 christos cmp.b #0x5a, r0l ; result of "not 0xa5" 53 1.1 christos beq .Lbrd 54 1.1 christos fail 55 1.1 christos .Lbrd: 56 1.1 christos ;; fixme test ccr ; H=0 N=1 Z=0 V=0 C=0 57 1.1 christos test_h_gr16 0xa55a r0 ; r0 changed by 'not' 58 1.1 christos .if (sim_cpu) ; non-zero means h8300h, s, or sx 59 1.1 christos test_h_gr32 0xa5a5a55a er0 ; er0 changed by 'not' 60 1.1 christos .endif 61 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 62 1.1 christos test_gr_a5a5 2 63 1.1 christos test_gr_a5a5 3 64 1.1 christos test_gr_a5a5 4 65 1.1 christos test_gr_a5a5 5 66 1.1 christos test_gr_a5a5 6 67 1.1 christos test_gr_a5a5 7 68 1.1 christos 69 1.1 christos .if (sim_cpu == h8sx) 70 1.1 christos not_b_rdind: 71 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 72 1.1 christos set_ccr_zero 73 1.1 christos 74 1.1 christos ;; not.b @eRd 75 1.1 christos mov #byte_dest, er0 76 1.1 christos not.b @er0 ; register indirect operand 77 1.1 christos ;;; .word 0x7d00 78 1.1 christos ;;; .word 0x1700 79 1.1 christos 80 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 81 1.1 christos test_ovf_clear 82 1.1 christos test_zero_clear 83 1.1 christos test_neg_clear 84 1.1 christos 85 1.1 christos test_h_gr32 byte_dest er0 ; er0 still contains address 86 1.1 christos cmp.b #0x5a:8, @er0 ; memory contents changed 87 1.1 christos beq .Lbind 88 1.1 christos fail 89 1.1 christos .Lbind: 90 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 91 1.1 christos test_gr_a5a5 2 92 1.1 christos test_gr_a5a5 3 93 1.1 christos test_gr_a5a5 4 94 1.1 christos test_gr_a5a5 5 95 1.1 christos test_gr_a5a5 6 96 1.1 christos test_gr_a5a5 7 97 1.1 christos 98 1.1 christos not_b_rdpostinc: 99 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 100 1.1 christos set_ccr_zero 101 1.1 christos 102 1.1 christos ;; not.b @eRd+ 103 1.1 christos mov #byte_dest, er0 ; register post-increment operand 104 1.1 christos not.b @er0+ 105 1.1 christos ;;; .word 0x0174 106 1.1 christos ;;; .word 0x6c08 107 1.1 christos ;;; .word 0x1700 108 1.1 christos 109 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 110 1.1 christos test_ovf_clear 111 1.1 christos test_zero_clear 112 1.1 christos test_neg_set 113 1.1 christos 114 1.1 christos test_h_gr32 byte_dest+1 er0 ; er0 contains address plus one 115 1.1 christos cmp.b #0xa5:8, @-er0 116 1.1 christos beq .Lbpostinc 117 1.1 christos fail 118 1.1 christos .Lbpostinc: 119 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 120 1.1 christos test_gr_a5a5 2 121 1.1 christos test_gr_a5a5 3 122 1.1 christos test_gr_a5a5 4 123 1.1 christos test_gr_a5a5 5 124 1.1 christos test_gr_a5a5 6 125 1.1 christos test_gr_a5a5 7 126 1.1 christos 127 1.1 christos not_b_rdpostdec: 128 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 129 1.1 christos set_ccr_zero 130 1.1 christos 131 1.1 christos ;; not.b @eRd- 132 1.1 christos mov #byte_dest, er0 ; register post-decrement operand 133 1.1 christos not.b @er0- 134 1.1 christos ;;; .word 0x0176 135 1.1 christos ;;; .word 0x6c08 136 1.1 christos ;;; .word 0x1700 137 1.1 christos 138 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 139 1.1 christos test_ovf_clear 140 1.1 christos test_zero_clear 141 1.1 christos test_neg_clear 142 1.1 christos 143 1.1 christos test_h_gr32 byte_dest-1 er0 ; er0 contains address minus one 144 1.1 christos cmp.b #0x5a:8, @+er0 145 1.1 christos ;;; .word 0x0175 146 1.1 christos ;;; .word 0x6c08 147 1.1 christos ;;; .word 0xa05a 148 1.1 christos beq .Lbpostdec 149 1.1 christos fail 150 1.1 christos .Lbpostdec: 151 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 152 1.1 christos test_gr_a5a5 2 153 1.1 christos test_gr_a5a5 3 154 1.1 christos test_gr_a5a5 4 155 1.1 christos test_gr_a5a5 5 156 1.1 christos test_gr_a5a5 6 157 1.1 christos test_gr_a5a5 7 158 1.1 christos 159 1.1 christos not_b_rdpreinc: 160 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 161 1.1 christos set_ccr_zero 162 1.1 christos 163 1.1 christos ;; not.b @+eRd 164 1.1 christos mov #byte_dest-1, er0 165 1.1 christos not.b @+er0 ; reg pre-increment operand 166 1.1 christos ;;; .word 0x0175 167 1.1 christos ;;; .word 0x6c08 168 1.1 christos ;;; .word 0x1700 169 1.1 christos 170 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 171 1.1 christos test_ovf_clear 172 1.1 christos test_zero_clear 173 1.1 christos test_neg_set 174 1.1 christos 175 1.1 christos cmp.b #0xa5:8, @er0 176 1.1 christos beq .Lbpreinc 177 1.1 christos fail 178 1.1 christos .Lbpreinc: 179 1.1 christos test_h_gr32 byte_dest er0 ; er0 contains destination address 180 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 181 1.1 christos test_gr_a5a5 2 182 1.1 christos test_gr_a5a5 3 183 1.1 christos test_gr_a5a5 4 184 1.1 christos test_gr_a5a5 5 185 1.1 christos test_gr_a5a5 6 186 1.1 christos test_gr_a5a5 7 187 1.1 christos 188 1.1 christos not_b_rdpredec: 189 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 190 1.1 christos set_ccr_zero 191 1.1 christos 192 1.1 christos ;; not.b @-eRd 193 1.1 christos mov #byte_dest+1, er0 194 1.1 christos not.b @-er0 ; reg pre-decr operand 195 1.1 christos ;;; .word 0x0177 196 1.1 christos ;;; .word 0x6c08 197 1.1 christos ;;; .word 0x1700 198 1.1 christos 199 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 200 1.1 christos test_ovf_clear 201 1.1 christos test_zero_clear 202 1.1 christos test_neg_clear 203 1.1 christos 204 1.1 christos cmp.b #0x5a:8, @er0 205 1.1 christos beq .Lbpredec 206 1.1 christos fail 207 1.1 christos .Lbpredec: 208 1.1 christos test_h_gr32 byte_dest er0 ; er0 contains destination address 209 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 210 1.1 christos test_gr_a5a5 2 211 1.1 christos test_gr_a5a5 3 212 1.1 christos test_gr_a5a5 4 213 1.1 christos test_gr_a5a5 5 214 1.1 christos test_gr_a5a5 6 215 1.1 christos test_gr_a5a5 7 216 1.1 christos 217 1.1 christos not_b_disp2dst: 218 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 219 1.1 christos set_ccr_zero 220 1.1 christos 221 1.1 christos ;; not.b @(dd:2, erd) 222 1.1 christos mov #byte_dest-1, er0 223 1.1 christos not.b @(1:2, er0) ; reg plus 2-bit displacement 224 1.1 christos ;;; .word 0x0175 225 1.1 christos ;;; .word 0x6808 226 1.1 christos ;;; .word 0x1700 227 1.1 christos 228 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 229 1.1 christos test_ovf_clear 230 1.1 christos test_zero_clear 231 1.1 christos test_neg_set 232 1.1 christos 233 1.1 christos cmp.b #0xa5:8, @+er0 234 1.1 christos beq .Lbdisp2 235 1.1 christos fail 236 1.1 christos .Lbdisp2: 237 1.1 christos test_h_gr32 byte_dest er0 ; er0 contains destination address 238 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 239 1.1 christos test_gr_a5a5 2 240 1.1 christos test_gr_a5a5 3 241 1.1 christos test_gr_a5a5 4 242 1.1 christos test_gr_a5a5 5 243 1.1 christos test_gr_a5a5 6 244 1.1 christos test_gr_a5a5 7 245 1.1 christos 246 1.1 christos not_b_disp16dst: 247 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 248 1.1 christos set_ccr_zero 249 1.1 christos 250 1.1 christos ;; not.b @(dd:16, erd) 251 1.1 christos mov #byte_dest+100, er0 252 1.1 christos not.b @(-100:16, er0) ; reg plus 16-bit displacement 253 1.1 christos ;;; .word 0x0174 254 1.1 christos ;;; .word 0x6e08 255 1.1 christos ;;; .word -100 256 1.1 christos ;;; .word 0x1700 257 1.1 christos 258 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 259 1.1 christos test_ovf_clear 260 1.1 christos test_zero_clear 261 1.1 christos test_neg_clear 262 1.1 christos 263 1.1 christos cmp.b #0x5a:8, @byte_dest 264 1.1 christos beq .Lbdisp16 265 1.1 christos fail 266 1.1 christos .Lbdisp16: 267 1.1 christos test_h_gr32 byte_dest+100 er0 ; er0 contains destination address 268 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 269 1.1 christos test_gr_a5a5 2 270 1.1 christos test_gr_a5a5 3 271 1.1 christos test_gr_a5a5 4 272 1.1 christos test_gr_a5a5 5 273 1.1 christos test_gr_a5a5 6 274 1.1 christos test_gr_a5a5 7 275 1.1 christos 276 1.1 christos not_b_disp32dst: 277 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 278 1.1 christos set_ccr_zero 279 1.1 christos 280 1.1 christos ;; not.b @(dd:32, erd) 281 1.1 christos mov #byte_dest-0xfffff, er0 282 1.1 christos not.b @(0xfffff:32, er0) ; reg plus 32-bit displacement 283 1.1 christos ;;; .word 0x7804 284 1.1 christos ;;; .word 0x6a28 285 1.1 christos ;;; .long 0xfffff 286 1.1 christos ;;; .word 0x1700 287 1.1 christos 288 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 289 1.1 christos test_ovf_clear 290 1.1 christos test_zero_clear 291 1.1 christos test_neg_set 292 1.1 christos 293 1.1 christos cmp.b #0xa5:8, @byte_dest 294 1.1 christos beq .Lbdisp32 295 1.1 christos fail 296 1.1 christos .Lbdisp32: 297 1.1 christos test_h_gr32 byte_dest-0xfffff er0 ; er0 contains destination address 298 1.1 christos test_gr_a5a5 1 ; Make sure other general regs not disturbed 299 1.1 christos test_gr_a5a5 2 300 1.1 christos test_gr_a5a5 3 301 1.1 christos test_gr_a5a5 4 302 1.1 christos test_gr_a5a5 5 303 1.1 christos test_gr_a5a5 6 304 1.1 christos test_gr_a5a5 7 305 1.1 christos 306 1.1 christos not_b_abs16dst: 307 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 308 1.1 christos set_ccr_zero 309 1.1 christos 310 1.1 christos ;; not.b @aa:16 311 1.1 christos not.b @byte_dest:16 ; 16-bit absolute address 312 1.1 christos ;;; .word 0x6a18 313 1.1 christos ;;; .word byte_dest 314 1.1 christos ;;; .word 0x1700 315 1.1 christos 316 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 317 1.1 christos test_ovf_clear 318 1.1 christos test_zero_clear 319 1.1 christos test_neg_clear 320 1.1 christos 321 1.1 christos cmp.b #0x5a:8, @byte_dest 322 1.1 christos beq .Lbabs16 323 1.1 christos fail 324 1.1 christos .Lbabs16: 325 1.1 christos test_gr_a5a5 0 ; Make sure ALL general regs not disturbed 326 1.1 christos test_gr_a5a5 1 327 1.1 christos test_gr_a5a5 2 328 1.1 christos test_gr_a5a5 3 329 1.1 christos test_gr_a5a5 4 330 1.1 christos test_gr_a5a5 5 331 1.1 christos test_gr_a5a5 6 332 1.1 christos test_gr_a5a5 7 333 1.1 christos 334 1.1 christos not_b_abs32dst: 335 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 336 1.1 christos set_ccr_zero 337 1.1 christos 338 1.1 christos ;; not.b @aa:32 339 1.1 christos not.b @byte_dest:32 ; 32-bit absolute address 340 1.1 christos ;;; .word 0x6a38 341 1.1 christos ;;; .long byte_dest 342 1.1 christos ;;; .word 0x1700 343 1.1 christos 344 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 345 1.1 christos test_ovf_clear 346 1.1 christos test_zero_clear 347 1.1 christos test_neg_set 348 1.1 christos 349 1.1 christos cmp.b #0xa5:8, @byte_dest 350 1.1 christos beq .Lbabs32 351 1.1 christos fail 352 1.1 christos .Lbabs32: 353 1.1 christos test_gr_a5a5 0 ; Make sure ALL general regs not disturbed 354 1.1 christos test_gr_a5a5 1 355 1.1 christos test_gr_a5a5 2 356 1.1 christos test_gr_a5a5 3 357 1.1 christos test_gr_a5a5 4 358 1.1 christos test_gr_a5a5 5 359 1.1 christos test_gr_a5a5 6 360 1.1 christos test_gr_a5a5 7 361 1.1 christos .endif 362 1.1 christos 363 1.1 christos # 364 1.1 christos # 16-bit word operations 365 1.1 christos # 366 1.1 christos 367 1.1 christos .if (sim_cpu) ; any except plain-vanilla h8/300 368 1.1 christos not_w_reg16: 369 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 370 1.1 christos ;; fixme set ccr 371 1.1 christos 372 1.1 christos ;; not.w Rd 373 1.1 christos not r1 ; 16-bit register operand 374 1.1 christos ;;; .word 0x1711 375 1.1 christos 376 1.1 christos cmp.w #0x5a5a, r1 ; result of "not 0xa5a5" 377 1.1 christos beq .Lwrd 378 1.1 christos fail 379 1.1 christos .Lwrd: 380 1.1 christos ;; fixme test ccr ; H=0 N=1 Z=0 V=0 C=0 381 1.1 christos test_h_gr32 0xa5a55a5a er1 ; er1 changed by 'not' 382 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 383 1.1 christos test_gr_a5a5 2 384 1.1 christos test_gr_a5a5 3 385 1.1 christos test_gr_a5a5 4 386 1.1 christos test_gr_a5a5 5 387 1.1 christos test_gr_a5a5 6 388 1.1 christos test_gr_a5a5 7 389 1.1 christos 390 1.1 christos .if (sim_cpu == h8sx) 391 1.1 christos not_w_rdind: 392 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 393 1.1 christos set_ccr_zero 394 1.1 christos 395 1.1 christos ;; not.w @eRd 396 1.1 christos mov #word_dest, er1 397 1.1 christos not.w @er1 ; register indirect operand 398 1.1 christos ;;; .word 0x0154 399 1.1 christos ;;; .word 0x6d18 400 1.1 christos ;;; .word 0x1710 401 1.1 christos 402 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 403 1.1 christos test_ovf_clear 404 1.1 christos test_zero_clear 405 1.1 christos test_neg_clear 406 1.1 christos 407 1.1 christos cmp.w #0x5a5a, @word_dest ; memory contents changed 408 1.1 christos beq .Lwind 409 1.1 christos fail 410 1.1 christos .Lwind: 411 1.1 christos test_h_gr32 word_dest er1 ; er1 still contains address 412 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 413 1.1 christos test_gr_a5a5 2 414 1.1 christos test_gr_a5a5 3 415 1.1 christos test_gr_a5a5 4 416 1.1 christos test_gr_a5a5 5 417 1.1 christos test_gr_a5a5 6 418 1.1 christos test_gr_a5a5 7 419 1.1 christos 420 1.1 christos not_w_rdpostinc: 421 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 422 1.1 christos set_ccr_zero 423 1.1 christos 424 1.1 christos ;; not.w @eRd+ 425 1.1 christos mov #word_dest, er1 ; register post-increment operand 426 1.1 christos not.w @er1+ 427 1.1 christos ;;; .word 0x0154 428 1.1 christos ;;; .word 0x6d18 429 1.1 christos ;;; .word 0x1710 430 1.1 christos 431 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 432 1.1 christos test_ovf_clear 433 1.1 christos test_zero_clear 434 1.1 christos test_neg_set 435 1.1 christos 436 1.1 christos cmp.w #0xa5a5, @word_dest 437 1.1 christos beq .Lwpostinc 438 1.1 christos fail 439 1.1 christos .Lwpostinc: 440 1.1 christos test_h_gr32 word_dest+2 er1 ; er1 contains address plus two 441 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 442 1.1 christos test_gr_a5a5 2 443 1.1 christos test_gr_a5a5 3 444 1.1 christos test_gr_a5a5 4 445 1.1 christos test_gr_a5a5 5 446 1.1 christos test_gr_a5a5 6 447 1.1 christos test_gr_a5a5 7 448 1.1 christos 449 1.1 christos not_w_rdpostdec: 450 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 451 1.1 christos set_ccr_zero 452 1.1 christos 453 1.1 christos ;; not.w @eRd- 454 1.1 christos mov #word_dest, er1 455 1.1 christos not.w @er1- 456 1.1 christos ;;; .word 0x0156 457 1.1 christos ;;; .word 0x6d18 458 1.1 christos ;;; .word 0x1710 459 1.1 christos 460 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 461 1.1 christos test_ovf_clear 462 1.1 christos test_zero_clear 463 1.1 christos test_neg_clear 464 1.1 christos 465 1.1 christos cmp.w #0x5a5a, @word_dest 466 1.1 christos beq .Lwpostdec 467 1.1 christos fail 468 1.1 christos .Lwpostdec: 469 1.1 christos test_h_gr32 word_dest-2 er1 ; er1 contains address minus two 470 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 471 1.1 christos test_gr_a5a5 2 472 1.1 christos test_gr_a5a5 3 473 1.1 christos test_gr_a5a5 4 474 1.1 christos test_gr_a5a5 5 475 1.1 christos test_gr_a5a5 6 476 1.1 christos test_gr_a5a5 7 477 1.1 christos 478 1.1 christos not_w_rdpreinc: 479 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 480 1.1 christos set_ccr_zero 481 1.1 christos 482 1.1 christos ;; not.w @+eRd 483 1.1 christos mov #word_dest-2, er1 484 1.1 christos not.w @+er1 ; reg pre-increment operand 485 1.1 christos ;;; .word 0x0155 486 1.1 christos ;;; .word 0x6d18 487 1.1 christos ;;; .word 0x1710 488 1.1 christos 489 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 490 1.1 christos test_ovf_clear 491 1.1 christos test_zero_clear 492 1.1 christos test_neg_set 493 1.1 christos 494 1.1 christos cmp.w #0xa5a5, @word_dest 495 1.1 christos beq .Lwpreinc 496 1.1 christos fail 497 1.1 christos .Lwpreinc: 498 1.1 christos test_h_gr32 word_dest er1 ; er1 contains destination address 499 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 500 1.1 christos test_gr_a5a5 2 501 1.1 christos test_gr_a5a5 3 502 1.1 christos test_gr_a5a5 4 503 1.1 christos test_gr_a5a5 5 504 1.1 christos test_gr_a5a5 6 505 1.1 christos test_gr_a5a5 7 506 1.1 christos 507 1.1 christos not_w_rdpredec: 508 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 509 1.1 christos set_ccr_zero 510 1.1 christos 511 1.1 christos ;; not.w @-eRd 512 1.1 christos mov #word_dest+2, er1 513 1.1 christos not.w @-er1 ; reg pre-decr operand 514 1.1 christos ;;; .word 0x0157 515 1.1 christos ;;; .word 0x6d18 516 1.1 christos ;;; .word 0x1710 517 1.1 christos 518 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 519 1.1 christos test_ovf_clear 520 1.1 christos test_zero_clear 521 1.1 christos test_neg_clear 522 1.1 christos 523 1.1 christos cmp.w #0x5a5a, @word_dest 524 1.1 christos beq .Lwpredec 525 1.1 christos fail 526 1.1 christos .Lwpredec: 527 1.1 christos test_h_gr32 word_dest er1 ; er1 contains destination address 528 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 529 1.1 christos test_gr_a5a5 2 530 1.1 christos test_gr_a5a5 3 531 1.1 christos test_gr_a5a5 4 532 1.1 christos test_gr_a5a5 5 533 1.1 christos test_gr_a5a5 6 534 1.1 christos test_gr_a5a5 7 535 1.1 christos 536 1.1 christos not_w_disp2dst: 537 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 538 1.1 christos set_ccr_zero 539 1.1 christos 540 1.1 christos ;; not.w @(dd:2, erd) 541 1.1 christos mov #word_dest-2, er1 542 1.1 christos not.w @(2:2, er1) ; reg plus 2-bit displacement 543 1.1 christos ;;; .word 0x0155 544 1.1 christos ;;; .word 0x6918 545 1.1 christos ;;; .word 0x1710 546 1.1 christos 547 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 548 1.1 christos test_ovf_clear 549 1.1 christos test_zero_clear 550 1.1 christos test_neg_set 551 1.1 christos 552 1.1 christos cmp.w #0xa5a5, @word_dest 553 1.1 christos beq .Lwdisp2 554 1.1 christos fail 555 1.1 christos .Lwdisp2: 556 1.1 christos test_h_gr32 word_dest-2 er1 ; er1 contains address minus one 557 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 558 1.1 christos test_gr_a5a5 2 559 1.1 christos test_gr_a5a5 3 560 1.1 christos test_gr_a5a5 4 561 1.1 christos test_gr_a5a5 5 562 1.1 christos test_gr_a5a5 6 563 1.1 christos test_gr_a5a5 7 564 1.1 christos 565 1.1 christos not_w_disp16dst: 566 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 567 1.1 christos set_ccr_zero 568 1.1 christos 569 1.1 christos ;; not.w @(dd:16, erd) 570 1.1 christos mov #word_dest+100, er1 571 1.1 christos not.w @(-100:16, er1) ; reg plus 16-bit displacement 572 1.1 christos ;;; .word 0x0154 573 1.1 christos ;;; .word 0x6f18 574 1.1 christos ;;; .word -100 575 1.1 christos ;;; .word 0x1710 576 1.1 christos 577 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 578 1.1 christos test_ovf_clear 579 1.1 christos test_zero_clear 580 1.1 christos test_neg_clear 581 1.1 christos 582 1.1 christos cmp.w #0x5a5a, @word_dest 583 1.1 christos beq .Lwdisp16 584 1.1 christos fail 585 1.1 christos .Lwdisp16: 586 1.1 christos test_h_gr32 word_dest+100 er1 ; er1 contains destination address 587 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 588 1.1 christos test_gr_a5a5 2 589 1.1 christos test_gr_a5a5 3 590 1.1 christos test_gr_a5a5 4 591 1.1 christos test_gr_a5a5 5 592 1.1 christos test_gr_a5a5 6 593 1.1 christos test_gr_a5a5 7 594 1.1 christos 595 1.1 christos not_w_disp32dst: 596 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 597 1.1 christos set_ccr_zero 598 1.1 christos 599 1.1 christos ;; not.w @(dd:32, erd) 600 1.1 christos mov #word_dest-0xfffff, er1 601 1.1 christos not.w @(0xfffff:32, er1) ; reg plus 32-bit displacement 602 1.1 christos ;;; .word 0x7814 603 1.1 christos ;;; .word 0x6b28 604 1.1 christos ;;; .long 0xfffff 605 1.1 christos ;;; .word 0x1710 606 1.1 christos 607 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 608 1.1 christos test_ovf_clear 609 1.1 christos test_zero_clear 610 1.1 christos test_neg_set 611 1.1 christos 612 1.1 christos cmp.w #0xa5a5, @word_dest 613 1.1 christos beq .Lwdisp32 614 1.1 christos fail 615 1.1 christos .Lwdisp32: 616 1.1 christos test_h_gr32 word_dest-0xfffff er1 ; er1 contains destination address 617 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 618 1.1 christos test_gr_a5a5 2 619 1.1 christos test_gr_a5a5 3 620 1.1 christos test_gr_a5a5 4 621 1.1 christos test_gr_a5a5 5 622 1.1 christos test_gr_a5a5 6 623 1.1 christos test_gr_a5a5 7 624 1.1 christos 625 1.1 christos not_w_abs16dst: 626 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 627 1.1 christos set_ccr_zero 628 1.1 christos 629 1.1 christos ;; not.w @aa:16 630 1.1 christos not.w @word_dest:16 ; 16-bit absolute address 631 1.1 christos ;;; .word 0x6b18 632 1.1 christos ;;; .word word_dest 633 1.1 christos ;;; .word 0x1710 634 1.1 christos 635 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 636 1.1 christos test_ovf_clear 637 1.1 christos test_zero_clear 638 1.1 christos test_neg_clear 639 1.1 christos 640 1.1 christos cmp.w #0x5a5a, @word_dest 641 1.1 christos beq .Lwabs16 642 1.1 christos fail 643 1.1 christos .Lwabs16: 644 1.1 christos test_gr_a5a5 0 ; Make sure ALL general regs not disturbed 645 1.1 christos test_gr_a5a5 1 646 1.1 christos test_gr_a5a5 2 647 1.1 christos test_gr_a5a5 3 648 1.1 christos test_gr_a5a5 4 649 1.1 christos test_gr_a5a5 5 650 1.1 christos test_gr_a5a5 6 651 1.1 christos test_gr_a5a5 7 652 1.1 christos 653 1.1 christos not_w_abs32dst: 654 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 655 1.1 christos set_ccr_zero 656 1.1 christos 657 1.1 christos ;; not.w @aa:32 658 1.1 christos not.w @word_dest:32 ; 32-bit absolute address 659 1.1 christos ;;; .word 0x6b38 660 1.1 christos ;;; .long word_dest 661 1.1 christos ;;; .word 0x1710 662 1.1 christos 663 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 664 1.1 christos test_ovf_clear 665 1.1 christos test_zero_clear 666 1.1 christos test_neg_set 667 1.1 christos 668 1.1 christos cmp.w #0xa5a5, @word_dest 669 1.1 christos beq .Lwabs32 670 1.1 christos fail 671 1.1 christos .Lwabs32: 672 1.1 christos test_gr_a5a5 0 ; Make sure ALL general regs not disturbed 673 1.1 christos test_gr_a5a5 1 674 1.1 christos test_gr_a5a5 2 675 1.1 christos test_gr_a5a5 3 676 1.1 christos test_gr_a5a5 4 677 1.1 christos test_gr_a5a5 5 678 1.1 christos test_gr_a5a5 6 679 1.1 christos test_gr_a5a5 7 680 1.1 christos 681 1.1 christos .endif ; h8sx 682 1.1 christos .endif ; h8/300 683 1.1 christos 684 1.1 christos # 685 1.1 christos # 32-bit word operations 686 1.1 christos # 687 1.1 christos 688 1.1 christos .if (sim_cpu) ; any except plain-vanilla h8/300 689 1.1 christos not_l_reg16: 690 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 691 1.1 christos ;; fixme set ccr 692 1.1 christos 693 1.1 christos ;; not.l eRd 694 1.1 christos not er1 ; 32-bit register operand 695 1.1 christos ;;; .word 0x1731 696 1.1 christos 697 1.1 christos cmp.l #0x5a5a5a5a, er1 ; result of "not 0xa5a5a5a5" 698 1.1 christos beq .Llrd 699 1.1 christos fail 700 1.1 christos .Llrd: 701 1.1 christos ;; fixme test ccr ; H=0 N=1 Z=0 V=0 C=0 702 1.1 christos test_h_gr32 0x5a5a5a5a er1 ; er1 changed by 'not' 703 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 704 1.1 christos test_gr_a5a5 2 705 1.1 christos test_gr_a5a5 3 706 1.1 christos test_gr_a5a5 4 707 1.1 christos test_gr_a5a5 5 708 1.1 christos test_gr_a5a5 6 709 1.1 christos test_gr_a5a5 7 710 1.1 christos 711 1.1 christos .if (sim_cpu == h8sx) 712 1.1 christos not_l_rdind: 713 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 714 1.1 christos set_ccr_zero 715 1.1 christos 716 1.1 christos ;; not.l @eRd 717 1.1 christos mov #long_dest, er1 718 1.1 christos not.l @er1 ; register indirect operand 719 1.1 christos ;;; .word 0x0104 720 1.1 christos ;;; .word 0x6d18 721 1.1 christos ;;; .word 0x1730 722 1.1 christos 723 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 724 1.1 christos test_ovf_clear 725 1.1 christos test_zero_clear 726 1.1 christos test_neg_clear 727 1.1 christos 728 1.1 christos cmp.l #0x5a5a5a5a, @long_dest ; memory contents changed 729 1.1 christos beq .Llind 730 1.1 christos fail 731 1.1 christos .Llind: 732 1.1 christos test_h_gr32 long_dest er1 ; er1 still contains address 733 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 734 1.1 christos test_gr_a5a5 2 735 1.1 christos test_gr_a5a5 3 736 1.1 christos test_gr_a5a5 4 737 1.1 christos test_gr_a5a5 5 738 1.1 christos test_gr_a5a5 6 739 1.1 christos test_gr_a5a5 7 740 1.1 christos 741 1.1 christos not_l_rdpostinc: 742 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 743 1.1 christos set_ccr_zero 744 1.1 christos 745 1.1 christos ;; not.l @eRd+ 746 1.1 christos mov #long_dest, er1 ; register post-increment operand 747 1.1 christos not.l @er1+ 748 1.1 christos ;;; .word 0x0104 749 1.1 christos ;;; .word 0x6d18 750 1.1 christos ;;; .word 0x1730 751 1.1 christos 752 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 753 1.1 christos test_ovf_clear 754 1.1 christos test_zero_clear 755 1.1 christos test_neg_set 756 1.1 christos 757 1.1 christos cmp.l #0xa5a5a5a5, @long_dest 758 1.1 christos beq .Llpostinc 759 1.1 christos fail 760 1.1 christos .Llpostinc: 761 1.1 christos test_h_gr32 long_dest+4 er1 ; er1 contains address plus two 762 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 763 1.1 christos test_gr_a5a5 2 764 1.1 christos test_gr_a5a5 3 765 1.1 christos test_gr_a5a5 4 766 1.1 christos test_gr_a5a5 5 767 1.1 christos test_gr_a5a5 6 768 1.1 christos test_gr_a5a5 7 769 1.1 christos 770 1.1 christos not_l_rdpostdec: 771 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 772 1.1 christos set_ccr_zero 773 1.1 christos 774 1.1 christos ;; not.l @eRd- 775 1.1 christos mov #long_dest, er1 776 1.1 christos not.l @er1- 777 1.1 christos ;;; .word 0x0106 778 1.1 christos ;;; .word 0x6d18 779 1.1 christos ;;; .word 0x1730 780 1.1 christos 781 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 782 1.1 christos test_ovf_clear 783 1.1 christos test_zero_clear 784 1.1 christos test_neg_clear 785 1.1 christos 786 1.1 christos cmp.l #0x5a5a5a5a, @long_dest 787 1.1 christos beq .Llpostdec 788 1.1 christos fail 789 1.1 christos .Llpostdec: 790 1.1 christos test_h_gr32 long_dest-4 er1 ; er1 contains address minus two 791 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 792 1.1 christos test_gr_a5a5 2 793 1.1 christos test_gr_a5a5 3 794 1.1 christos test_gr_a5a5 4 795 1.1 christos test_gr_a5a5 5 796 1.1 christos test_gr_a5a5 6 797 1.1 christos test_gr_a5a5 7 798 1.1 christos 799 1.1 christos not_l_rdpreinc: 800 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 801 1.1 christos set_ccr_zero 802 1.1 christos 803 1.1 christos ;; not.l @+eRd 804 1.1 christos mov #long_dest-4, er1 805 1.1 christos not.l @+er1 ; reg pre-increment operand 806 1.1 christos ;;; .word 0x0105 807 1.1 christos ;;; .word 0x6d18 808 1.1 christos ;;; .word 0x1730 809 1.1 christos 810 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 811 1.1 christos test_ovf_clear 812 1.1 christos test_zero_clear 813 1.1 christos test_neg_set 814 1.1 christos 815 1.1 christos cmp.l #0xa5a5a5a5, @long_dest 816 1.1 christos beq .Llpreinc 817 1.1 christos fail 818 1.1 christos .Llpreinc: 819 1.1 christos test_h_gr32 long_dest er1 ; er1 contains destination address 820 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 821 1.1 christos test_gr_a5a5 2 822 1.1 christos test_gr_a5a5 3 823 1.1 christos test_gr_a5a5 4 824 1.1 christos test_gr_a5a5 5 825 1.1 christos test_gr_a5a5 6 826 1.1 christos test_gr_a5a5 7 827 1.1 christos 828 1.1 christos not_l_rdpredec: 829 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 830 1.1 christos set_ccr_zero 831 1.1 christos 832 1.1 christos ;; not.l @-eRd 833 1.1 christos mov #long_dest+4, er1 834 1.1 christos not.l @-er1 ; reg pre-decr operand 835 1.1 christos ;;; .word 0x0107 836 1.1 christos ;;; .word 0x6d18 837 1.1 christos ;;; .word 0x1730 838 1.1 christos 839 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 840 1.1 christos test_ovf_clear 841 1.1 christos test_zero_clear 842 1.1 christos test_neg_clear 843 1.1 christos 844 1.1 christos cmp.l #0x5a5a5a5a, @long_dest 845 1.1 christos beq .Llpredec 846 1.1 christos fail 847 1.1 christos .Llpredec: 848 1.1 christos test_h_gr32 long_dest er1 ; er1 contains destination address 849 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 850 1.1 christos test_gr_a5a5 2 851 1.1 christos test_gr_a5a5 3 852 1.1 christos test_gr_a5a5 4 853 1.1 christos test_gr_a5a5 5 854 1.1 christos test_gr_a5a5 6 855 1.1 christos test_gr_a5a5 7 856 1.1 christos 857 1.1 christos not_l_disp2dst: 858 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 859 1.1 christos set_ccr_zero 860 1.1 christos 861 1.1 christos ;; not.l @(dd:2, erd) 862 1.1 christos mov #long_dest-4, er1 863 1.1 christos not.l @(4:2, er1) ; reg plus 2-bit displacement 864 1.1 christos ;;; .word 0x0105 865 1.1 christos ;;; .word 0x6918 866 1.1 christos ;;; .word 0x1730 867 1.1 christos 868 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 869 1.1 christos test_ovf_clear 870 1.1 christos test_zero_clear 871 1.1 christos test_neg_set 872 1.1 christos 873 1.1 christos cmp.l #0xa5a5a5a5, @long_dest 874 1.1 christos beq .Lldisp2 875 1.1 christos fail 876 1.1 christos .Lldisp2: 877 1.1 christos test_h_gr32 long_dest-4 er1 ; er1 contains address minus one 878 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 879 1.1 christos test_gr_a5a5 2 880 1.1 christos test_gr_a5a5 3 881 1.1 christos test_gr_a5a5 4 882 1.1 christos test_gr_a5a5 5 883 1.1 christos test_gr_a5a5 6 884 1.1 christos test_gr_a5a5 7 885 1.1 christos 886 1.1 christos not_l_disp16dst: 887 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 888 1.1 christos set_ccr_zero 889 1.1 christos 890 1.1 christos ;; not.l @(dd:16, erd) 891 1.1 christos mov #long_dest+100, er1 892 1.1 christos not.l @(-100:16, er1) ; reg plus 16-bit displacement 893 1.1 christos ;;; .word 0x0104 894 1.1 christos ;;; .word 0x6f18 895 1.1 christos ;;; .word -100 896 1.1 christos ;;; .word 0x1730 897 1.1 christos 898 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 899 1.1 christos test_ovf_clear 900 1.1 christos test_zero_clear 901 1.1 christos test_neg_clear 902 1.1 christos 903 1.1 christos cmp.l #0x5a5a5a5a, @long_dest 904 1.1 christos beq .Lldisp16 905 1.1 christos fail 906 1.1 christos .Lldisp16: 907 1.1 christos test_h_gr32 long_dest+100 er1 ; er1 contains destination address 908 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 909 1.1 christos test_gr_a5a5 2 910 1.1 christos test_gr_a5a5 3 911 1.1 christos test_gr_a5a5 4 912 1.1 christos test_gr_a5a5 5 913 1.1 christos test_gr_a5a5 6 914 1.1 christos test_gr_a5a5 7 915 1.1 christos 916 1.1 christos not_l_disp32dst: 917 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 918 1.1 christos set_ccr_zero 919 1.1 christos 920 1.1 christos ;; not.l @(dd:32, erd) 921 1.1 christos mov #long_dest-0xfffff, er1 922 1.1 christos not.l @(0xfffff:32, er1) ; reg plus 32-bit displacement 923 1.1 christos ;;; .word 0x7894 924 1.1 christos ;;; .word 0x6b28 925 1.1 christos ;;; .long 0xfffff 926 1.1 christos ;;; .word 0x1730 927 1.1 christos 928 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 929 1.1 christos test_ovf_clear 930 1.1 christos test_zero_clear 931 1.1 christos test_neg_set 932 1.1 christos 933 1.1 christos cmp.l #0xa5a5a5a5, @long_dest 934 1.1 christos beq .Lldisp32 935 1.1 christos fail 936 1.1 christos .Lldisp32: 937 1.1 christos test_h_gr32 long_dest-0xfffff er1 ; er1 contains destination address 938 1.1 christos test_gr_a5a5 0 ; Make sure other general regs not disturbed 939 1.1 christos test_gr_a5a5 2 940 1.1 christos test_gr_a5a5 3 941 1.1 christos test_gr_a5a5 4 942 1.1 christos test_gr_a5a5 5 943 1.1 christos test_gr_a5a5 6 944 1.1 christos test_gr_a5a5 7 945 1.1 christos 946 1.1 christos not_l_abs16dst: 947 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 948 1.1 christos set_ccr_zero 949 1.1 christos 950 1.1 christos ;; not.l @aa:16 951 1.1 christos not.l @long_dest:16 ; 16-bit absolute address 952 1.1 christos ;;; .word 0x0104 953 1.1 christos ;;; .word 0x6b08 954 1.1 christos ;;; .word long_dest 955 1.1 christos ;;; .word 0x1730 956 1.1 christos 957 1.1 christos test_carry_clear ; H=0 N=0 Z=0 V=0 C=0 958 1.1 christos test_ovf_clear 959 1.1 christos test_zero_clear 960 1.1 christos test_neg_clear 961 1.1 christos 962 1.1 christos cmp.l #0x5a5a5a5a, @long_dest 963 1.1 christos beq .Llabs16 964 1.1 christos fail 965 1.1 christos .Llabs16: 966 1.1 christos test_gr_a5a5 0 ; Make sure ALL general regs not disturbed 967 1.1 christos test_gr_a5a5 1 968 1.1 christos test_gr_a5a5 2 969 1.1 christos test_gr_a5a5 3 970 1.1 christos test_gr_a5a5 4 971 1.1 christos test_gr_a5a5 5 972 1.1 christos test_gr_a5a5 6 973 1.1 christos test_gr_a5a5 7 974 1.1 christos 975 1.1 christos not_l_abs32dst: 976 1.1 christos set_grs_a5a5 ; Fill all general regs with a fixed pattern 977 1.1 christos set_ccr_zero 978 1.1 christos 979 1.1 christos ;; not.l @aa:32 980 1.1 christos not.l @long_dest:32 ; 32-bit absolute address 981 1.1 christos ;;; .word 0x0104 982 1.1 christos ;;; .word 0x6b28 983 1.1 christos ;;; .long long_dest 984 1.1 christos ;;; .word 0x1730 985 1.1 christos 986 1.1 christos test_carry_clear ; H=0 N=1 Z=0 V=0 C=0 987 1.1 christos test_ovf_clear 988 1.1 christos test_zero_clear 989 1.1 christos test_neg_set 990 1.1 christos 991 1.1 christos cmp.l #0xa5a5a5a5, @long_dest 992 1.1 christos beq .Llabs32 993 1.1 christos fail 994 1.1 christos .Llabs32: 995 1.1 christos test_gr_a5a5 0 ; Make sure ALL general regs not disturbed 996 1.1 christos test_gr_a5a5 1 997 1.1 christos test_gr_a5a5 2 998 1.1 christos test_gr_a5a5 3 999 1.1 christos test_gr_a5a5 4 1000 1.1 christos test_gr_a5a5 5 1001 1.1 christos test_gr_a5a5 6 1002 1.1 christos test_gr_a5a5 7 1003 1.1 christos 1004 1.1 christos .endif ; h8sx 1005 1.1 christos .endif ; h8/300 1006 1.1 christos 1007 1.1 christos pass 1008 1.1 christos 1009 1.1 christos exit 0 1010