aboutsummaryrefslogtreecommitdiff
path: root/sim/testsuite/sh/and.s
blob: 00934473f9756863a7284c57c6cc394bf449c43c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
# sh testcase for and
# mach:	 all
# as(sh):	-defsym sim_cpu=0
# as(shdsp):	-defsym sim_cpu=1 -dsp 

	.include "testutils.inc"

	.align 2
_x:	.long	0xa5a5a5a5
_y:	.long	0x55555555
	
	start

and_reg_reg_direct:
	set_grs_a5a5
	mov.l	i, r1
	mov.l	j, r2
	and	r1, r2
	test_gr0_a5a5
	assertreg 0xa5a5a5a5 r1
	assertreg 0xa0a0a0a0 r2
	test_gr_a5a5 r3
	test_gr_a5a5 r4
	test_gr_a5a5 r5
	test_gr_a5a5 r6
	test_gr_a5a5 r7
	test_gr_a5a5 r8
	test_gr_a5a5 r9
	test_gr_a5a5 r10
	test_gr_a5a5 r11
	test_gr_a5a5 r12
	test_gr_a5a5 r13
	test_gr_a5a5 r14
	bra	and_imm_reg
	nop

	.align	2
i:	.long	0xa5a5a5a5
j:	.long	0xaaaaaaaa

and_imm_reg:
	set_grs_a5a5
	and	#0xff, r0
	assertreg    0xa5, r0
	test_gr_a5a5 r1
	test_gr_a5a5 r2
	test_gr_a5a5 r3
	test_gr_a5a5 r4
	test_gr_a5a5 r5
	test_gr_a5a5 r6
	test_gr_a5a5 r7
	test_gr_a5a5 r8
	test_gr_a5a5 r9
	test_gr_a5a5 r10
	test_gr_a5a5 r11
	test_gr_a5a5 r12
	test_gr_a5a5 r13
	test_gr_a5a5 r14

and_b_imm_ind:
	set_grs_a5a5
	mov.l	x, r0
	and.b	#0x55, @(r0, GBR)	
	mov.l	@r0, r0

	assertreg 0xa5a5a505, r0
	test_gr_a5a5 r1
	test_gr_a5a5 r2
	test_gr_a5a5 r3
	test_gr_a5a5 r4
	test_gr_a5a5 r5
	test_gr_a5a5 r6
	test_gr_a5a5 r7
	test_gr_a5a5 r8
	test_gr_a5a5 r9
	test_gr_a5a5 r10
	test_gr_a5a5 r11
	test_gr_a5a5 r12
	test_gr_a5a5 r13
	test_gr_a5a5 r14

	pass

	exit 0

	.align 2
x:	.long	_x
y:	.long	_y