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