mirror of
https://github.com/corda/corda.git
synced 2025-01-07 13:38:47 +00:00
Merge branch 'master' of oss.readytalk.com:/var/local/git/avian
This commit is contained in:
commit
329ee6bbe4
@ -125,7 +125,7 @@ GLOBAL(vmJumpAndInvoke):
|
||||
movq %rcx,%rbx
|
||||
|
||||
// set return address
|
||||
movq vmInvoke_returnAddress@GOTPCREL(%rip),%r10
|
||||
movq GLOBAL(vmInvoke_returnAddress)@GOTPCREL(%rip),%r10
|
||||
movq %r10,(%r9)
|
||||
|
||||
// copy arguments into place
|
||||
@ -154,7 +154,7 @@ LOCAL(vmJumpAndInvoke_argumentTest):
|
||||
int3
|
||||
#endif // not AVIAN_CONTINUATIONS
|
||||
|
||||
#else // not __MINGW32__ ||__CYGWIN32__
|
||||
#else // not __MINGW32__ || __CYGWIN32__
|
||||
|
||||
#define CALLEE_SAVED_REGISTER_FOOTPRINT 48
|
||||
|
||||
@ -252,7 +252,7 @@ GLOBAL(vmJumpAndInvoke):
|
||||
movq %rdi,%rbx
|
||||
|
||||
// set return address
|
||||
movq vmInvoke_returnAddress@GOTPCREL(%rip),%r10
|
||||
movq GLOBAL(vmInvoke_returnAddress)@GOTPCREL(%rip),%r10
|
||||
movq %r10,(%rcx)
|
||||
|
||||
// copy arguments into place
|
||||
@ -400,8 +400,13 @@ GLOBAL(vmJumpAndInvoke):
|
||||
movl $vmInvoke_returnAddress,%esi
|
||||
#else
|
||||
call LOCAL(getPC)
|
||||
# if defined __APPLE__
|
||||
LOCAL(vmJumpAndInvoke_offset):
|
||||
leal vmInvoke_returnAddress-LOCAL(vmJumpAndInvoke_offset)(%esi),%esi
|
||||
# else
|
||||
addl $_GLOBAL_OFFSET_TABLE_,%esi
|
||||
movl vmInvoke_returnAddress@GOT(%esi),%esi
|
||||
# endif
|
||||
#endif
|
||||
movl %esi,(%ecx)
|
||||
|
||||
|
@ -1886,7 +1886,7 @@ makeCurrentContinuation(MyThread* t, void** targetIp, void** targetBase,
|
||||
*targetIp = ip;
|
||||
*targetBase = base;
|
||||
*targetStack = static_cast<void**>(stack)
|
||||
+ t->arch->frameReturnAddressSize();;
|
||||
+ t->arch->frameReturnAddressSize();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -52,7 +52,7 @@ LOCAL(vmInvoke_continuationTest):
|
||||
|
||||
// set the return address to vmInvoke_returnAddress
|
||||
movq CONTINUATION_RETURN_ADDRESS_OFFSET(%rcx),%rdi
|
||||
movq vmInvoke_returnAddress@GOTPCREL(%rip),%r10
|
||||
movq GLOBAL(vmInvoke_returnAddress)@GOTPCREL(%rip),%r10
|
||||
movq %r10,(%rsp,%rdi,1)
|
||||
|
||||
// save the current base pointer in the frame and update it
|
||||
@ -103,9 +103,11 @@ LOCAL(vmInvoke_exit):
|
||||
cmpl $0,%ecx
|
||||
je LOCAL(vmInvoke_exit)
|
||||
|
||||
// allocate a frame of size (continuation.length * BYTES_PER_WORD)
|
||||
// allocate a frame of size (continuation.length * BYTES_PER_WORD),
|
||||
// plus stack alignment padding
|
||||
movl CONTINUATION_LENGTH(%ecx),%esi
|
||||
shll $2,%esi
|
||||
leal 8(%esi),%esi
|
||||
subl %esi,%esp
|
||||
|
||||
// copy the continuation body into the frame
|
||||
@ -135,8 +137,13 @@ LOCAL(vmInvoke_continuationTest):
|
||||
movl $vmInvoke_returnAddress,%esi
|
||||
#else
|
||||
call LOCAL(getPC)
|
||||
# if defined __APPLE__
|
||||
LOCAL(vmInvoke_offset):
|
||||
leal vmInvoke_returnAddress-LOCAL(vmInvoke_offset)(%esi),%esi
|
||||
# else
|
||||
addl $_GLOBAL_OFFSET_TABLE_,%esi
|
||||
movl vmInvoke_returnAddress@GOT(%esi),%esi
|
||||
# endif
|
||||
#endif
|
||||
movl %esi,(%esp,%edi,1)
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user