Displaying 2 results from an estimated 2 matches for "d297d24".
Did you mean:
d21724
2010 Feb 03
0
[LLVMdev] jit X86 target compilation callback bug
...MSVC version too I think.
"and esp, -16" aligns the stack, and "sub esp, -16" makes room for 8
bytes + padding to keep the 16 byte alignment of
the stack.
This patch should fix the issue:
diff --git a/lib/Target/X86/X86JITInfo.cpp b/lib/Target/X86/X86JITInfo.cpp
index f363903..d297d24 100644
--- a/lib/Target/X86/X86JITInfo.cpp
+++ b/lib/Target/X86/X86JITInfo.cpp
@@ -297,6 +297,7 @@ extern "C" {
push edx
push ecx
and esp, -16
+ sub esp, 16
mov eax, dword ptr [ebp+4]
mov dword ptr [esp+4], eax
mov dword ptr [esp]...
2010 Feb 03
2
[LLVMdev] jit X86 target compilation callback bug
Hello again.
I still think that you are wrong. Realignement with and esp,-16 not
always changes stack poiner. If esp is already aligned to 16 byte
boundary, it will not change! Take a look at following example.
Assume esp has value 0x000001000 at start of X86CompilationCallback
function. Then execution of it will yield following esp values:
0x000000FFC - after push ebp
0x000000FFC - after mov