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