xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/s10.s (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1//  Shifter test program.
2//  Test instructions
3//  RL0 = SIGNBITS R1;
4//  RL0 = SIGNBITS RL1;
5//  RL0 = SIGNBITS RH1;
6
7# mach: bfin
8
9.include "testutils.inc"
10	start
11
12
13// on 32-b word
14
15	R1.L = 0xffff;
16	R1.H = 0x7fff;
17	R0.L = SIGNBITS R1;
18	DBGA ( R0.L , 0x0000 );
19
20	R1.L = 0xffff;
21	R1.H = 0x30ff;
22	R0.L = SIGNBITS R1;
23	DBGA ( R0.L , 0x0001 );
24
25	R1.L = 0xff0f;
26	R1.H = 0x10ff;
27	R0.L = SIGNBITS R1;
28	DBGA ( R0.L , 0x0002 );
29
30	R1.L = 0xff0f;
31	R1.H = 0xe0ff;
32	R0.L = SIGNBITS R1;
33	DBGA ( R0.L , 0x0002 );
34
35	R1.L = 0x0001;
36	R1.H = 0x0000;
37	R0.L = SIGNBITS R1;
38	DBGA ( R0.L , 0x0001e );
39
40	R1.L = 0xfffe;
41	R1.H = 0xffff;
42	R0.L = SIGNBITS R1;
43	DBGA ( R0.L , 0x0001e );
44
45	R1.L = 0xffff;	// return largest norm for -1
46	R1.H = 0xffff;
47	R0.L = SIGNBITS R1;
48	DBGA ( R0.L , 0x0001f );
49
50	R1.L = 0;	// return largest norm for zero
51	R1.H = 0;
52	R0.L = SIGNBITS R1;
53	DBGA ( R0.L , 0x001f );
54
55// on 16-b word
56
57	R1.L = 0x7fff;
58	R1.H = 0xffff;
59	R0.L = SIGNBITS R1.L;
60	DBGA ( R0.L , 0x0000 );
61
62	R1.L = 0x0fff;
63	R1.H = 0x0001;
64	R0.L = SIGNBITS R1.H;
65	DBGA ( R0.L , 0x000e );
66
67	R1.L = 0x0fff;
68	R1.H = 0xffff;
69	R0.L = SIGNBITS R1.H;
70	DBGA ( R0.L , 0x000f );
71
72	R1.L = 0x0fff;
73	R1.H = 0xfffe;
74	R0.L = SIGNBITS R1.H;
75	DBGA ( R0.L , 0x000e );
76
77	pass
78