• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1    /*
2     * Generic one-operand compare-and-branch operation.  Provide a "condition"
3     * fragment that specifies the comparison to perform.
4     *
5     * for: if-eqz, if-nez, if-ltz, if-gez, if-gtz, if-lez
6     */
7    /* if-cmp vAA, +BBBB */
8    GET_OPA(a0)                            #  a0 <- AA
9    GET_VREG(a0, a0)                       #  a0 <- vAA
10    FETCH_S(rINST, 1)                      #  rINST <- branch offset, in code units
11    b${condition} a0, zero, MterpCommonTakenBranchNoFlags
12    li        t0, JIT_CHECK_OSR            # possible OSR re-entry?
13    beq       rPROFILE, t0, .L_check_not_taken_osr
14    FETCH_ADVANCE_INST(2)                  #  advance rPC, load rINST
15    GET_INST_OPCODE(t0)                    #  extract opcode from rINST
16    GOTO_OPCODE(t0)                        #  jump to next instruction
17