diff options
Diffstat (limited to 'InOsEmuPkg/Unix/Sec/X64/Gasket.S')
-rw-r--r-- | InOsEmuPkg/Unix/Sec/X64/Gasket.S | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/InOsEmuPkg/Unix/Sec/X64/Gasket.S b/InOsEmuPkg/Unix/Sec/X64/Gasket.S index 6b5e782413..7ea49bb422 100644 --- a/InOsEmuPkg/Unix/Sec/X64/Gasket.S +++ b/InOsEmuPkg/Unix/Sec/X64/Gasket.S @@ -132,6 +132,9 @@ ASM_PFX(GasketSecMalloc): movq %rsp, %rbp pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI + pushq %rdi + + movq %rcx, %rdi // Swizzle args call ASM_PFX(SecMalloc) @@ -140,12 +143,32 @@ ASM_PFX(GasketSecMalloc): popq %rbp ret +ASM_GLOBAL ASM_PFX(GasketSecValloc) +ASM_PFX(GasketSecValloc): + pushq %rbp // stack frame is for the debugger + movq %rsp, %rbp + + pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI + pushq %rdi + + movq %rcx, %rdi // Swizzle args + + call ASM_PFX(SecValloc) + + popq %rdi // restore state + popq %rsi + popq %rbp + ret + ASM_GLOBAL ASM_PFX(GasketSecFree) ASM_PFX(GasketSecFree): pushq %rbp // stack frame is for the debugger movq %rsp, %rbp pushq %rsi // %rsi & %rdi are volatile in Unix and callee-save in EFI ABI + pushq %rdi + + movq %rcx, %rdi // Swizzle args call ASM_PFX(SecFree) |