Serene Runtime 1.0.0
C runtime for the Serene programming language
Loading...
Searching...
No Matches
srn_fiber_frame Struct Reference

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)
 

Detailed Description

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.

Field Documentation

◆ _pad0

uint32_t srn_fiber_frame::_pad0

4

Definition at line 35 of file stack_x86_64.h.

◆ _pad1

uint16_t srn_fiber_frame::_pad1

10

Definition at line 37 of file stack_x86_64.h.

◆ _pad2

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.

◆ fcw

uint16_t srn_fiber_frame::fcw

8 fnstcw/fldcw 8(rsp)

Definition at line 36 of file stack_x86_64.h.

◆ mxcsr

uint32_t srn_fiber_frame::mxcsr

0 stmxcsr/ldmxcsr (rsp)

Definition at line 34 of file stack_x86_64.h.

◆ r12

uintptr_t srn_fiber_frame::r12

40 entry argument

Definition at line 42 of file stack_x86_64.h.

◆ r13

uintptr_t srn_fiber_frame::r13

32 entry function

Definition at line 41 of file stack_x86_64.h.

◆ r14

uintptr_t srn_fiber_frame::r14

24

Definition at line 40 of file stack_x86_64.h.

◆ r15

uintptr_t srn_fiber_frame::r15

16

Definition at line 39 of file stack_x86_64.h.

◆ rbp

uintptr_t srn_fiber_frame::rbp

56

Definition at line 44 of file stack_x86_64.h.

◆ rbx

uintptr_t srn_fiber_frame::rbx

48

Definition at line 43 of file stack_x86_64.h.

◆ ret_addr

uintptr_t srn_fiber_frame::ret_addr

64 resume address (= srn_fiber_trampoline)

Definition at line 45 of file stack_x86_64.h.


The documentation for this struct was generated from the following file: