Home | History | Annotate | Line # | Download | only in bfin
      1 //  Test ALU  SEARCH instruction
      2 # mach: bfin
      3 
      4 .include "testutils.inc"
      5 	start
      6 
      7 
      8 	init_r_regs 0;
      9 	ASTAT = R0;
     10 
     11 	R0 = 4;
     12 	R1 = 5;
     13 	A1 = A0 = 0;
     14 
     15 	R2.L = 0x0001;
     16 	R2.H = 0xffff;
     17 
     18 	loadsym P0, foo;
     19 
     20 	( R1 , R0 ) = SEARCH R2 (GT);
     21 
     22 	// R0 should be the pointer
     23 	R7 = P0;
     24 	CC = R0 == R7;
     25 	if !CC JUMP _fail;
     26 
     27 	_DBG R1;	// does not change
     28 	DBGA ( R1.H , 0 );	DBGA ( R1.L , 0x5 );
     29 
     30 	_DBG A0;	// changes
     31 	R0 = A0.w;
     32 	DBGA ( R0.H , 0 );	DBGA ( R0.L , 0x1 );
     33 
     34 	_DBG A1;	// does not change
     35 	R0 = A1.w;
     36 	DBGA ( R0.H , 0 );	DBGA ( R0.L , 0 );
     37 
     38 	R0 = 4;
     39 	R1 = 5;
     40 	A1 = A0 = 0;
     41 
     42 	R2.L = 0x0000;
     43 	R2.H = 0xffff;
     44 
     45 	loadsym p0, foo;
     46 
     47 	( R1 , R0 ) = SEARCH R2 (LT);
     48 
     49 	_DBG R0;	// no change
     50 	DBGA ( R0.H , 0 );	DBGA ( R0.L , 4 );
     51 
     52 	_DBG R1;	// change
     53 	R7 = P0;
     54 	CC = R1 == R7;
     55 	if !CC JUMP _fail;
     56 
     57 	_DBG A0;
     58 	R0 = A0.w;
     59 	DBGA ( R0.H , 0 );	DBGA ( R0.L , 0 );
     60 
     61 	_DBG A1;
     62 	R0 = A1.w;
     63 	DBGA ( R0.H , 0xffff );	DBGA ( R0.L , 0xffff );
     64 
     65 	pass
     66 
     67 _fail:
     68 	fail;
     69 
     70 	.data
     71 foo:
     72 	.space (0x100)
     73