Home | History | Annotate | Line # | Download | only in h8300
      1  1.1  christos # Hitachi H8 testcase 'and.l'
      2  1.1  christos # mach(): h8300h h8300s h8sx
      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 	start
     14  1.1  christos 
     15  1.1  christos .if (sim_cpu == h8sx)		; 16-bit immediate is only available on sx.
     16  1.1  christos and_l_imm16:
     17  1.1  christos 	set_grs_a5a5		; Fill all general regs with a fixed pattern
     18  1.1  christos 	;;  fixme set ccr
     19  1.1  christos 
     20  1.1  christos 	;;  and.l #xx:16,Rd
     21  1.1  christos 	and.l	#0xaaaa:16, er0	; Immediate 16-bit operand
     22  1.1  christos 
     23  1.1  christos 	;; fixme test ccr	; H=0 N=1 Z=0 V=0 C=0
     24  1.1  christos 
     25  1.1  christos 	test_h_gr32 0x0000a0a0 er0	; and result:	 a5a5a5a5 & aaaa
     26  1.1  christos 
     27  1.1  christos 	test_gr_a5a5 1		; Make sure other general regs not disturbed
     28  1.1  christos 	test_gr_a5a5 2
     29  1.1  christos 	test_gr_a5a5 3
     30  1.1  christos 	test_gr_a5a5 4
     31  1.1  christos 	test_gr_a5a5 5
     32  1.1  christos 	test_gr_a5a5 6
     33  1.1  christos 	test_gr_a5a5 7
     34  1.1  christos .endif
     35  1.1  christos 
     36  1.1  christos and_l_imm32:
     37  1.1  christos 	set_grs_a5a5		; Fill all general regs with a fixed pattern
     38  1.1  christos 	;;  fixme set ccr
     39  1.1  christos 
     40  1.1  christos 	;;  and.l #xx:32,Rd
     41  1.1  christos 	and.l	#0xaaaaaaaa, er0	; Immediate 32-bit operand
     42  1.1  christos 
     43  1.1  christos 	;; fixme test ccr	; H=0 N=1 Z=0 V=0 C=0
     44  1.1  christos 
     45  1.1  christos 	test_h_gr32 0xa0a0a0a0 er0	; and result:	 a5a5a5a5 & aaaaaaaa
     46  1.1  christos 
     47  1.1  christos 	test_gr_a5a5 1		; Make sure other general regs not disturbed
     48  1.1  christos 	test_gr_a5a5 2
     49  1.1  christos 	test_gr_a5a5 3
     50  1.1  christos 	test_gr_a5a5 4
     51  1.1  christos 	test_gr_a5a5 5
     52  1.1  christos 	test_gr_a5a5 6
     53  1.1  christos 	test_gr_a5a5 7
     54  1.1  christos 
     55  1.1  christos and_l_reg:
     56  1.1  christos 	set_grs_a5a5		; Fill all general regs with a fixed pattern
     57  1.1  christos 	;;  fixme set ccr
     58  1.1  christos 
     59  1.1  christos 	;;  and.l Rs,Rd
     60  1.1  christos 	mov.l	#0xaaaaaaaa, er1
     61  1.1  christos 	and.l	er1, er0	; Register operand
     62  1.1  christos 
     63  1.1  christos 	;; fixme test ccr	; H=0 N=1 Z=0 V=0 C=0
     64  1.1  christos 
     65  1.1  christos 	test_h_gr32 0xa0a0a0a0 er0	; and result:	a5a5a5a5 & aaaaaaaa
     66  1.1  christos 	test_h_gr32 0xaaaaaaaa er1	; Make sure er1 is unchanged
     67  1.1  christos 
     68  1.1  christos 	test_gr_a5a5 2		; Make sure other general regs not disturbed
     69  1.1  christos 	test_gr_a5a5 3
     70  1.1  christos 	test_gr_a5a5 4
     71  1.1  christos 	test_gr_a5a5 5
     72  1.1  christos 	test_gr_a5a5 6
     73  1.1  christos 	test_gr_a5a5 7
     74  1.1  christos 
     75  1.1  christos 	pass
     76  1.1  christos 
     77  1.1  christos 	exit 0
     78