Somehow, when
commit
c716bcca4822 ("{lib,arch,plat}: Redo syscall ctx's and `swapgs` logic")
introduced the auxiliary stack pointer control block it updated
fetching of current frame pointer into the auxiliary stack space for
ARM64 on both binary syscall entry and execenv entries but for x86 it
only did so for the binary syscall entry, completely forgeting about
doing the same for the execenv entry.
Fix this by updating the execenv entry to also properly fetch the
current frame pointer from the auxiliary stack pointer control
block.
Checkpatch-Ignore: COMMIT_LOG_LONG_LINE
Signed-off-by: Sergiu Moga <sergiu@unikraft.io>
Reviewed-by: Michalis Pappas <michalis@unikraft.io>
Approved-by: Michalis Pappas <michalis@unikraft.io>
GitHub-Closes: #1635
" */\n\t" \
"movq %rsp, %r11\n\t" \
"movq %gs:(" STRINGIFY(LCPU_AUXSP_OFFSET) "), %rsp\n\t"\
+ "subq $(" STRINGIFY(UKARCH_AUXSPCB_SIZE) "), %rsp\n\t"\
+ "movq " STRINGIFY(UKARCH_AUXSPCB_OFFSETOF_CURR_FP) \
+ "(%rsp), %rsp\n\t" \
"/* Auxiliary stack is already ECTX aligned */\n\t" \
"/* Make room for `struct UKARCH_EXECENV` */\n\t" \
"subq $(" STRINGIFY(UKARCH_EXECENV_SIZE - \