mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-24 12:23:31 +08:00
Remove for renaming with 8.3 dos-compatible names.
This commit is contained in:
File diff suppressed because it is too large
Load Diff
@ -1,580 +0,0 @@
|
|||||||
# Hitachi H8 testcase 'exts.w, extu.w'
|
|
||||||
# mach(): h8300h h8300s h8sx
|
|
||||||
# as(h8300): --defsym sim_cpu=0
|
|
||||||
# as(h8300h): --defsym sim_cpu=1
|
|
||||||
# as(h8300s): --defsym sim_cpu=2
|
|
||||||
# as(h8sx): --defsym sim_cpu=3
|
|
||||||
# ld(h8300h): -m h8300helf
|
|
||||||
# ld(h8300s): -m h8300self
|
|
||||||
# ld(h8sx): -m h8300sxelf
|
|
||||||
|
|
||||||
.include "testutils.inc"
|
|
||||||
|
|
||||||
start
|
|
||||||
|
|
||||||
.data
|
|
||||||
.align 2
|
|
||||||
pos: .word 0xff01
|
|
||||||
neg: .word 0x0080
|
|
||||||
|
|
||||||
.text
|
|
||||||
|
|
||||||
exts_w_reg16_p:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w rn16
|
|
||||||
mov.b #1, r0l
|
|
||||||
exts.w r0
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 0xa5a50001 er0 ; result of sign extend
|
|
||||||
test_gr_a5a5 1 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
|
|
||||||
exts_w_reg16_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w rn16
|
|
||||||
mov.b #0xff, r0l
|
|
||||||
exts.w r0
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=1 Z=0 V=0 C=0
|
|
||||||
test_neg_set
|
|
||||||
test_zero_clear
|
|
||||||
test_ovf_clear
|
|
||||||
test_carry_clear
|
|
||||||
|
|
||||||
test_h_gr32 0xa5a5ffff er0 ; result of sign extend
|
|
||||||
test_gr_a5a5 1 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
|
|
||||||
extu_w_reg16_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w rn16
|
|
||||||
mov.b #0xff, r0l
|
|
||||||
extu.w r0
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 0xa5a500ff er0 ; result of zero extend
|
|
||||||
test_gr_a5a5 1 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
|
|
||||||
.if (sim_cpu == h8sx)
|
|
||||||
exts_w_ind_p:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @ern
|
|
||||||
mov.l #pos, er1
|
|
||||||
exts.w @er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 pos er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0001, @pos
|
|
||||||
beq .Lswindp
|
|
||||||
fail
|
|
||||||
.Lswindp:
|
|
||||||
mov.w #0xff01, @pos ; Restore initial value
|
|
||||||
|
|
||||||
exts_w_ind_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @ern
|
|
||||||
mov.l #neg, er1
|
|
||||||
exts.w @er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=1 Z=0 V=0 C=0
|
|
||||||
test_neg_set
|
|
||||||
test_zero_clear
|
|
||||||
test_ovf_clear
|
|
||||||
test_carry_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0xff80, @neg
|
|
||||||
beq .Lswindn
|
|
||||||
fail
|
|
||||||
.Lswindn:
|
|
||||||
;; Note: leave the value as 0xff80, so that extu has work to do.
|
|
||||||
|
|
||||||
extu_w_ind_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @ern
|
|
||||||
mov.l #neg, er1
|
|
||||||
extu.w @er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwindn
|
|
||||||
fail
|
|
||||||
.Luwindn:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
exts_w_postinc_p:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @ern+
|
|
||||||
mov.l #pos, er1
|
|
||||||
exts.w @er1+
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 pos+2 er1 ; er1 still contains target address plus 2
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0001, @pos
|
|
||||||
beq .Lswpostincp
|
|
||||||
fail
|
|
||||||
.Lswpostincp:
|
|
||||||
mov.w #0xff01, @pos ; Restore initial value
|
|
||||||
|
|
||||||
exts_w_postinc_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @ern+
|
|
||||||
mov.l #neg, er1
|
|
||||||
exts.w @er1+
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=1 Z=0 V=0 C=0
|
|
||||||
test_neg_set
|
|
||||||
test_zero_clear
|
|
||||||
test_ovf_clear
|
|
||||||
test_carry_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg+2 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0xff80, @neg
|
|
||||||
beq .Lswpostincn
|
|
||||||
fail
|
|
||||||
.Lswpostincn:
|
|
||||||
;; Note: leave the value as 0xff80, so that extu has work to do.
|
|
||||||
|
|
||||||
extu_w_postinc_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @ern+
|
|
||||||
mov.l #neg, er1
|
|
||||||
extu.w @er1+
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg+2 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwpostincn
|
|
||||||
fail
|
|
||||||
.Luwpostincn:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
exts_w_postdec_p:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @ern-
|
|
||||||
mov.l #pos, er1
|
|
||||||
exts.w @er1-
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 pos-2 er1 ; er1 still contains target address plus 2
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0001, @pos
|
|
||||||
beq .Lswpostdecp
|
|
||||||
fail
|
|
||||||
.Lswpostdecp:
|
|
||||||
mov.w #0xff01, @pos ; Restore initial value
|
|
||||||
|
|
||||||
exts_w_postdec_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @ern-
|
|
||||||
mov.l #neg, er1
|
|
||||||
exts.w @er1-
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=1 Z=0 V=0 C=0
|
|
||||||
test_neg_set
|
|
||||||
test_zero_clear
|
|
||||||
test_ovf_clear
|
|
||||||
test_carry_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg-2 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0xff80, @neg
|
|
||||||
beq .Lswpostdecn
|
|
||||||
fail
|
|
||||||
.Lswpostdecn:
|
|
||||||
;; Note: leave the value as 0xff80, so that extu has work to do.
|
|
||||||
|
|
||||||
extu_w_postdec_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @ern-
|
|
||||||
mov.l #neg, er1
|
|
||||||
extu.w @er1-
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg-2 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwpostdecn
|
|
||||||
fail
|
|
||||||
.Luwpostdecn:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
exts_w_preinc_p:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @+ern
|
|
||||||
mov.l #pos-2, er1
|
|
||||||
exts.w @+er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 pos er1 ; er1 still contains target address plus 2
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0001, @pos
|
|
||||||
beq .Lswpreincp
|
|
||||||
fail
|
|
||||||
.Lswpreincp:
|
|
||||||
mov.w #0xff01, @pos ; Restore initial value
|
|
||||||
|
|
||||||
exts_w_preinc_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @+ern
|
|
||||||
mov.l #neg-2, er1
|
|
||||||
exts.w @+er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=1 Z=0 V=0 C=0
|
|
||||||
test_neg_set
|
|
||||||
test_zero_clear
|
|
||||||
test_ovf_clear
|
|
||||||
test_carry_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0xff80, @neg
|
|
||||||
beq .Lswpreincn
|
|
||||||
fail
|
|
||||||
.Lswpreincn:
|
|
||||||
;; Note: leave the value as 0xff80, so that extu has work to do.
|
|
||||||
|
|
||||||
extu_w_preinc_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @+ern
|
|
||||||
mov.l #neg-2, er1
|
|
||||||
extu.w @+er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwpreincn
|
|
||||||
fail
|
|
||||||
.Luwpreincn:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
exts_w_predec_p:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @-ern
|
|
||||||
mov.l #pos+2, er1
|
|
||||||
exts.w @-er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 pos er1 ; er1 still contains target address plus 2
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0001, @pos
|
|
||||||
beq .Lswpredecp
|
|
||||||
fail
|
|
||||||
.Lswpredecp:
|
|
||||||
mov.w #0xff01, @pos ; Restore initial value
|
|
||||||
|
|
||||||
exts_w_predec_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; exts.w @-ern
|
|
||||||
mov.l #neg+2, er1
|
|
||||||
exts.w @-er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=1 Z=0 V=0 C=0
|
|
||||||
test_neg_set
|
|
||||||
test_zero_clear
|
|
||||||
test_ovf_clear
|
|
||||||
test_carry_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0xff80, @neg
|
|
||||||
beq .Lswpredecn
|
|
||||||
fail
|
|
||||||
.Lswpredecn:
|
|
||||||
;; Note: leave the value as 0xff80, so that extu has work to do.
|
|
||||||
|
|
||||||
extu_w_predec_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @-ern
|
|
||||||
mov.l #neg+2, er1
|
|
||||||
extu.w @-er1
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwpredecn
|
|
||||||
fail
|
|
||||||
.Luwpredecn:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
extu_w_disp2_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @(dd:2, ern)
|
|
||||||
mov.l #neg-1, er1
|
|
||||||
extu.w @(1:2, er1)
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg-1 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwdisp2n
|
|
||||||
fail
|
|
||||||
.Luwdisp2n:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
extu_w_disp16_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @(dd:16, ern)
|
|
||||||
mov.l #neg-44, er1
|
|
||||||
extu.w @(44:16, er1)
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg-44 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwdisp16n
|
|
||||||
fail
|
|
||||||
.Luwdisp16n:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
extu_w_disp32_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @(dd:32, ern)
|
|
||||||
mov.l #neg+444, er1
|
|
||||||
extu.w @(-444:32, er1)
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_h_gr32 neg+444 er1 ; er1 still contains target address
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwdisp32n
|
|
||||||
fail
|
|
||||||
.Luwdisp32n:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
extu_w_abs16_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @aa:16
|
|
||||||
extu.w @neg:16
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 1
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwabs16n
|
|
||||||
fail
|
|
||||||
.Luwabs16n:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
extu_w_abs32_n:
|
|
||||||
set_grs_a5a5
|
|
||||||
set_ccr_zero
|
|
||||||
;; extu.w @aa:32
|
|
||||||
extu.w @neg:32
|
|
||||||
|
|
||||||
;; Test ccr H=0 N=0 Z=0 V=0 C=0
|
|
||||||
test_cc_clear
|
|
||||||
|
|
||||||
test_gr_a5a5 0 ; Make sure other general regs not disturbed
|
|
||||||
test_gr_a5a5 1
|
|
||||||
test_gr_a5a5 2
|
|
||||||
test_gr_a5a5 3
|
|
||||||
test_gr_a5a5 4
|
|
||||||
test_gr_a5a5 5
|
|
||||||
test_gr_a5a5 6
|
|
||||||
test_gr_a5a5 7
|
|
||||||
cmp.w #0x0080, @neg
|
|
||||||
beq .Luwabs32n
|
|
||||||
fail
|
|
||||||
.Luwabs32n:
|
|
||||||
;; Note: leave the value as 0x0080, like it started out.
|
|
||||||
|
|
||||||
.endif
|
|
||||||
|
|
||||||
pass
|
|
||||||
|
|
||||||
exit 0
|
|
Reference in New Issue
Block a user