// Shifter test program. // Test instructions // RL5 = EXPADJ R4 BY RL2; # mach: bfin .include "testutils.inc" start R0.L = 30; // large norm of small value R0.H = 1; // make sure high half is not used R1.L = 0x0000; R1.H = 0x1000; // small norm (2) of large value R7.L = EXPADJ( R1 , R0.L ); DBGA ( R7.L , 0x0002 ); R0.L = 3; // small norm of large value R0.H = 1; // make sure high half is not used R1.L = 0x0000; R1.H = 0xff00; // small norm (2) of large value R7.L = EXPADJ( R1 , R0.L ); DBGA ( R7.L , 0x0003 ); R0.L = 3; R0.H = 1; R1.L = 0xffff; R1.H = 0xffff; R7.L = EXPADJ( R1 , R0.L ); DBGA ( R7.L , 0x0003 ); R0.L = 31; R0.H = 1; R1.L = 0x0000; // norm=0 R1.H = 0x8000; R7.L = EXPADJ( R1 , R0.L ); DBGA ( R7.L , 0x0000 ); // RL5 = EXPADJ/EXPADJ R4 BY RL2; R0.L = 15; R1.L = 0x0800; R1.H = 0x1000; R7.L = EXPADJ( R1 , R0.L ) (V); DBGA ( R7.L , 0x0002 ); R0.L = 15; R1.L = 0x1000; R1.H = 0x0800; R7.L = EXPADJ( R1 , R0.L ) (V); DBGA ( R7.L , 0x0002 ); R0.L = 1; R1.L = 0x0800; R1.H = 0x1000; R7.L = EXPADJ( R1 , R0.L ) (V); DBGA ( R7.L , 0x0001 ); R0.L = 14; R1.L = 0xff00; R1.H = 0xfff0; R7.L = EXPADJ( R1 , R0.L ) (V); DBGA ( R7.L , 0x0007 ); // RL5 = EXPADJ RL4 BY RL2; R0.L = 14; R1.L = 0xff00; R1.H = 0x1000; R7.L = EXPADJ( R1.L , R0.L ); DBGA ( R7.L , 0x0007 ); R0.L = 3; R1.L = 0xff00; R1.H = 0x1000; R7.L = EXPADJ( R1.L , R0.L ); DBGA ( R7.L , 0x0003 ); R0.L = 14; R1.L = 0x1000; R1.H = 0xff00; R7.L = EXPADJ( R1.H , R0.L ); DBGA ( R7.L , 0x0007 ); pass |