xref: /netbsd-src/external/gpl3/gdb/dist/sim/testsuite/bfin/add_shift.S (revision 4b169a6ba595ae283ca507b26b15fdff40495b1c)
1// ACP 5.6 Flags for dreg=(dreg+dreg)<<1,2
2# mach: bfin
3
4#include "test.h"
5.include "testutils.inc"
6	start
7
8
9	r1=0;
10	ASTAT = R1;
11	r2=0;
12	r2.h=0x4000;
13	r2=(r2+r1)<<2;
14	dbga (r2.l,0x0);
15	dbga (r2.h,0x0);
16	_dbg ASTAT;
17	r7=ASTAT;
18	CHECKREG R7, (_VS|_V|_V_COPY|_AZ)
19
20	r2=0;
21	r2.h=0x4000;
22	r2=(r2+r1)<<1;
23	dbga (r2.l,0x0);
24	dbga (r2.h,0x8000);
25	_dbg ASTAT;
26	r7=ASTAT;
27	CHECKREG R7, (_VS|_V|_V_COPY|_AN)
28
29	r1=0;
30	r1.h=0xd300;
31	r2=0;
32	r2.h=0xb700;
33	r2=(r2+r1)<<1;
34	dbga (r2.l,0x0);
35	dbga (r2.h,0x1400);
36	_dbg ASTAT;
37	r7=ASTAT;
38	CHECKREG R7, (_VS|_V|_V_COPY)
39
40	r0 = 1;
41	r0 <<= 31;	// r0 should be 0x80000000
42	r7 = 0;
43	ASTAT = r7;
44	_dbg r0;
45	r1 = r0;
46	_dbg r1;
47	r1 = (r1 + r0) << 1;	// add overflows to zero, no shift overflow
48	_dbg r1;
49	_dbg ASTAT;
50	r7 = ASTAT;
51	CHECKREG R7, (_VS|_V|_V_COPY|_AZ);
52
53	pass
54