Differences From Artifact [7689390f4e]:
- File
src/invocation/invoke-x86_64.m
— part of check-in
[8417c40405]
at
2017-09-12 23:49:39
on branch trunk
— invoke-x86_64.m: Minor refactor
This makes it easier to add more complex types. (user: js, size: 6862) [annotate] [blame] [check-ins using]
To Artifact [8ed55a5c76]:
- File
src/invocation/invoke-x86_64.m
— part of check-in
[d6e5e6beb3]
at
2017-09-14 21:51:51
on branch trunk
— apple-call-x86_64.S: Add support for stret and jmp
Jumping is useful in case of forwarding, so that the return value does
not need to be put back into an OFInvocation and then from an
OFInvocation back into registers. (user: js, size: 6904) [annotate] [blame] [check-ins using]
︙ | ︙ | |||
30 31 32 33 34 35 36 | #define NUM_GPR_OUT 2 #define NUM_SSE_IN 8 #define NUM_X87_OUT 2 enum { RETURN_TYPE_NORMAL, RETURN_TYPE_STRUCT, | | > > | 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | #define NUM_GPR_OUT 2 #define NUM_SSE_IN 8 #define NUM_X87_OUT 2 enum { RETURN_TYPE_NORMAL, RETURN_TYPE_STRUCT, RETURN_TYPE_X87, RETURN_TYPE_JMP, RETURN_TYPE_JMP_STRET }; struct call_context { uint64_t gpr[NUM_GPR_IN + NUM_GPR_OUT]; __m128 sse[NUM_SSE_IN]; long double x87[NUM_X87_OUT]; uint8_t num_sse_used; |
︙ | ︙ |