%def op_return_wide(): | |
/* | |
* Return a 64-bit value. | |
*/ | |
/* return-wide vAA */ | |
/* op vAA */ | |
.extern MterpThreadFenceForConstructor | |
.extern MterpSuspendCheck | |
jal MterpThreadFenceForConstructor | |
lw ra, THREAD_FLAGS_OFFSET(rSELF) | |
move a0, rSELF | |
and ra, ra, THREAD_SUSPEND_OR_CHECKPOINT_REQUEST | |
beqzc ra, 1f | |
jal MterpSuspendCheck # (self) | |
1: | |
srl a2, rINST, 8 # a2 <- AA | |
GET_VREG_WIDE a0, a2 # a0 <- vAA | |
b MterpReturn |