Home | History | Annotate | Download | only in mips64
      1 %include "mips64/fcvtHeader.S" { "suffix":"_DOUBLE", "valreg":"f0" }
      2     /*
      3      * TODO: simplify this when the MIPS64R6 emulator
      4      * supports NAN2008=1.
      5      */
      6     dli     t0, INT_MIN_AS_DOUBLE
      7     dmtc1   t0, f1
      8     cmp.le.d f1, f1, f0
      9     bc1nez  f1, .L${opcode}_trunc
     10     cmp.eq.d f1, f0, f0
     11     li      t0, INT_MIN
     12     mfc1    t1, f1
     13     and     t0, t0, t1
     14     b       .L${opcode}_done
     15 %break
     16 .L${opcode}_trunc:
     17     trunc.w.d f0, f0
     18     mfc1    t0, f0
     19 .L${opcode}_done:
     20     /* Can't include fcvtFooter.S after break */
     21     GET_INST_OPCODE v0                  # extract opcode from rINST
     22     SET_VREG t0, a1
     23     GOTO_OPCODE v0                      # jump to next instruction
     24