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