• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%verify "executed"
2    /*
3     * See comments in OP_MUL_LONG.S
4     */
5    /* mul-long/2addr vA, vB */
6    GET_OPA4(t0)                           #  t0 <- A+
7
8    EAS2(t0, rFP, t0)                      #  t0 <- &fp[A]
9    LOAD64(a0, a1, t0)                     #  vAA.low / high
10
11    GET_OPB(t1)                            #  t1 <- B
12    EAS2(t1, rFP, t1)                      #  t1 <- &fp[B]
13    LOAD64(a2, a3, t1)                     #  vBB.low / high
14
15    mul       v1, a3, a0                   #  v1= a3a0
16    multu     a2, a0
17    mfhi      t1
18    mflo      v0                           #  v0= a2a0
19    mul       t2, a2, a1                   #  t2= a2a1
20    addu      v1, v1, t1                   #  v1= a3a0 + hi(a2a0)
21    addu      v1, v1, t2                   #  v1= v1 + a2a1;
22
23    FETCH_ADVANCE_INST(1)                  #  advance rPC, load rINST
24    GET_INST_OPCODE(t1)                    #  extract opcode from rINST
25    # vAA <- v0 (low)
26    STORE64(v0, v1, t0)                    #  vAA+1 <- v1 (high)
27    GOTO_OPCODE(t1)                        #  jump to next instruction
28
29