// 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