OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [gnu-old/] [gdb-7.1/] [sim/] [testsuite/] [sim/] [h8300/] [biand.s] - Diff between revs 834 and 842

Only display areas with differences | Details | Blame | View Log

Rev 834 Rev 842
# Hitachi H8 testcase 'biand', 'bior', 'bixor', 'bild', 'bist', 'bistz'
# Hitachi H8 testcase 'biand', 'bior', 'bixor', 'bild', 'bist', 'bistz'
# mach(): all
# mach(): all
# as(h8300):    --defsym sim_cpu=0
# as(h8300):    --defsym sim_cpu=0
# as(h8300h):   --defsym sim_cpu=1
# as(h8300h):   --defsym sim_cpu=1
# as(h8300s):   --defsym sim_cpu=2
# as(h8300s):   --defsym sim_cpu=2
# as(h8sx):     --defsym sim_cpu=3
# as(h8sx):     --defsym sim_cpu=3
# ld(h8300h):   -m h8300helf
# ld(h8300h):   -m h8300helf
# ld(h8300s):   -m h8300self
# ld(h8300s):   -m h8300self
# ld(h8sx):     -m h8300sxelf
# ld(h8sx):     -m h8300sxelf
 
 
        .include "testutils.inc"
        .include "testutils.inc"
 
 
        .data
        .data
byte_src:       .byte 0xa5
byte_src:       .byte 0xa5
byte_dst:       .byte 0
byte_dst:       .byte 0
 
 
        start
        start
 
 
biand_imm3_reg8:
biand_imm3_reg8:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; biand xx:3, reg8
        ;; biand xx:3, reg8
        biand   #6, r0l         ; this should NOT set the carry flag.
        biand   #6, r0l         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        biand   #7, r0l         ; this should NOT set the carry flag.
        biand   #7, r0l         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        biand   #6, r0l         ; this should NOT clear the carry flag
        biand   #6, r0l         ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        biand   #7, r0l         ; this should clear the carry flag
        biand   #7, r0l         ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
biand_imm3_ind:
biand_imm3_ind:
        set_grs_a5a5
        set_grs_a5a5
.if (sim_cpu == h8300)
.if (sim_cpu == h8300)
        mov     #byte_src, r1
        mov     #byte_src, r1
        set_ccr_zero
        set_ccr_zero
        ;; biand xx:3, ind
        ;; biand xx:3, ind
        biand   #6, @r1         ; this should NOT set the carry flag.
        biand   #6, @r1         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        biand   #7, @r1         ; this should NOT set the carry flag.
        biand   #7, @r1         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        biand   #6, @r1         ; this should NOT clear the carry flag
        biand   #6, @r1         ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        biand   #7, @r1         ; this should clear the carry flag
        biand   #7, @r1         ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
;;;     test_h_gr16  byte_src r1        ;FIXME
;;;     test_h_gr16  byte_src r1        ;FIXME
.else
.else
        mov     #byte_src, er1
        mov     #byte_src, er1
        set_ccr_zero
        set_ccr_zero
        ;; biand xx:3, ind
        ;; biand xx:3, ind
        biand   #6, @er1        ; this should NOT set the carry flag.
        biand   #6, @er1        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        biand   #7, @er1        ; this should NOT set the carry flag.
        biand   #7, @er1        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        biand   #6, @er1        ; this should NOT clear the carry flag
        biand   #6, @er1        ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        biand   #7, @er1        ; this should clear the carry flag
        biand   #7, @er1        ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
        test_h_gr32  byte_src er1
        test_h_gr32  byte_src er1
.endif                          ; h8300
.endif                          ; h8300
        test_gr_a5a5 0           ; general registers should not be changed.
        test_gr_a5a5 0           ; general registers should not be changed.
        test_gr_a5a5 2
        test_gr_a5a5 2
        test_gr_a5a5 3
        test_gr_a5a5 3
        test_gr_a5a5 4
        test_gr_a5a5 4
        test_gr_a5a5 5
        test_gr_a5a5 5
        test_gr_a5a5 6
        test_gr_a5a5 6
        test_gr_a5a5 7
        test_gr_a5a5 7
 
 
biand_imm3_abs8:
biand_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; biand xx:3, aa:8
        ;; biand xx:3, aa:8
        biand   #6, @0x20:8     ; this should NOT set the carry flag.
        biand   #6, @0x20:8     ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        biand   #7, @0x20:8     ; this should NOT set the carry flag.
        biand   #7, @0x20:8     ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        biand   #6, @0x20:8     ; this should NOT clear the carry flag
        biand   #6, @0x20:8     ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        biand   #7, @0x20:8     ; this should clear the carry flag
        biand   #7, @0x20:8     ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
