• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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