diff --git a/Userland/Libraries/LibELF/Arch/x86_64/plt_trampoline.S b/Userland/Libraries/LibELF/Arch/x86_64/plt_trampoline.S index 5d3c12b184..6af4407156 100644 --- a/Userland/Libraries/LibELF/Arch/x86_64/plt_trampoline.S +++ b/Userland/Libraries/LibELF/Arch/x86_64/plt_trampoline.S @@ -28,7 +28,12 @@ _plt_trampoline: # (object, relocation_index) shlq $3, %rsi leaq (%rsi, %rsi, 2), %rsi + pushq %rbp + movq %rsp, %rbp + andq $~15, %rsp call _fixup_plt_entry@PLT + movq %rbp, %rsp + popq %rbp movq %rax, 88(%rsp) # replace object argument with symbol address