%include "mips/funopWider.S" {"instr":"b f2l_doconv", "st_result":"SET_VREG64(rRESULT0, rRESULT1, rOBJ)"} %break f2l_doconv: #ifdef MIPS32REVGE6 l.s fa1, .LLONG_TO_max cmp.ule.s ft2, fa1, fa0 li rRESULT0, ~0 li rRESULT1, ~0x80000000 bc1nez ft2, .L${opcode}_set_vreg l.s fa1, .LLONG_TO_min cmp.ule.s ft2, fa0, fa1 li rRESULT0, 0 li rRESULT1, 0x80000000 bc1nez ft2, .L${opcode}_set_vreg mov.s fa1, fa0 cmp.un.s ft2, fa0, fa1 li rRESULT0, 0 li rRESULT1, 0 bc1nez ft2, .L${opcode}_set_vreg #else l.s fa1, .LLONG_TO_max c.ole.s fcc0, fa1, fa0 li rRESULT0, ~0 li rRESULT1, ~0x80000000 bc1t .L${opcode}_set_vreg l.s fa1, .LLONG_TO_min c.ole.s fcc0, fa0, fa1 li rRESULT0, 0 li rRESULT1, 0x80000000 bc1t .L${opcode}_set_vreg mov.s fa1, fa0 c.un.s fcc0, fa0, fa1 li rRESULT0, 0 li rRESULT1, 0 bc1t .L${opcode}_set_vreg #endif JAL(__fixsfdi) b .L${opcode}_set_vreg .LLONG_TO_max: .word 0x5f000000 .LLONG_TO_min: .word 0xdf000000