1a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%verify "executed" 2a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%include "mips/unflopWide.S" {"instr":"b d2l_doconv", "st_result":"STORE64(rRESULT0, rRESULT1, rOBJ)"} 3a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham%break 4a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 5a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandhamd2l_doconv: 6a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham#ifdef SOFT_FLOAT 7a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_max 8a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64(rARG2, rARG3, t0) 9a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rBIX, rARG0 # save a0 10a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rTEMP, rARG1 # and a1 11a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham JAL(__gedf2) 12a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 13a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move t1, v0 14a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_ret_max 15a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64(rRESULT0, rRESULT1, t0) 16a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham bgez t1, .L${opcode}_set_vreg 17a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 18a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG0, rBIX 19a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG1, rTEMP 20a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_min 21a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64(rARG2, rARG3, t0) 22a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham JAL(__ledf2) 23a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 24a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move t1, v0 25a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_ret_min 26a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64(rRESULT0, rRESULT1, t0) 27a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham blez t1, .L${opcode}_set_vreg 28a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 29a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG0, rBIX 30a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG1, rTEMP 31a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG2, rBIX 32a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG3, rTEMP 33a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham JAL(__nedf2) 34a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 35a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move t0, v0 36a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham li rRESULT0, 0 37a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham li rRESULT1, 0 38a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham bnez t0, .L${opcode}_set_vreg 39a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 40a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG0, rBIX 41a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham move rARG1, rTEMP 42a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham JAL(__fixdfdi) 43a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 44a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham#else 45a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_max 46a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64_F(fa1, fa1f, t0) 47a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham c.ole.d fcc0, fa1, fa0 48a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_ret_max 49a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64(rRESULT0, rRESULT1, t0) 50a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham bc1t .L${opcode}_set_vreg 51a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 52a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_min 53a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64_F(fa1, fa1f, t0) 54a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham c.ole.d fcc0, fa0, fa1 55a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham la t0, .LDOUBLE_TO_LONG_ret_min 56a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham LOAD64(rRESULT0, rRESULT1, t0) 57a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham bc1t .L${opcode}_set_vreg 58a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 59a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham mov.d fa1, fa0 60a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham c.un.d fcc0, fa0, fa1 61a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham li rRESULT0, 0 62a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham li rRESULT1, 0 63a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham bc1t .L${opcode}_set_vreg 64a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham JAL(__fixdfdi) 65a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham#endif 66a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham b .L${opcode}_set_vreg 67a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 68a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham 69a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham.LDOUBLE_TO_LONG_max: 70a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham .dword 0x43e0000000000000 # maxlong, as a double (high word) 71a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham.LDOUBLE_TO_LONG_min: 72a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham .dword 0xc3e0000000000000 # minlong, as a double (high word) 73a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham.LDOUBLE_TO_LONG_ret_max: 74a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham .dword 0x7fffffffffffffff 75a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham.LDOUBLE_TO_LONG_ret_min: 76a8b91c52fd8a90b784835dfe1f8898035266c4ddRaghu Gandham .dword 0x8000000000000000 77