Home | History | Annotate | Download | only in mips
      1     /*
      2      * Generic 64-bit floating-point "/2addr" binary operation.
      3      * Provide an "instr" line that specifies an instruction that
      4      * performs "fv0 = fa0 op fa1".
      5      * This could be an MIPS instruction or a function call.
      6      *
      7      * For: add-double/2addr, sub-double/2addr, mul-double/2addr,
      8      *      div-double/2addr, rem-double/2addr
      9      */
     10     /* binop/2addr vA, vB */
     11     GET_OPA4(rOBJ)                         #  rOBJ <- A+
     12     GET_OPB(a1)                            #  a1 <- B
     13     EAS2(a1, rFP, a1)                      #  a1 <- &fp[B]
     14     EAS2(t0, rFP, rOBJ)                    #  t0 <- &fp[A]
     15     LOAD64_F(fa0, fa0f, t0)
     16     LOAD64_F(fa1, fa1f, a1)
     17 
     18     FETCH_ADVANCE_INST(1)                  #  advance rPC, load rINST
     19     $instr
     20     GET_INST_OPCODE(t0)                    #  extract opcode from rINST
     21     SET_VREG64_F_GOTO(fv0, fv0f, rOBJ, t0)  #  vA/vA+1 <- fv0
     22