binutils-gdb/sim/testsuite/bfin/se_kills2.S
Mike Frysinger 1368b914e9 sim: testsuite: flatten tree
Now that all port tests live under testsuite/sim/*/, and none live
in testsuite/ directly, flatten the structure by moving all of the
dirs under testsuite/sim/ to testsuite/ directly.

We need to stop passing --tool to dejagnu so that it searches all
dirs and not just ones that start with "sim".  Since we have no
other dirs in this tree, and no plans to add any, should be fine.
2021-01-15 19:18:34 -05:00

149 lines
2.2 KiB
ArmAsm

//Original:/proj/frio/dv/testcases/seq/se_kills2/se_kills2.dsp
// Description: Test se_kill for all supported types of RTL1 instructions
# mach: bfin
# sim: --environment operating
#include "test.h"
.include "testutils.inc"
start
//
// Constants and Defines
//
include(selfcheck.inc)
include(std.inc)
include(symtable.inc)
#ifndef STACKSIZE
#define STACKSIZE 0x10
#endif
//
// Reset/Bootstrap Code
// (Here we should set the processor operating modes, initialize registers,
// etc.)
//
BOOT:
SP = 0 (Z);
SP.L = KSTACK; // setup the stack pointer
SP.H = KSTACK;
FP = SP; // and frame pointer
INIT_R_REGS(0); // initialize general purpose regs
INIT_P_REGS(0); // initialize the pointers
INIT_I_REGS(0); // initialize the dsp address regs
INIT_M_REGS(0);
INIT_L_REGS(0);
INIT_B_REGS(0);
ASTAT = r0; // reset sequencer registers
//
// The Main Program
//
START:
// **** YOUR CODE GOES HERE ****
// CHECK_INIT(p0, 0xFF7FFFFC); // original
CHECK_INIT_DEF(p0);
R0 = 0;
R1 = 1;
R2 = 2;
R3 = 3;
R4 = 4;
R5 = 5;
R6 = 6;
R7 = 7;
P1 = 11;
// Assume CC is reset to 0.
IF !CC JUMP NEXT1; // following instruction should be killed
RAISE 13;
NEXT1:
IF !CC JUMP NEXT2;
EXCPT 15;
NEXT2:
IF !CC JUMP NEXT3;
( R7:0, P5:0 ) = [ SP ++ ];
NEXT3:
IF !CC JUMP NEXT4;
[ -- SP ] = ( R7:0, P5:0 );
NEXT4:
IF !CC JUMP NEXT5;
EMUEXCPT;
NEXT5:
IF !CC JUMP NEXT6;
.dd 0xFACEBABE
NEXT6:
IF !CC JUMP NEXT7;
LINK 12;
NEXT7:
IF !CC JUMP NEXT8;
UNLINK;
NEXT8:
IF !CC JUMP NEXT9;
LSETUP (NEXT10, NEXT11) lc0 = p0;
NEXT9:
IF !CC JUMP NEXT10;
NEXT10:
IF !CC JUMP NEXT11;
NEXT11:
IF !CC JUMP NEXT12;
NEXT12:
IF !CC JUMP NEXT13;
NEXT13:
IF !CC JUMP NEXT14;
NEXT14:
IF !CC JUMP NEXT15;
NEXT15:
IF !CC JUMP NEXT16;
NEXT16:
END:
CHECKREG(r0, 0);
CHECKREG(r1, 1);
CHECKREG(r2, 2);
CHECKREG(r3, 3);
CHECKREG(r4, 4);
CHECKREG(r5, 5);
CHECKREG(r6, 6);
CHECKREG(r7, 7);
dbg_pass; // Call Endtest Macro
//*********************************************************************
//
// Data Segment
//
//.data 0xF0000000
.data
DATA:
.space (0x010); // Some data space
// Stack Segments
.space (STACKSIZE);
KSTACK: