1 %verify "executed" 2 /* 3 * Signed 64-bit integer multiply. 4 * 5 * For JIT: op1 in a0/a1, op2 in a2/a3, return in v0/v1 6 * 7 * Consider WXxYZ (a1a0 x a3a2) with a long multiply: 8 * 9 * a1 a0 10 * x a3 a2 11 * ------------- 12 * a2a1 a2a0 13 * a3a0 14 * a3a1 (<= unused) 15 * --------------- 16 * v1 v0 17 * 18 */ 19 /* mul-long vAA, vBB, vCC */ 20 mul rRESULT1,rARG3,rARG0 # v1= a3a0 21 multu rARG2,rARG0 22 mfhi t1 23 mflo rRESULT0 # v0= a2a0 24 mul t0,rARG2,rARG1 # t0= a2a1 25 addu rRESULT1,rRESULT1,t1 # v1= a3a0 + hi(a2a0) 26 addu rRESULT1,rRESULT1,t0 # v1= a3a0 + hi(a2a0) + a2a1; 27 RETURN 28