1// Test ALU NEG accumulators 2# mach: bfin 3 4.include "testutils.inc" 5 start 6 7 8 R0 = 0xffffffff; 9 A0.w = R0; 10 R0 = 0x7f (X); 11 A0.x = R0; 12 A0 = - A0; 13 _DBG A0; 14 R4 = A0.w; 15 R5 = A0.x; 16 DBGA ( R4.H , 0x0000 ); DBGA ( R4.L , 0x0001 ); 17 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xff80 ); 18 19 R0 = 0x1; 20 A0.w = R0; 21 R0 = 0x0; 22 A0.x = R0; 23 A0 = - A0; 24 R4 = A0.w; 25 R5 = A0.x; 26 _DBG A0; 27 DBGA ( R4.H , 0xffff ); DBGA ( R4.L , 0xffff ); 28 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xffff ); 29 30 R0 = 0xffffffff; 31 A0.w = R0; 32 R0 = 0xff (X); 33 A0.x = R0; 34 A0 = - A0; 35 R4 = A0.w; 36 R5 = A0.x; 37 DBGA ( R4.H , 0x0000 ); DBGA ( R4.L , 0x0001 ); 38 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x0000 ); 39 40 R0 = 0x00000000; 41 A0.w = R0; 42 R0 = 0x80 (X); 43 A0.x = R0; 44 A0 = - A0; 45 R4 = A0.w; 46 R5 = A0.x; 47 DBGA ( R4.H , 0xffff ); DBGA ( R4.L , 0xffff ); 48 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x007f ); 49 50// NEG NEG 51 R0 = 0x00000000; 52 A0.w = R0; 53 R0 = 0x80 (X); 54 A0.x = R0; 55 56 R0 = 0xffffffff; 57 A1.w = R0; 58 R0 = 0x7f (X); 59 A1.x = R0; 60 61 A1 = - A1, A0 = - A0; 62 63 R4 = A0.w; 64 R5 = A0.x; 65 DBGA ( R4.H , 0xffff ); DBGA ( R4.L , 0xffff ); 66 DBGA ( R5.H , 0x0000 ); DBGA ( R5.L , 0x007f ); 67 68 R4 = A1.w; 69 R5 = A1.x; 70 _DBG A1; 71 DBGA ( R4.H , 0x0000 ); DBGA ( R4.L , 0x0001 ); 72 DBGA ( R5.H , 0xffff ); DBGA ( R5.L , 0xff80 ); 73 74// NEG NEG register 75 R0.L = 0x0001; 76 R0.H = 0x8000; 77 78 R3 = - R0 (V); 79 DBGA ( R3.H , 0x7fff ); DBGA ( R3.L , 0xffff ); 80 81 _DBG ASTAT; 82 83 pass 84