diff options
| author | Tom Dohrmann <erbse.13@gmx.de> | 2023-05-09 14:06:30 +0800 |
|---|---|---|
| committer | Phoebe Wang <phoebe.wang@intel.com> | 2023-05-09 16:31:42 +0800 |
| commit | f6154364f65709df234f07ad1fe8799e68d84134 (patch) | |
| tree | 7324d255c0f7b5f850948c8326400e62c1144d71 /lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h | |
| parent | 74fd474eea53e85fc8f64422f565fd2bd50fd7e4 (diff) | |
fix stack probe lowering for x86_intrcc
The x86_intrcc calling convention will build two STACKALLOC_W_PROBING machine instructions if the function takes an error code. This is caused by an additional call to emitSPUpdate in llvm/lib/Target/X86/X86FrameLowering.cpp:1650. Previously only the first STACKALLOC_W_PROBING machine instruction was properly handled, the second one was simply ignored. This lead to miscompilations where the stack pointer wasn't properly updated (see https://github.com/rust-lang/rust/issues/109918). This patch fixes this by handling all STACKALLOC_W_PROBING machine instructions.
To be honest I don't quite understand why this didn't lead to more noticeable miscompilations previously.
This is my first time contributing to LLVM.
Reviewed By: pengfei
Differential Revision: https://reviews.llvm.org/D150033
Diffstat (limited to 'lldb/source/Plugins/ScriptInterpreter/Python/ScriptedProcessPythonInterface.h')
0 files changed, 0 insertions, 0 deletions
