1// Shifter test program. 2// Test instructions 3// RL0 = SIGNBITS R1; 4// RL0 = SIGNBITS RL1; 5// RL0 = SIGNBITS RH1; 6 7# mach: bfin 8 9.include "testutils.inc" 10 start 11 12 13// on 32-b word 14 15 R1.L = 0xffff; 16 R1.H = 0x7fff; 17 R0.L = SIGNBITS R1; 18 DBGA ( R0.L , 0x0000 ); 19 20 R1.L = 0xffff; 21 R1.H = 0x30ff; 22 R0.L = SIGNBITS R1; 23 DBGA ( R0.L , 0x0001 ); 24 25 R1.L = 0xff0f; 26 R1.H = 0x10ff; 27 R0.L = SIGNBITS R1; 28 DBGA ( R0.L , 0x0002 ); 29 30 R1.L = 0xff0f; 31 R1.H = 0xe0ff; 32 R0.L = SIGNBITS R1; 33 DBGA ( R0.L , 0x0002 ); 34 35 R1.L = 0x0001; 36 R1.H = 0x0000; 37 R0.L = SIGNBITS R1; 38 DBGA ( R0.L , 0x0001e ); 39 40 R1.L = 0xfffe; 41 R1.H = 0xffff; 42 R0.L = SIGNBITS R1; 43 DBGA ( R0.L , 0x0001e ); 44 45 R1.L = 0xffff; // return largest norm for -1 46 R1.H = 0xffff; 47 R0.L = SIGNBITS R1; 48 DBGA ( R0.L , 0x0001f ); 49 50 R1.L = 0; // return largest norm for zero 51 R1.H = 0; 52 R0.L = SIGNBITS R1; 53 DBGA ( R0.L , 0x001f ); 54 55// on 16-b word 56 57 R1.L = 0x7fff; 58 R1.H = 0xffff; 59 R0.L = SIGNBITS R1.L; 60 DBGA ( R0.L , 0x0000 ); 61 62 R1.L = 0x0fff; 63 R1.H = 0x0001; 64 R0.L = SIGNBITS R1.H; 65 DBGA ( R0.L , 0x000e ); 66 67 R1.L = 0x0fff; 68 R1.H = 0xffff; 69 R0.L = SIGNBITS R1.H; 70 DBGA ( R0.L , 0x000f ); 71 72 R1.L = 0x0fff; 73 R1.H = 0xfffe; 74 R0.L = SIGNBITS R1.H; 75 DBGA ( R0.L , 0x000e ); 76 77 pass 78