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 71foo: 72 .space (0x100) 73