.if (sim_cpu > h8300h)
.if (sim_cpu > h8300h)
biand_imm3_abs16:
biand_imm3_abs16:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; biand xx:3, aa:16
        ;; biand xx:3, aa:16
        biand   #6, @byte_src:16        ; this should NOT set the carry flag.
        biand   #6, @byte_src:16        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        biand   #7, @byte_src:16        ; this should NOT set the carry flag.
        biand   #7, @byte_src:16        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        orc     #1, ccr                 ; set the carry flag
        orc     #1, ccr                 ; set the carry flag
        biand   #6, @byte_src:16        ; this should NOT clear the carry flag
        biand   #6, @byte_src:16        ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        biand   #7, @byte_src:16        ; this should clear the carry flag
        biand   #7, @byte_src:16        ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
biand_imm3_abs32:
biand_imm3_abs32:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; biand xx:3, aa:32
        ;; biand xx:3, aa:32
        biand   #6, @byte_src:32        ; this should NOT set the carry flag.
        biand   #6, @byte_src:32        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        biand   #7, @byte_src:32        ; this should NOT set the carry flag.
        biand   #7, @byte_src:32        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        orc     #1, ccr                 ; set the carry flag
        orc     #1, ccr                 ; set the carry flag
        biand   #6, @byte_src:32        ; this should NOT clear the carry flag
        biand   #6, @byte_src:32        ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        biand   #7, @byte_src:32        ; this should clear the carry flag
        biand   #7, @byte_src:32        ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
.endif
.endif
 
 
bior_imm3_reg8:
bior_imm3_reg8:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bior xx:3, reg8
        ;; bior xx:3, reg8
        bior    #7, r0l         ; this should NOT set the carry flag.
        bior    #7, r0l         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        bior    #6, r0l         ; this should set the carry flag.
        bior    #6, r0l         ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        bior    #6, r0l         ; this should NOT clear the carry flag
        bior    #6, r0l         ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        bior    #7, r0l         ; this should NOT clear the carry flag
        bior    #7, r0l         ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bior_imm3_abs8:
bior_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; bior xx:3, aa:8
        ;; bior xx:3, aa:8
        bior    #7, @0x20:8     ; this should NOT set the carry flag.
        bior    #7, @0x20:8     ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bior    #6, @0x20:8     ; this should set the carry flag.
        bior    #6, @0x20:8     ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        bior    #6, @0x20:8     ; this should NOT clear the carry flag
        bior    #6, @0x20:8     ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        bior    #7, @0x20:8     ; this should NOT clear the carry flag
        bior    #7, @0x20:8     ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bixor_imm3_reg8:
bixor_imm3_reg8:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bixor xx:3, reg8
        ;; bixor xx:3, reg8
        bixor   #7, r0l         ; this should NOT set the carry flag.
        bixor   #7, r0l         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
 
 
        bixor   #6, r0l         ; this should set the carry flag.
        bixor   #6, r0l         ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        bixor   #7, r0l         ; this should NOT clear the carry flag
        bixor   #7, r0l         ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        bixor   #6, r0l         ; this should clear the carry flag
        bixor   #6, r0l         ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bixor_imm3_abs8:
bixor_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; bixor xx:3, aa:8
        ;; bixor xx:3, aa:8
        bixor   #7, @0x20:8     ; this should NOT set the carry flag.
        bixor   #7, @0x20:8     ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bixor   #6, @0x20:8     ; this should set the carry flag.
        bixor   #6, @0x20:8     ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        bixor   #7, @0x20:8     ; this should NOT clear the carry flag
        bixor   #7, @0x20:8     ; this should NOT clear the carry flag
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        bixor   #6, @0x20:8     ; this should clear the carry flag
        bixor   #6, @0x20:8     ; this should clear the carry flag
        test_cc_clear
        test_cc_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bild_imm3_reg8:
bild_imm3_reg8:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bild xx:3, reg8
        ;; bild xx:3, reg8
        bild    #7, r0l         ; this should NOT set the carry flag.
        bild    #7, r0l         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bild    #6, r0l         ; this should set the carry flag.
        bild    #6, r0l         ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bild_imm3_ind:
bild_imm3_ind:
        set_grs_a5a5
        set_grs_a5a5
.if (sim_cpu == h8300)
.if (sim_cpu == h8300)
        mov     #byte_src, r1
        mov     #byte_src, r1
        set_ccr_zero
        set_ccr_zero
        ;; bild xx:3, ind
        ;; bild xx:3, ind
        bild    #7, @r1         ; this should NOT set the carry flag.
        bild    #7, @r1         ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bild    #6, @r1         ; this should set the carry flag.
        bild    #6, @r1         ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
