diff options
Diffstat (limited to 'sim/testsuite/frv/interrupts/Ipipe-fr500.cgs')
-rw-r--r-- | sim/testsuite/frv/interrupts/Ipipe-fr500.cgs | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/sim/testsuite/frv/interrupts/Ipipe-fr500.cgs b/sim/testsuite/frv/interrupts/Ipipe-fr500.cgs new file mode 100644 index 00000000000..b4dd770a56c --- /dev/null +++ b/sim/testsuite/frv/interrupts/Ipipe-fr500.cgs @@ -0,0 +1,35 @@ +# frv testcase +# mach: fr500 + + .include "testutils.inc" + + start + + .global Ipipe +Ipipe: + ; Clear the packing bit of the insn at 'pack:'. We can't + ; simply use '.p' because the assembler will catch the error. + set_gr_mem pack,gr10 + and_gr_immed 0x7fffffff,gr10 + set_mem_gr gr10,pack + set_gr_addr pack,gr10 + flush_data_cache gr10 + + and_spr_immed -4081,tbr ; clear tbr.tt + set_gr_spr tbr,gr7 + inc_gr_immed 0x070,gr7 ; address of exception handler + set_bctrlr_0_0 gr7 + set_spr_immed 128,lcr + set_spr_addr ok0,lr + set_psr_et 1 + + add.p gr1,gr1,gr1 +pack: add gr2,gr2,gr2 +bad: add gr3,gr3,gr3 + fail +ok0: + test_spr_immed 1,esfr1 + test_spr_bits 0x3f,0,0xb,esr0 + test_spr_addr bad,epcr0 + + pass |