blob: 503cabfe7a3d7a7c2602821535539d4a660c24f8 [file] [log] [blame]
// Shifter test program.
// Test instructions
// RL0 = SIGNBITS R1;
// RL0 = SIGNBITS RL1;
// RL0 = SIGNBITS RH1;
# mach: bfin
.include "testutils.inc"
start
// on 32-b word
R1.L = 0xffff;
R1.H = 0x7fff;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0000 );
R1.L = 0xffff;
R1.H = 0x30ff;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0001 );
R1.L = 0xff0f;
R1.H = 0x10ff;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0002 );
R1.L = 0xff0f;
R1.H = 0xe0ff;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0002 );
R1.L = 0x0001;
R1.H = 0x0000;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0001e );
R1.L = 0xfffe;
R1.H = 0xffff;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0001e );
R1.L = 0xffff; // return largest norm for -1
R1.H = 0xffff;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x0001f );
R1.L = 0; // return largest norm for zero
R1.H = 0;
R0.L = SIGNBITS R1;
DBGA ( R0.L , 0x001f );
// on 16-b word
R1.L = 0x7fff;
R1.H = 0xffff;
R0.L = SIGNBITS R1.L;
DBGA ( R0.L , 0x0000 );
R1.L = 0x0fff;
R1.H = 0x0001;
R0.L = SIGNBITS R1.H;
DBGA ( R0.L , 0x000e );
R1.L = 0x0fff;
R1.H = 0xffff;
R0.L = SIGNBITS R1.H;
DBGA ( R0.L , 0x000f );
R1.L = 0x0fff;
R1.H = 0xfffe;
R0.L = SIGNBITS R1.H;
DBGA ( R0.L , 0x000e );
pass