-
Notifications
You must be signed in to change notification settings - Fork 12.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
ARM JIT should support ARMCompilationCallback in thumb2 #6437
Comments
Based on the definition of LDMIA in the ARM architecture reference manual, ldmia is define as below. if W == Note that if both P and M is '1', the result is UNPREDICTABLE. In the inlined assembly below, both lr and pc are to be accessed. So it's not a valid assembly code.
|
Right -- my other mistake is that I was building in thumb1 instead of thumb2. I'll try thumb2 tomorrow but I don't really expect it to work any better than a build with thumb did. |
Indeed, in thumb2 mode (passing -mthumb -mcpu=cortex-a8) I get the same assembler error. |
I'm new to LLVM. At least in GCC, -mthumb can mean both T1 and T2; It depends on which cpu you select. -mthumb -mcpu=arm926ej-s: T1 |
patch, make two pops when thumb are defined. |
fixed in svn r124694 *** This bug has been marked as a duplicate of bug llvm/llvm-bugzilla-archive#9081 *** |
mentioned in issue llvm/llvm-bugzilla-archive#9081 |
…ntial [lldb] Test that a C++ class as a Swift existential is printed correctly
Extended Description
This inline-asm in ARMJITInfo.cpp's ARMCompilationCallback:
does not assemble as thumb2:
llvm[3]: Compiling ARMJITInfo.cpp for Release-Asserts build
/tmp/ccWGkQ6d.s: Assembler messages:
/tmp/ccWGkQ6d.s:28: Error: LR and PC should not both be in register list -- `ldmia sp!,{r0,r1,r2,r3,lr,pc}'
make[3]: *** [/home/nlewycky/llvm/lib/Target/ARM/Release-Asserts/ARMJITInfo.o] Error 1
with '-Os -mthumb' flags to gcc instead of -O2.
The text was updated successfully, but these errors were encountered: