1*4b169a6bSchristos# frv testcase for ftilg $FCCi_2,$GRi,$s12 2*4b169a6bSchristos# mach: all 3*4b169a6bSchristos 4*4b169a6bSchristos .include "testutils.inc" 5*4b169a6bSchristos 6*4b169a6bSchristos start 7*4b169a6bSchristos 8*4b169a6bSchristos .global ftilg 9*4b169a6bSchristosftilg: 10*4b169a6bSchristos and_spr_immed -4081,tbr ; clear tbr.tt 11*4b169a6bSchristos set_gr_spr tbr,gr7 12*4b169a6bSchristos inc_gr_immed 2112,gr7 ; address of exception handler 13*4b169a6bSchristos set_bctrlr_0_0 gr7 ; bctrlr 0,0 14*4b169a6bSchristos 15*4b169a6bSchristos set_spr_immed 128,lcr 16*4b169a6bSchristos set_gr_immed 0,gr7 17*4b169a6bSchristos 18*4b169a6bSchristos set_spr_addr bad,lr 19*4b169a6bSchristos set_fcc 0x0 0 20*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 21*4b169a6bSchristos 22*4b169a6bSchristos set_spr_addr bad,lr 23*4b169a6bSchristos set_fcc 0x1 0 24*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 25*4b169a6bSchristos 26*4b169a6bSchristos set_psr_et 1 27*4b169a6bSchristos set_spr_addr ok2,lr 28*4b169a6bSchristos set_fcc 0x2 0 29*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 30*4b169a6bSchristos fail 31*4b169a6bSchristosok2: 32*4b169a6bSchristos set_psr_et 1 33*4b169a6bSchristos set_spr_addr ok3,lr 34*4b169a6bSchristos set_fcc 0x3 0 35*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 36*4b169a6bSchristos fail 37*4b169a6bSchristosok3: 38*4b169a6bSchristos set_psr_et 1 39*4b169a6bSchristos set_spr_addr ok4,lr 40*4b169a6bSchristos set_fcc 0x4 0 41*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 42*4b169a6bSchristos fail 43*4b169a6bSchristosok4: 44*4b169a6bSchristos set_psr_et 1 45*4b169a6bSchristos set_spr_addr ok5,lr 46*4b169a6bSchristos set_fcc 0x5 0 47*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 48*4b169a6bSchristos fail 49*4b169a6bSchristosok5: 50*4b169a6bSchristos set_psr_et 1 51*4b169a6bSchristos set_spr_addr ok6,lr 52*4b169a6bSchristos set_fcc 0x6 0 53*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 54*4b169a6bSchristos fail 55*4b169a6bSchristosok6: 56*4b169a6bSchristos set_psr_et 1 57*4b169a6bSchristos set_spr_addr ok7,lr 58*4b169a6bSchristos set_fcc 0x7 0 59*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 60*4b169a6bSchristos fail 61*4b169a6bSchristosok7: 62*4b169a6bSchristos set_spr_addr bad,lr 63*4b169a6bSchristos set_fcc 0x8 0 64*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 65*4b169a6bSchristos 66*4b169a6bSchristos set_spr_addr bad,lr 67*4b169a6bSchristos set_fcc 0x9 0 68*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 69*4b169a6bSchristos 70*4b169a6bSchristos set_psr_et 1 71*4b169a6bSchristos set_spr_addr oka,lr 72*4b169a6bSchristos set_fcc 0xa 0 73*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 74*4b169a6bSchristos fail 75*4b169a6bSchristosoka: 76*4b169a6bSchristos set_psr_et 1 77*4b169a6bSchristos set_spr_addr okb,lr 78*4b169a6bSchristos set_fcc 0xb 0 79*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 80*4b169a6bSchristos fail 81*4b169a6bSchristosokb: 82*4b169a6bSchristos set_psr_et 1 83*4b169a6bSchristos set_spr_addr okc,lr 84*4b169a6bSchristos set_fcc 0xc 0 85*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 86*4b169a6bSchristos fail 87*4b169a6bSchristosokc: 88*4b169a6bSchristos set_psr_et 1 89*4b169a6bSchristos set_spr_addr okd,lr 90*4b169a6bSchristos set_fcc 0xd 0 91*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 92*4b169a6bSchristos fail 93*4b169a6bSchristosokd: 94*4b169a6bSchristos set_psr_et 1 95*4b169a6bSchristos set_spr_addr oke,lr 96*4b169a6bSchristos set_fcc 0xe 0 97*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 98*4b169a6bSchristos fail 99*4b169a6bSchristosoke: 100*4b169a6bSchristos set_psr_et 1 101*4b169a6bSchristos set_spr_addr okf,lr 102*4b169a6bSchristos set_fcc 0xf 0 103*4b169a6bSchristos ftilg fcc0,gr7,4 ; should branch to tbr + (128 + 4)*16 104*4b169a6bSchristos fail 105*4b169a6bSchristosokf: 106*4b169a6bSchristos pass 107*4b169a6bSchristosbad: 108*4b169a6bSchristos fail 109