56 lines
799 B
ArmAsm
56 lines
799 B
ArmAsm
//Original:/testcases/seq/se_rets_hazard/se_rets_hazard.dsp
|
|
# mach: bfin
|
|
|
|
.include "testutils.inc"
|
|
start
|
|
|
|
|
|
BOOT:
|
|
FP = SP; // and frame pointer
|
|
|
|
INIT_R_REGS 0; // initialize general purpose regs
|
|
|
|
|
|
|
|
|
|
ASTAT = r0; // reset sequencer registers
|
|
|
|
// The Main Program
|
|
|
|
|
|
START:
|
|
loadsym r1, SUB1;
|
|
RETS = r1;
|
|
RTS;
|
|
|
|
MID1:
|
|
CHECKREG r6, 0; // shouldn't be BAD
|
|
R6.L = 0xBAD2; // In case we come back to MID1
|
|
loadsym P1, MID2;
|
|
CALL ( P1 );
|
|
RTS;
|
|
|
|
MID2:
|
|
loadsym R1, END;
|
|
RETS = r1;
|
|
[ -- SP ] = I0;
|
|
LINK 0;
|
|
I0 = FP;
|
|
UNLINK;
|
|
RTS;
|
|
|
|
END:
|
|
|
|
pass // Call Endtest Macro
|
|
|
|
// Subroutines and Functions
|
|
|
|
SUB1: // Code goes here
|
|
CHECKREG r7, 0; // should be if sub executed
|
|
R7.L = 0xBAD; // In case we come back to SUB1
|
|
loadsym R2, MID1;
|
|
[ -- SP ] = R2;
|
|
RETS = [sp++];
|
|
RTS;
|
|
R6.L = 0xBAD;
|