# FRV testcase for break # mach: all .include "testutils.inc" start .global tra tra: ; Can't test break anymore in the user environment because it is the ; debugger's breakpoint insn. Just pass this test for now. pass set_gr_spr tbr,gr7 and_gr_immed -4081,gr7 ; clear tbr.tt inc_gr_immed 0xff0,gr7 ; break handler set_bctrlr_0_0 gr7 set_spr_immed 128,lcr test_spr_bits 0x4,2,0x1,psr ; psr.s is set test_spr_bits 0x1,0,0x0,psr ; psr.et is clear set_spr_addr ok1,lr break ret: or_spr_immed 0x00000001,psr ; turn on psr.et and_spr_immed 0xfffffffb,psr ; turn off psr.s test_spr_bits 0x4,2,0x0,psr ; psr.s is clear test_spr_bits 0x1,0,0x1,psr ; psr.et is set set_spr_addr ok0,lr break ret1: test_spr_bits 0x4,2,0x0,psr ; psr.s is clear test_spr_bits 0x1,0,0x1,psr ; psr.et is set pass ; check interrupt for second break ok0: test_spr_addr ret1,bpcsr test_spr_bits 0x1000,12,0x0,bpsr ; bpsr.bs is clear test_spr_bits 0x0001,0,0x1,bpsr ; bpsr.et is set test_spr_bits 0x4,2,0x1,psr ; psr.s is set test_spr_bits 0x1,0,0x0,psr ; psr.et is clear rett 0 ; nop rett 1 ; check interrupt for first break ok1: test_spr_addr ret,bpcsr test_spr_bits 0x1000,12,0x1,bpsr ; bpsr.bs is set test_spr_bits 0x0001,0,0x0,bpsr ; bpsr.et is clear test_spr_bits 0x4,2,0x1,psr ; psr.s is set test_spr_bits 0x1,0,0x0,psr ; psr.et is clear rett 0 ; nop rett 1