# frv testcase for tls $ICCi_2,$GRi,$GRj # mach: all .include "testutils.inc" start .global tls tls: and_spr_immed -4081,tbr ; clear tbr.tt set_gr_spr tbr,gr7 inc_gr_immed 2112,gr7 ; address of exception handler set_bctrlr_0_0 gr7 ; bctrlr 0,0 set_spr_immed 128,lcr set_gr_immed 0,gr7 set_gr_immed 4,gr8 set_spr_addr bad,lr set_icc 0x0 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 set_psr_et 1 set_spr_addr ok1,lr set_icc 0x1 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok1: set_spr_addr bad,lr set_icc 0x2 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 set_psr_et 1 set_spr_addr ok3,lr set_icc 0x3 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok3: set_psr_et 1 set_spr_addr ok4,lr set_icc 0x4 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok4: set_psr_et 1 set_spr_addr ok5,lr set_icc 0x5 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok5: set_psr_et 1 set_spr_addr ok6,lr set_icc 0x6 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok6: set_psr_et 1 set_spr_addr ok7,lr set_icc 0x7 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok7: set_spr_addr bad,lr set_icc 0x8 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 set_psr_et 1 set_spr_addr ok9,lr set_icc 0x9 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail ok9: set_spr_addr bad,lr set_icc 0xa 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 set_psr_et 1 set_spr_addr okb,lr set_icc 0xb 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail okb: set_psr_et 1 set_spr_addr okc,lr set_icc 0xc 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail okc: set_psr_et 1 set_spr_addr okd,lr set_icc 0xd 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail okd: set_psr_et 1 set_spr_addr oke,lr set_icc 0xe 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail oke: set_psr_et 1 set_spr_addr okf,lr set_icc 0xf 0 tls icc0,gr7,gr8 ; should branch to tbr + (128 + 4)*16 fail okf: pass bad: fail