149 lines
2.2 KiB
ArmAsm
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:
|