;;;     test_h_gr16  byte_src r1        ;FIXME
;;;     test_h_gr16  byte_src r1        ;FIXME
.else
.else
        mov     #byte_src, er1
        mov     #byte_src, er1
        set_ccr_zero
        set_ccr_zero
        ;; bild xx:3, ind
        ;; bild xx:3, ind
        bild    #7, @er1        ; this should NOT set the carry flag.
        bild    #7, @er1        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bild    #6, @er1        ; this should NOT set the carry flag.
        bild    #6, @er1        ; this should NOT set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        test_h_gr32  byte_src er1
        test_h_gr32  byte_src er1
.endif                          ; h8300
.endif                          ; h8300
        test_gr_a5a5 0           ; general registers should not be changed.
        test_gr_a5a5 0           ; general registers should not be changed.
        test_gr_a5a5 2
        test_gr_a5a5 2
        test_gr_a5a5 3
        test_gr_a5a5 3
        test_gr_a5a5 4
        test_gr_a5a5 4
        test_gr_a5a5 5
        test_gr_a5a5 5
        test_gr_a5a5 6
        test_gr_a5a5 6
        test_gr_a5a5 7
        test_gr_a5a5 7
 
 
bild_imm3_abs8:
bild_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; bild xx:3, aa:8
        ;; bild xx:3, aa:8
        bild    #7, @0x20:8     ; this should NOT set the carry flag.
        bild    #7, @0x20:8     ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bild    #6, @0x20:8     ; this should set the carry flag.
        bild    #6, @0x20:8     ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
.if (sim_cpu > h8300h)
.if (sim_cpu > h8300h)
bild_imm3_abs16:
bild_imm3_abs16:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bild xx:3, aa:16
        ;; bild xx:3, aa:16
        bild    #7, @byte_src:16        ; this should NOT set the carry flag.
        bild    #7, @byte_src:16        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bild    #6, @byte_src:16        ; this should set the carry flag.
        bild    #6, @byte_src:16        ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bild_imm3_abs32:
bild_imm3_abs32:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bild xx:3, aa:32
        ;; bild xx:3, aa:32
        bild    #7, @byte_src:32        ; this should NOT set the carry flag.
        bild    #7, @byte_src:32        ; this should NOT set the carry flag.
        test_cc_clear
        test_cc_clear
        bild    #6, @byte_src:32        ; this should set the carry flag.
        bild    #6, @byte_src:32        ; this should set the carry flag.
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
 
 
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
.endif
.endif
 
 
bist_imm3_reg8:
bist_imm3_reg8:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bist xx:3, reg8
        ;; bist xx:3, reg8
        bist    #6, r0l         ; this should set bit 6
        bist    #6, r0l         ; this should set bit 6
        test_cc_clear
        test_cc_clear
        test_h_gr16 0xa5e5 r0
        test_h_gr16 0xa5e5 r0
 
 
        set_ccr_zero
        set_ccr_zero
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        bist    #7, r0l         ; this should clear bit 7
        bist    #7, r0l         ; this should clear bit 7
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        test_h_gr16 0xa565 r0
        test_h_gr16 0xa565 r0
 
 
        test_gr_a5a5 1          ; Rest of general regs should not be changed.
        test_gr_a5a5 1          ; Rest of general regs should not be changed.
        test_gr_a5a5 2
        test_gr_a5a5 2
        test_gr_a5a5 3
        test_gr_a5a5 3
        test_gr_a5a5 4
        test_gr_a5a5 4
        test_gr_a5a5 5
        test_gr_a5a5 5
        test_gr_a5a5 6
        test_gr_a5a5 6
        test_gr_a5a5 7
        test_gr_a5a5 7
 
 
bist_imm3_abs8:
bist_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; bist xx:3, aa:8
        ;; bist xx:3, aa:8
        bist    #6, @0x20:8     ; this should set bit 6
        bist    #6, @0x20:8     ; this should set bit 6
        test_cc_clear
        test_cc_clear
        mov.b   @0x20, r0l
        mov.b   @0x20, r0l
        test_h_gr16 0xa5e5 r0
        test_h_gr16 0xa5e5 r0
 
 
        set_ccr_zero
        set_ccr_zero
        orc     #1, ccr         ; set the carry flag
        orc     #1, ccr         ; set the carry flag
        bist    #7, @0x20:8     ; this should clear bit 7
        bist    #7, @0x20:8     ; this should clear bit 7
        test_carry_set
        test_carry_set
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_clear
        test_zero_clear
        mov.b   @0x20, r0l
        mov.b   @0x20, r0l
        test_h_gr16 0xa565 r0
        test_h_gr16 0xa565 r0
 
 
        test_gr_a5a5 1          ; general registers should not be changed.
        test_gr_a5a5 1          ; general registers should not be changed.
        test_gr_a5a5 2
        test_gr_a5a5 2
        test_gr_a5a5 3
        test_gr_a5a5 3
        test_gr_a5a5 4
        test_gr_a5a5 4
        test_gr_a5a5 5
        test_gr_a5a5 5
        test_gr_a5a5 6
        test_gr_a5a5 6
        test_gr_a5a5 7
        test_gr_a5a5 7
 
 
.if (sim_cpu == h8sx)
.if (sim_cpu == h8sx)
bistz_imm3_abs8:
bistz_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; bistz xx:3, aa:8
        ;; bistz xx:3, aa:8
        bistz   #6, @0x20:8     ; this should set bit 6
        bistz   #6, @0x20:8     ; this should set bit 6
        test_cc_clear
        test_cc_clear
        mov.b   @0x20, r0l
        mov.b   @0x20, r0l
        test_h_gr16 0xa5e5 r0
        test_h_gr16 0xa5e5 r0
 
 
        set_ccr_zero
        set_ccr_zero
        orc     #4, ccr         ; set the zero flag
        orc     #4, ccr         ; set the zero flag
        bistz   #7, @0x20:8     ; this should clear bit 7
        bistz   #7, @0x20:8     ; this should clear bit 7
        test_carry_clear
        test_carry_clear
        test_ovf_clear
        test_ovf_clear
        test_neg_clear
        test_neg_clear
        test_zero_set
        test_zero_set
        mov.b   @0x20, r0l
        mov.b   @0x20, r0l
        test_h_gr16 0xa565 r0
        test_h_gr16 0xa565 r0
 
 
        test_gr_a5a5 1          ; general registers should not be changed.
        test_gr_a5a5 1          ; general registers should not be changed.
        test_gr_a5a5 2
        test_gr_a5a5 2
        test_gr_a5a5 3
        test_gr_a5a5 3
        test_gr_a5a5 4
        test_gr_a5a5 4
        test_gr_a5a5 5
        test_gr_a5a5 5
        test_gr_a5a5 6
        test_gr_a5a5 6
        test_gr_a5a5 7
        test_gr_a5a5 7
.endif                          ; h8sx
.endif                          ; h8sx
 
 
bnot_imm3_reg8:
bnot_imm3_reg8:
        set_grs_a5a5
        set_grs_a5a5
        set_ccr_zero
        set_ccr_zero
        ;; bnot xx:3, reg8
        ;; bnot xx:3, reg8
        bnot    #7, r0l
        bnot    #7, r0l
        test_cc_clear
        test_cc_clear
        test_h_gr16 0xa525 r0
        test_h_gr16 0xa525 r0
        set_ccr_zero
        set_ccr_zero
        bnot    #6, r0l
        bnot    #6, r0l
        test_cc_clear
        test_cc_clear
        test_h_gr16 0xa565 r0
        test_h_gr16 0xa565 r0
        set_ccr_zero
        set_ccr_zero
        bnot    #5, r0l
        bnot    #5, r0l
        test_cc_clear
        test_cc_clear
        test_h_gr16 0xa545 r0
        test_h_gr16 0xa545 r0
        set_ccr_zero
        set_ccr_zero
        bnot    #4, r0l
        bnot    #4, r0l
        test_cc_clear
        test_cc_clear
        test_h_gr16 0xa555 r0
        test_h_gr16 0xa555 r0
        set_ccr_zero
        set_ccr_zero
 
 
        bnot    #4, r0l
        bnot    #4, r0l
        bnot    #5, r0l
        bnot    #5, r0l
        bnot    #6, r0l
        bnot    #6, r0l
        bnot    #7, r0l
        bnot    #7, r0l
        test_cc_clear
        test_cc_clear
        test_grs_a5a5           ; general registers should not be changed.
        test_grs_a5a5           ; general registers should not be changed.
 
 
bnot_imm3_abs8:
bnot_imm3_abs8:
        set_grs_a5a5
        set_grs_a5a5
        mov.b   r1l, @0x20
        mov.b   r1l, @0x20
        set_ccr_zero
        set_ccr_zero
        ;; bnot xx:3, aa:8
        ;; bnot xx:3, aa:8
        bnot    #7, @0x20:8
        bnot    #7, @0x20:8
        bnot    #6, @0x20:8
        bnot    #6, @0x20:8
        bnot    #5, @0x20:8
        bnot    #5, @0x20:8
        bnot    #4, @0x20:8
        bnot    #4, @0x20:8
        test_cc_clear
        test_cc_clear
        test_grs_a5a5
        test_grs_a5a5
        mov     @0x20, r0l
        mov     @0x20, r0l
        test_h_gr16 0xa555 r0
        test_h_gr16 0xa555 r0
 
 
        pass
        pass
        exit 0
        exit 0
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.