|
Serene Runtime 1.0.0
C runtime for the Serene programming language
|
srn_fiber_frame is the exact frame srn_fiber_swap (switch_x86_64.S) pushes and pops, and that srn_fiber_ctx_make (ctx_x86_64.c) fabricates for a fresh fiber. More...
#include <stack_x86_64.h>
Data Fields | |
| uint32_t | mxcsr |
| 0 stmxcsr/ldmxcsr (rsp) | |
| uint32_t | _pad0 |
| 4 | |
| uint16_t | fcw |
| 8 fnstcw/fldcw 8(rsp) | |
| uint16_t | _pad1 |
| 10 | |
| uint32_t | _pad2 |
| 12 rounds the FP control block to 16 bytes | |
| uintptr_t | r15 |
| 16 | |
| uintptr_t | r14 |
| 24 | |
| uintptr_t | r13 |
| 32 entry function | |
| uintptr_t | r12 |
| 40 entry argument | |
| uintptr_t | rbx |
| 48 | |
| uintptr_t | rbp |
| 56 | |
| uintptr_t | ret_addr |
| 64 resume address (= srn_fiber_trampoline) | |
srn_fiber_frame is the exact frame srn_fiber_swap (switch_x86_64.S) pushes and pops, and that srn_fiber_ctx_make (ctx_x86_64.c) fabricates for a fresh fiber.
Its field order and offsets ARE the contract with that assembly; the static asserts pin them so the C side and the assembly cannot drift apart. Only the matching x86-64 sources include this header.
Definition at line 33 of file stack_x86_64.h.
| uint32_t srn_fiber_frame::_pad0 |
4
Definition at line 35 of file stack_x86_64.h.
| uint16_t srn_fiber_frame::_pad1 |
10
Definition at line 37 of file stack_x86_64.h.
| uint32_t srn_fiber_frame::_pad2 |
12 rounds the FP control block to 16 bytes
Definition at line 38 of file stack_x86_64.h.
| uint16_t srn_fiber_frame::fcw |
8 fnstcw/fldcw 8(rsp)
Definition at line 36 of file stack_x86_64.h.
| uint32_t srn_fiber_frame::mxcsr |
0 stmxcsr/ldmxcsr (rsp)
Definition at line 34 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::r12 |
40 entry argument
Definition at line 42 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::r13 |
32 entry function
Definition at line 41 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::r14 |
24
Definition at line 40 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::r15 |
16
Definition at line 39 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::rbp |
56
Definition at line 44 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::rbx |
48
Definition at line 43 of file stack_x86_64.h.
| uintptr_t srn_fiber_frame::ret_addr |
64 resume address (= srn_fiber_trampoline)
Definition at line 45 of file stack_x86_64.h.