xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/v850/shr.cgs (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1# v850 shr
2# mach: all
3
4	.include "testutils.inc"
5
6# CY is set to 1 if the bit shifted out last is 1, else 0
7# OV is set to zero.
8# Z is set if the result is 0, else 0
9
10	noflags
11	seti	4, r1
12	seti	0x00000000, r2
13	shr	r1, r2
14
15	flags	z
16	reg	r2, 0
17
18	noflags
19	seti	4, r1
20	seti	0x00000001, r2
21	shr	r1, r2
22
23	flags	z
24	reg	r2, 0
25
26	noflags
27	seti	4, r1
28	seti	0x00000008, r2
29	shr	r1, r2
30
31	flags	c + z
32	reg	r2, 0
33
34	noflags
35	seti	0x00000000, r2
36	shr	4, r2
37
38	flags	z
39	reg	r2, 0
40
41	noflags
42	seti	0x00000001, r2
43	shr	4, r2
44
45	flags	z
46	reg	r2, 0
47
48	noflags
49	seti	0x00000008, r2
50	shr	4, r2
51
52	flags	c + z
53	reg	r2, 0
54
55# However, if the number of shifts is 0, CY is 0.
56
57	noflags
58	seti	0, r1
59	seti	0xffffffff, r2
60	shr	r1, r2
61
62	flags	s
63	reg	r2, 0xffffffff
64
65	noflags
66	seti	0xffffffff, r2
67	shr	0, r2
68
69	flags	s
70	reg	r2, 0xffffffff
71
72# Zere is shifted into the MSB
73# S is 1 if the result is negative, else 0
74
75	noflags
76	seti	1, r1
77	seti	0x80000000, r2
78	shr	r1, r2
79
80	flags	0
81	reg	r2, 0x40000000
82
83	noflags
84	seti	1, r1
85	seti	0x40000000, r2
86	shr	r1, r2
87
88	flags	0
89	reg	r2, 0x20000000
90
91	pass
92