1// Test various moves to single register 2# mach: bfin 3 4 5.include "testutils.inc" 6 start 7 8 9// load r0=0x7fffffff 10// load r1=0x00ffffff 11// load r2=0xf0000000 12// load r3=0x0000007f 13 loadsym P0, data0; 14 R0 = [ P0 ++ ]; 15 R1 = [ P0 ++ ]; 16 R2 = [ P0 ++ ]; 17 R3 = [ P0 ++ ]; 18 19// extract only to high register 20 R5 = 0; 21 R4 = 0; 22 A1 = A0 = 0; 23 A1.w = R0; 24 A0.w = R0; 25 R5 = A1; 26 DBGA ( R4.L , 0x0000 ); 27 DBGA ( R4.H , 0x0000 ); 28 DBGA ( R5.L , 0xffff ); 29 DBGA ( R5.H , 0x7fff ); 30 31// extract only to low register 32 R5 = 0; 33 R4 = 0; 34 A1 = A0 = 0; 35 A1.w = R0; 36 A0.w = R0; 37 R4 = A0; 38 DBGA ( R4.L , 0xffff ); 39 DBGA ( R4.H , 0x7fff ); 40 DBGA ( R5.L , 0x0000 ); 41 DBGA ( R5.H , 0x0000 ); 42 43// extract only to high reg 44 R5 = 0; 45 R4 = 0; 46 A1 = A0 = 0; 47 R5 = ( A1 += R0.H * R0.H ), A0 += R0.H * R0.H; 48 DBGA ( R4.L , 0x0000 ); 49 DBGA ( R4.H , 0x0000 ); 50 DBGA ( R5.L , 0x0002 ); 51 DBGA ( R5.H , 0x7ffe ); 52 53// extract only to low reg 54 R5 = 0; 55 R4 = 0; 56 A1 = A0 = 0; 57 A1 += R0.H * R0.H, R4 = ( A0 += R0.H * R0.H ); 58 DBGA ( R4.L , 0x0002 ); 59 DBGA ( R4.H , 0x7ffe ); 60 DBGA ( R5.L , 0x0000 ); 61 DBGA ( R5.H , 0x0000 ); 62 63 pass 64 65 .data 66data0: 67 .dw 0xffff 68 .dw 0x7fff 69 .dw 0xffff 70 .dw 0x00ff 71 .dw 0x0000 72 .dw 0xf000 73 .dw 0x007f 74 .dw 0x0000 75