Home | History | Annotate | Line # | Download | only in bfin
      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