xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/frv/fr400/slass.cgs (revision a45db23f655e22f0c2354600d3b3c2cb98abf2dc)
1# frv testcase for slass $GRi,$GRj,$GRk
2# mach: fr405 fr450
3
4	.include "../testutils.inc"
5
6	start
7
8	.global sll
9slass0:
10	set_gr_immed  	0,gr7			; Shift by 0
11	set_gr_immed   	2,gr8
12	slass      	gr8,gr7,gr6
13	test_gr_immed  	2,gr8
14	test_gr_immed	0,gr7
15	test_gr_immed  	2,gr6
16slass1:
17	set_gr_immed  	1,gr7			; Shift by 1
18	set_gr_immed   	2,gr8
19	slass      	gr8,gr7,gr6
20	test_gr_immed  	2,gr8
21	test_gr_immed	1,gr7
22	test_gr_immed  	4,gr6
23
24slass2:
25	set_gr_immed  	31,gr7			; Shift 1 by 31
26	set_gr_immed   	1,gr8
27	slass      	gr8,gr7,gr6
28	test_gr_immed  	1,gr8
29	test_gr_immed	31,gr7
30	test_gr_limmed	0x7fff,0xffff,gr6
31
32slass3:
33	set_gr_immed  	31,gr7			; Shift -1 by 31
34	set_gr_immed   	-1,gr8
35	slass      	gr8,gr7,gr6
36	test_gr_immed  	-1,gr8
37	test_gr_immed	31,gr7
38	test_gr_limmed	0x8000,0x0000,gr6
39
40slass4:
41	set_gr_immed  	14,gr7			; Shift 0xffff0000 by 14
42	set_gr_limmed	0xffff,0x0000,gr8
43	slass      	gr8,gr7,gr6
44	test_gr_limmed	0xffff,0x0000,gr8
45	test_gr_immed	14,gr7
46	test_gr_limmed	0xc000,0x0000,gr6
47
48slass5:
49	set_gr_immed  	15,gr7			; Shift 0xffff0000 by 15
50	set_gr_limmed	0xffff,0x0000,gr8
51	slass      	gr8,gr7,gr6
52	test_gr_limmed	0xffff,0x0000,gr8
53	test_gr_immed	15,gr7
54	test_gr_limmed	0x8000,0x0000,gr6
55
56slass6:
57	set_gr_immed  	20,gr7			; Shift 0xffff0000 by 20
58	set_gr_limmed	0xffff,0x0000,gr8
59	slass      	gr8,gr7,gr6
60	test_gr_limmed	0xffff,0x0000,gr8
61	test_gr_immed	20,gr7
62	test_gr_limmed	0x8000,0x0000,gr6
63
64slass7:
65	set_gr_immed  	14,gr7			; Shift 0x0000ffff by 14
66	set_gr_limmed	0x0000,0xffff,gr8
67	slass      	gr8,gr7,gr6
68	test_gr_limmed	0x0000,0xffff,gr8
69	test_gr_immed	14,gr7
70	test_gr_limmed	0x3fff,0xc000,gr6
71
72slass8:
73	set_gr_immed  	15,gr7			; Shift 0x0000ffff by 15
74	set_gr_limmed  	0x0000,0xffff,gr8
75	slass      	gr8,gr7,gr6
76	test_gr_limmed	0x0000,0xffff,gr8
77	test_gr_immed	15,gr7
78	test_gr_limmed	0x7fff,0x8000,gr6
79
80slass9:
81	set_gr_immed  	20,gr7			; Shift 0x0000ffff by 20
82	set_gr_limmed  	0x0000,0xffff,gr8
83	slass      	gr8,gr7,gr6
84	test_gr_limmed	0x0000,0xffff,gr8
85	test_gr_immed	20,gr7
86	test_gr_limmed	0x7fff,0xffff,gr6
87
88slass10:
89	set_gr_immed  	30,gr7			; Shift 1 by 30
90	set_gr_immed   	1,gr8
91	slass      	gr8,gr7,gr6
92	test_gr_immed  	1,gr8
93	test_gr_immed	30,gr7
94	test_gr_limmed	0x4000,0x0000,gr6
95
96slass11:
97	set_gr_immed  	30,gr7			; Shift -1 by 30
98	set_gr_immed   	-1,gr8
99	slass      	gr8,gr7,gr6
100	test_gr_immed  	-1,gr8
101	test_gr_immed	30,gr7
102	test_gr_limmed	0xc000,0000,gr6
103
104	pass
105