1 %verify "executed" 2 %include "mips/unflopWider.S" {"instr":"b f2l_doconv", "instr_f":"b f2l_doconv", "st_result":"STORE64(rRESULT0, rRESULT1, rOBJ)"} 3 %break 4 5 f2l_doconv: 6 #ifdef SOFT_FLOAT 7 li a1, 0x5f000000 8 move rBIX, a0 9 JAL(__gesf2) 10 11 move t0, v0 12 li rRESULT0, ~0 13 li rRESULT1, ~0x80000000 14 bgez t0, .L${opcode}_set_vreg 15 16 move a0, rBIX 17 li a1, 0xdf000000 18 JAL(__lesf2) 19 20 move t0, v0 21 li rRESULT0, 0 22 li rRESULT1, 0x80000000 23 blez t0, .L${opcode}_set_vreg 24 25 move a0, rBIX 26 move a1, rBIX 27 JAL(__nesf2) 28 29 move t0, v0 30 li rRESULT0, 0 31 li rRESULT1, 0 32 bnez t0, .L${opcode}_set_vreg 33 34 move a0, rBIX 35 JAL(__fixsfdi) 36 37 #else 38 l.s fa1, .LLONG_TO_max 39 c.ole.s fcc0, fa1, fa0 40 li rRESULT0, ~0 41 li rRESULT1, ~0x80000000 42 bc1t .L${opcode}_set_vreg 43 44 l.s fa1, .LLONG_TO_min 45 c.ole.s fcc0, fa0, fa1 46 li rRESULT0, 0 47 li rRESULT1, 0x80000000 48 bc1t .L${opcode}_set_vreg 49 50 mov.s fa1, fa0 51 c.un.s fcc0, fa0, fa1 52 li rRESULT0, 0 53 li rRESULT1, 0 54 bc1t .L${opcode}_set_vreg 55 56 JAL(__fixsfdi) 57 #endif 58 59 b .L${opcode}_set_vreg 60 61 .LLONG_TO_max: 62 .word 0x5f000000 63 64 .LLONG_TO_min: 65 .word 0xdf000000 66