Home | History | Annotate | Line # | Download | only in bfin
      1 // Test various moves to single register
      2 # mach: bfin
      3 
      4 
      5 .include "testutils.inc"
      6 	start
      7 
      8 
      9 // load r0=0x7fffffff
     10 // load r1=0x00ffffff
     11 // load r2=0xf0000000
     12 // load r3=0x0000007f
     13 	loadsym P0, data0;
     14 	R0 = [ P0 ++ ];
     15 	R1 = [ P0 ++ ];
     16 	R2 = [ P0 ++ ];
     17 	R3 = [ P0 ++ ];
     18 
     19 // extract only to high register
     20 	R5 = 0;
     21 	R4 = 0;
     22 	A1 = A0 = 0;
     23 	A1.w = R0;
     24 	A0.w = R0;
     25 	R5 = A1;
     26 	DBGA ( R4.L , 0x0000 );
     27 	DBGA ( R4.H , 0x0000 );
     28 	DBGA ( R5.L , 0xffff );
     29 	DBGA ( R5.H , 0x7fff );
     30 
     31 // extract only to low register
     32 	R5 = 0;
     33 	R4 = 0;
     34 	A1 = A0 = 0;
     35 	A1.w = R0;
     36 	A0.w = R0;
     37 	R4 = A0;
     38 	DBGA ( R4.L , 0xffff );
     39 	DBGA ( R4.H , 0x7fff );
     40 	DBGA ( R5.L , 0x0000 );
     41 	DBGA ( R5.H , 0x0000 );
     42 
     43 // extract  only to high reg
     44 	R5 = 0;
     45 	R4 = 0;
     46 	A1 = A0 = 0;
     47 	R5 = ( A1 += R0.H * R0.H ), A0 += R0.H * R0.H;
     48 	DBGA ( R4.L , 0x0000 );
     49 	DBGA ( R4.H , 0x0000 );
     50 	DBGA ( R5.L , 0x0002 );
     51 	DBGA ( R5.H , 0x7ffe );
     52 
     53 // extract  only to low reg
     54 	R5 = 0;
     55 	R4 = 0;
     56 	A1 = A0 = 0;
     57 	A1 += R0.H * R0.H, R4 = ( A0 += R0.H * R0.H );
     58 	DBGA ( R4.L , 0x0002 );
     59 	DBGA ( R4.H , 0x7ffe );
     60 	DBGA ( R5.L , 0x0000 );
     61 	DBGA ( R5.H , 0x0000 );
     62 
     63 	pass
     64 
     65 	.data
     66 data0:
     67 	.dw 0xffff
     68 	.dw 0x7fff
     69 	.dw 0xffff
     70 	.dw 0x00ff
     71 	.dw 0x0000
     72 	.dw 0xf000
     73 	.dw 0x007f
     74 	.dw 0x0000
     75