1 1.1 christos // ALU test program. 2 1.1 christos // Test instructions reg = (A0+=A1) 3 1.1 christos 4 1.1 christos #include "test.h" 5 1.1 christos .include "testutils.inc" 6 1.1 christos start 7 1.1 christos 8 1.1 christos R0 = 0; 9 1.1 christos ASTAT = R0; 10 1.1 christos 11 1.1 christos loadsym P0, data0; 12 1.1 christos 13 1.1 christos R0 = [ P0 ++ ]; 14 1.1 christos R1 = [ P0 ++ ]; 15 1.1 christos R2 = [ P0 ++ ]; 16 1.1 christos R3 = [ P0 ++ ]; 17 1.1 christos R4 = [ P0 ++ ]; 18 1.1 christos 19 1.1 christos // add accums and transfer result 20 1.1 christos A1 = A0 = 0; 21 1.1 christos A1.w = R0; 22 1.1 christos A0.w = R0; 23 1.1 christos R6 = ( A0 += A1 ); 24 1.1 christos CHECKREG R6, 0x22222222; 25 1.1 christos R6 = A0.w; 26 1.1 christos CHECKREG R6, 0x22222222; 27 1.1 christos R7 = A0.x; 28 1.1 christos CHECKREG R7, 0; 29 1.1 christos R6 = A1.w; 30 1.1 christos CHECKREG R6, 0x11111111; 31 1.1 christos R7 = A1.x; 32 1.1 christos CHECKREG R7, 0; 33 1.1 christos 34 1.1 christos // add accums and transfer result (saturate positive) 35 1.1 christos R7 = 0; 36 1.1 christos ASTAT = R7; 37 1.1 christos A1 = A0 = 0; 38 1.1 christos A1.w = R1; 39 1.1 christos A0.w = R1; 40 1.1 christos R6 = ( A0 += A1 ); 41 1.1 christos CHECKREG R6, 0x7fffffff; 42 1.1 christos R6 = A0.w; 43 1.1 christos CHECKREG R6, 0xfffffffe; 44 1.1 christos R7 = A0.x; 45 1.1 christos CHECKREG R7, 0; 46 1.1 christos R6 = A1.w; 47 1.1 christos CHECKREG R6, 0x7fffffff; 48 1.1 christos _DBG ASTAT; 49 1.1 christos R7 = A1.x; 50 1.1 christos _DBG ASTAT; 51 1.1 christos CHECKREG R7, 0; 52 1.1 christos R7 = ASTAT; 53 1.1 christos CHECKREG R7, (_VS|_V|_V_COPY); 54 1.1 christos 55 1.1 christos // add accums and transfer result (saturate negative) 56 1.1 christos R7 = 0; 57 1.1 christos ASTAT = R7; 58 1.1 christos A1 = A0 = 0; 59 1.1 christos A1.w = R2; 60 1.1 christos A0.w = R2; 61 1.1 christos A1.x = R3.L; 62 1.1 christos A0.x = R3.L; 63 1.1 christos R6 = ( A0 += A1 ); 64 1.1 christos CHECKREG R6, 0x80000000; 65 1.1 christos R6 = A0.w; 66 1.1 christos CHECKREG R6, 0x00000000; 67 1.1 christos R7 = A0.x; 68 1.1 christos CHECKREG R6, 0; 69 1.1 christos R6 = A1.w; 70 1.1 christos CHECKREG R6, 0x80000000; 71 1.1 christos R7 = A1.x; 72 1.1 christos CHECKREG R7, 0xffffffff; 73 1.1 christos R7 = ASTAT; 74 1.1 christos _DBG ASTAT; 75 1.1 christos CHECKREG R7, (_VS|_V|_V_COPY|_AC0|_AC0_COPY|_AN); 76 1.1 christos 77 1.1 christos pass 78 1.1 christos 79 1.1 christos .data 80 1.1 christos data0: 81 1.1 christos .dw 0x1111 82 1.1 christos .dw 0x1111 83 1.1 christos .dw 0xffff 84 1.1 christos .dw 0x7fff 85 1.1 christos .dw 0x0000 86 1.1 christos .dw 0x8000 87 1.1 christos .dw 0x00ff 88 1.1 christos .dw 0x0000 89 1.1 christos .dw 0x0000 90 1.1 christos .dw 0x0000 91