Changeset deca0f5 for libcfa/src/concurrency/invoke.c
- Timestamp:
- Apr 18, 2019, 2:59:09 PM (5 years ago)
- Branches:
- ADT, arm-eh, ast-experimental, cleanup-dtors, enum, forall-pointer-decay, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr, pthread-emulation, qualifiedEnum
- Children:
- 8c3a0336
- Parents:
- 3c06bba
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libcfa/src/concurrency/invoke.c
r3c06bba rdeca0f5 124 124 struct FakeStack { 125 125 void *fixedRegisters[3]; // fixed registers ebx, edi, esi (popped on 1st uSwitch, values unimportant) 126 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls)127 uint16_t fcw; // X97 FPU control word (preserved across function calls)128 126 void *rturn; // where to go on return from uSwitch 129 127 void *dummyReturn; // fake return compiler would have pushed on call to uInvoke … … 140 138 fs->argument[0] = this; // argument to invoke 141 139 fs->rturn = invoke; 142 fs->mxcr = 0x1F80; //Vol. 2A 3-520143 fs->fcw = 0x037F; //Vol. 1 8-7144 140 145 141 #elif defined( __x86_64 ) … … 147 143 struct FakeStack { 148 144 void *fixedRegisters[5]; // fixed registers rbx, r12, r13, r14, r15 149 uint32_t mxcr; // SSE Status and Control bits (control bits are preserved across function calls)150 uint16_t fcw; // X97 FPU control word (preserved across function calls)151 145 void *rturn; // where to go on return from uSwitch 152 146 void *dummyReturn; // NULL return address to provide proper alignment … … 162 156 fs->fixedRegisters[0] = this; 163 157 fs->fixedRegisters[1] = invoke; 164 fs->mxcr = 0x1F80; //Vol. 2A 3-520165 fs->fcw = 0x037F; //Vol. 1 8-7166 158 167 159 #elif defined( __ARM_ARCH )
Note: See TracChangeset
for help on using the changeset viewer.