Handout
This commit is contained in:
20
arch/context.asm
Normal file
20
arch/context.asm
Normal file
@@ -0,0 +1,20 @@
|
||||
[SECTION .text]
|
||||
[GLOBAL context_switch]
|
||||
[GLOBAL context_launch]
|
||||
[GLOBAL fake_systemv_abi]
|
||||
|
||||
; context_switch saves the registers in the current context structure
|
||||
; and populates the registers from the the next context.
|
||||
align 16
|
||||
context_switch:
|
||||
|
||||
; context_launch populates the register set from the next context structure.
|
||||
; It does not save the current registers.
|
||||
align 16 ; When only one parameter is used for `align`, it will use NOP
|
||||
context_launch:
|
||||
|
||||
; fake_systemv_abi is used to populate the volatile argument registers used by the systemv abi (rdi, rsi, ...)
|
||||
; with values from the non-volatile registers saved within the thread context (r15, r14, ...)
|
||||
align 16
|
||||
fake_systemv_abi:
|
||||
|
||||
Reference in New Issue
Block a user