Hi,
I have a problem with JIT code generation on mac. The LLVM-IR I have is fine, but the machine code generated crashes.
I see two instructions “add %al,(%eax)” (which are four 0 bytes, numerically) prior to function calls. As eax holds the pointer to the called function, this crashes with SIGBUS. These instructions don’t make sense in the context of the code, which is why I’m suspecting a code generation error. I’d appreciate any any suggestions regarding what could cause this behavior or where to look for clues.
Thanks,
Eran Weiss.
"Weiss, Eran" <Eran.Weiss@emc.com> writes:
I have a problem with JIT code generation on mac. The LLVM-IR I have
is fine, but the machine code generated crashes. I see two
instructions "add %al,(%eax)" (which are four 0 bytes, numerically)
prior to function calls. As eax holds the pointer to the called
function, this crashes with SIGBUS. These instructions don't make
sense in the context of the code, which is why I'm suspecting a code
generation error. I'd appreciate any any suggestions regarding what
could cause this behavior or where to look for clues.
The most effective way of dealing with this type of problems is to
create a complete, minimal test case and file a bug report. Once done
this, the usual outcome is that either the bug is quickly fixed or the
comments from others will help you on your understanding of the problem.
Can you reduce the test case and open a bug report (http://llvm.org/bugs/) ? Can you check if your code works using static compilation ?