1# frv testcase for commitgr $GRk 2# mach: frv 3 4 .include "testutils.inc" 5 6 start 7 8 .global commitgr 9commitgr: 10 and_spr_immed -4081,tbr ; clear tbr.tt 11 set_gr_spr tbr,gr17 12 inc_gr_immed 0x190,gr17 ; address of exception handler 13 set_bctrlr_0_0 gr17 14 set_spr_immed 128,lcr 15 set_psr_et 1 16 set_gr_immed 0,gr15 17 18 nldi @(sp,0),gr20 ; Activate gr20 with nesr.fr==0 19 nldfi @(sp,0),fr20 ; Activate fr20 with nesr.fr==1 20 nldi @(sp,0),gr52 ; Activate gr52 with nesr.fr==0 21 set_spr_immed 0x00000000,gner1 22 set_spr_immed 0x00000000,gner0 23 set_spr_addr bad,lr 24 commitgr gr20 ; should only clear ne flags 25 test_gr_immed 0,gr15 26 test_spr_immed 0x00000000,gner1 27 test_spr_immed 0x00000000,gner0 28 test_spr_immed 0x94800001,nesr0 29 test_spr_gr neear0,sp 30 test_spr_immed 0xd4800401,nesr1 31 test_spr_gr neear1,sp 32 test_spr_immed 0xb4800801,nesr2 33 test_spr_gr neear2,sp 34 35 or_spr_immed 0x00100000,gner1 36 or_spr_immed 0x00200000,gner1 37 or_spr_immed 0x00100000,gner0 38 set_spr_addr ok,lr 39 set_gr_addr com1,gr16 40com1: commitgr gr20 41 test_gr_immed 1,gr15 42 43 pass 44 45ok: test_spr_immed 0x1,esfr1 ; esr0 is active 46 test_spr_gr epcr0,gr16 47 test_spr_bits 0x0001,0,0x1,esr0 ; esr0 is valid 48 test_spr_bits 0x003e,1,0x14,esr0 ; esr0.ec is set 49 test_spr_bits 0x0800,11,0x0,esr0 ; esr0.eav is clear 50 test_spr_bits 0x01000,12,0x0,esr0 ; esr0.edv is clear 51 test_spr_immed 0x00200000,gner1 52 test_spr_immed 0x00100000,gner0 53 test_spr_immed 0,nesr0 54 test_spr_immed 0,neear0 55 test_spr_immed 0xd4800401,nesr1 56 test_spr_gr neear1,sp 57 test_spr_immed 0xb4800801,nesr2 58 test_spr_gr neear2,sp 59 inc_gr_immed 1,gr15 60 rett 0 61 62bad: fail 63