• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1%default {"wide":"", "r1":"s1", "r2":"s2", "default_val":"-1","cond":"le"}
2    /*
3     * Compare two floating-point values.  Puts 0, 1, or -1 into the
4     * destination register based on the results of the comparison.
5     */
6    /* op vAA, vBB, vCC */
7    FETCH w0, 1                         // w0<- CCBB
8    lsr     w4, wINST, #8               // w4<- AA
9    and     w2, w0, #255                // w2<- BB
10    lsr     w3, w0, #8                  // w3<- CC
11    GET_VREG$wide $r1, w2
12    GET_VREG$wide $r2, w3
13    mov     w0, #$default_val
14    fcmp $r1, $r2
15    csneg w0, w0, w0, $cond
16    csel w0, wzr, w0, eq
17    FETCH_ADVANCE_INST 2                // advance rPC, load rINST
18    GET_INST_OPCODE ip                  // extract opcode from rINST
19    SET_VREG w0, w4                     // vAA<- w0
20    GOTO_OPCODE ip                      // jump to next instruction
21