blob: bdcd71b6827ce929888c78d2a47648e3ca5426f8 [file] [log] [blame]
// assert that we can issue a software exception
// and that the expt number is passed correctly through
// SEQSTAT.
# mach: bfin
# sim: --environment operating
.include "testutils.inc"
start
.ifndef BFIN_HOST
imm32 p0, 0xFFE02000; /* EVT0 */
P1 = re (Z); // load a pointer to ihandler interrupt 1
P1.H = re;
[ P0 + (4*3) ] = P1;
R0 = -1; /* unmask all interrupts */
imm32 p1, 0xFFE02104;
[P1] = R0;
R0 = start_uspace (Z);
R0.H = start_uspace;
RETI = R0;
RTI;
start_uspace:
EXCPT 10;
DBGA ( R1.L , 0x1238 );
dbg_pass;
// ihandler
re:
R0 = SEQSTAT;
R0 <<= (32-6);
R0 >>= (32-6);
R2 = 0x20;
CC = R0 < R2;
IF !CC JUMP _error;
DBGA ( R0.L , 0xa );
R1 = 0x1234 (X);
R1 += 1;
R1 += 1;
R1 += 1;
R1 += 1;
RTX;
_error:
DBGA ( R0.L , EXCPT_PROTVIOL );
dbg_fail;
.endif