1# frv testcase for dcef @(GRi,GRj),a 2# mach: fr400 fr550 3 4 .include "testutils.inc" 5 6 start 7 8 .global dcef 9dcef: 10 and_spr_immed 0x7fffffff,hsr0 ; data cache only: copy-back mode 11 set_gr_addr doit,gr10 12 set_gr_immed 0,gr11 13 set_gr_immed 1,gr12 14 set_gr_immed 2,gr13 15 set_gr_immed 3,gr14 16 17 set_spr_addr ok1,lr 18 bra doit 19ok1: test_gr_immed 1,gr11 20 21 set_mem_immed 0x9600b00d,gr10 ; change to add gr11,gr13,gr11 in cache 22 set_spr_addr ok2,lr 23 bra doit 24ok2: test_gr_immed 2,gr11 ; still only added 1 25 26 set_gr_addr doit1,gr10 27 set_mem_immed 0x9600b00d,gr10 ; change to add gr11,gr13,gr11 in cache 28 dcef @(gr10,gr0),1 ; flush data cache 29 set_spr_addr ok3,lr 30 bra doit1 31ok3: test_gr_immed 4,gr11 ; added 2 this time 32 33 set_gr_addr doit2,gr10 34 set_mem_immed 0x9600b00e,gr10 ; change to add gr11,gr14,gr11 in cache 35 dcef @(gr0,gr0),1 ; flush data cache 36 set_spr_addr ok4,lr 37 bra doit2 38ok4: test_gr_immed 7,gr11 ; added 3 this time 39 40 pass 41 42doit: add gr11,gr12,gr11 43 bralr 44 45doit1: add gr11,gr12,gr11 46 bralr 47 48doit2: add gr11,gr12,gr11 49 bralr 50 51