• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1    /*
2     * Return a 32-bit value.
3     *
4     * for: return, return-object
5     */
6    /* op vAA */
7    .extern MterpThreadFenceForConstructor
8    bl      MterpThreadFenceForConstructor
9    ldr     w7, [xSELF, #THREAD_FLAGS_OFFSET]
10    mov     x0, xSELF
11    ands    w7, w7, #(THREAD_SUSPEND_REQUEST | THREAD_CHECKPOINT_REQUEST)
12    b.ne    .L${opcode}_check
13.L${opcode}_return:
14    lsr     w2, wINST, #8               // r2<- AA
15    GET_VREG w0, w2                     // r0<- vAA
16    b       MterpReturn
17.L${opcode}_check:
18    bl      MterpSuspendCheck           // (self)
19    b       .L${opcode}_return
20