blob: dbcb704eb684211924cb60514ac886fe30e02f37 [file] [log] [blame]
%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