summaryrefslogtreecommitdiff
path: root/sim/testsuite/sim/sh/swap.s
blob: 4dd6572695cbeb7b5481a80b927d0c04cd2b2065 (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
# sh testcase for swap
# mach: all
# as(sh):	-defsym sim_cpu=0
# as(shdsp):	-defsym sim_cpu=1 -dsp 

	.include "testutils.inc"

	start

swapb:
	set_grs_a5a5
	mov	#0x5a, r0
	shll8	r0
	or	#0xa5, r0
	assertreg0	0x5aa5
	
	swap.b	r0, r1
	assertreg	0xa55a, 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

swapw:	
	set_grs_a5a5
	mov	#0x5a, r0
	shll16	r0
	or	#0xa5, r0
	assertreg0	0x5a00a5

	swap.w	r0, r1
	assertreg	0xa5005a, 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