|  | # m32r testcase for rte | 
|  | # mach(): m32r m32rx | 
|  |  | 
|  | .include "testutils.inc" | 
|  |  | 
|  | start | 
|  |  | 
|  | .global rte | 
|  | rte: | 
|  |  | 
|  | ; Test 1: bbpsw = 0, bpsw = 1, psw = 0 | 
|  |  | 
|  | ; bbsm = 0, bie = 0, bbcond = 0 | 
|  | mvi_h_gr r4, 0 | 
|  | mvtc r4, cr8 | 
|  |  | 
|  | ; bsm = 1, bie = 1, bcond = 1, sm = 0, ie = 0, cond = 0 | 
|  | mvi_h_gr r4, 0xc100 | 
|  | mvtc r4, cr0 | 
|  |  | 
|  | ; bbpc = 0 | 
|  | mvaddr_h_gr r4, 0 | 
|  | mvtc r4, bbpc | 
|  |  | 
|  | ; bpc = ret1 | 
|  | mvaddr_h_gr r4, ret1 | 
|  | mvtc r4, bpc | 
|  |  | 
|  | rte | 
|  | fail | 
|  |  | 
|  | ret1: | 
|  | ; test bbsm = 0, bbie = 0, bbcond = 0 | 
|  | mvfc r4, cr8 | 
|  | test_h_gr r4, 0 | 
|  |  | 
|  | ; test bsm = 0, bie = 0, bcond = 0, sm = 1, ie = 1, cond = 1 | 
|  | mvfc r4, cr0 | 
|  | test_h_gr r4, 0xc1 | 
|  |  | 
|  | ; test bbpc = 0 | 
|  | mvfc r4, bbpc | 
|  | test_h_gr r4, 0 | 
|  |  | 
|  | ; test bpc = 0 | 
|  | mvfc r4, bpc | 
|  | test_h_gr r4, 0 | 
|  |  | 
|  | ; Test 2: bbpsw = 1, bpsw = 0, psw = 1 | 
|  |  | 
|  | ; bbsm = 1, bie = 1, bbcond = 1 | 
|  | mvi_h_gr r4, 0xc1 | 
|  | mvtc r4, cr8 | 
|  |  | 
|  | ; bsm = 0, bie = 0, bcond = 0, sm = 1, ie = 1, cond = 1 | 
|  | mvi_h_gr r4, 0xc1 | 
|  | mvtc r4, cr0 | 
|  |  | 
|  | ; bbpc = 42 | 
|  | mvaddr_h_gr r4, 42 | 
|  | mvtc r4, bbpc | 
|  |  | 
|  | ; bpc = ret2 + 2 | 
|  | mvaddr_h_gr r4, ret2 + 2 | 
|  | mvtc r4, bpc | 
|  |  | 
|  | rte | 
|  | fail | 
|  |  | 
|  | ret2: | 
|  | ; test bbsm = 1, bbie = 1, bbcond = 1 | 
|  | mvfc r4, cr8 | 
|  | test_h_gr r4, 0xc1 | 
|  |  | 
|  | ; test bsm = 1, bie = 1, bcond = 1, sm = 0, ie = 0, cond = 0 | 
|  | mvfc r4, cr0 | 
|  | test_h_gr r4, 0xc100 | 
|  |  | 
|  | ; test bbpc = 42 | 
|  | mvfc r4, bbpc | 
|  | test_h_gr r4, 42 | 
|  |  | 
|  | ; test bpc = 42 | 
|  | mvfc r4, bpc | 
|  | test_h_gr r4, 42 | 
|  |  | 
|  | pass |