# mach: bfin .include "testutils.inc" start // load up some registers. // setup up a global pointer table and load some state. // save the machine state and clear some of the values. // then restore and assert some of the values to ensure that // we maintain consitent machine state. R0 = 1; R1 = 2; R2 = 3; R3 = -7; R4 = 4; R5 = 5; R6 = 6; R7 = 7; loadsym P0, a; _DBG P0; SP = P0; FP = P0; P1 = [ P0 ++ ]; P2 = [ P0 ++ ]; P0 += 4; P4 = [ P0 ++ ]; P5 = [ P0 ++ ]; [ -- SP ] = ( R7:0, P5:0 ); _DBG SP; _DBG FP; R0 = R0 ^ R0; R1 = R1 ^ R1; R2 = R2 ^ R2; R4 = R4 ^ R4; R5 = R5 ^ R5; R6 = R6 ^ R6; R7 = R7 ^ R7; ( R7:0, P5:0 ) = [ SP ++ ]; DBGA ( R0.L , 1 ); DBGA ( R2.L , 3 ); DBGA ( R7.L , 7 ); R0 = SP; loadsym R1, a; CC = R0 == R1; IF !CC JUMP abrt; R0 = FP; CC = R0 == R1; CC = R0 == R1; IF !CC JUMP abrt; pass abrt: fail .data _gptab: .dw 0x200 .dw 0x000 .dw 0x300 .dw 0x400 .dw 0x500 .dw 0x600 .space (0x100) a: .dw 1 .dw 2 .dw 3 .dw 4 .dw 5 .dw 6 .dw 7 .dw 8 .dw 9 .dw 0xa