- File:
-
- 1 edited
-
src/libcfa/concurrency/invoke.c (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
src/libcfa/concurrency/invoke.c
r7b2c2c5f ree897e4b 91 91 struct FakeStack { 92 92 void *fixedRegisters[3]; // fixed registers ebx, edi, esi (popped on 1st uSwitch, values unimportant) 93 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls) 94 uint16_t fcw; // X97 FPU control word (preserved across function calls) 95 void *rturn; // where to go on return from uSwitch 93 void *rturn; // where to go on return from uSwitch 96 94 void *dummyReturn; // fake return compiler would have pushed on call to uInvoke 97 95 void *argument[3]; // for 16-byte ABI, 16-byte alignment starts here … … 110 108 struct FakeStack { 111 109 void *fixedRegisters[5]; // fixed registers rbx, r12, r13, r14, r15 112 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls)113 uint16_t fcw; // X97 FPU control word (preserved across function calls)114 void *rturn; // where to go on return from uSwitch110 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls) 111 uint16_t fcw; // X97 FPU control word (preserved across function calls) 112 void *rturn; // where to go on return from uSwitch 115 113 void *dummyReturn; // NULL return address to provide proper alignment 116 114 };
Note:
See TracChangeset
for help on using the changeset viewer.