blob: 67a103dac6964b68141f43c1c7708f31b522cf95 [file] [log] [blame]
%def op_return_wide():
/*
* Return a 64-bit value.
*/
/* return-wide vAA */
.extern MterpThreadFenceForConstructor
call SYMBOL(MterpThreadFenceForConstructor)
movl rSELF, %eax
testl $$(THREAD_SUSPEND_OR_CHECKPOINT_REQUEST), THREAD_FLAGS_OFFSET(%eax)
jz 1f
movl %eax, OUT_ARG0(%esp)
call SYMBOL(MterpSuspendCheck)
1:
GET_VREG %eax, rINST # eax <- v[AA+0]
GET_VREG_HIGH %ecx, rINST # ecx <- v[AA+1]
jmp MterpReturn