[llvm-commits] [llvm] r160002 - in /llvm/trunk: include/llvm/CodeGen/MachineFrameInfo.h lib/Target/X86/X86FrameLowering.cpp lib/Target/X86/X86RegisterInfo.cpp lib/Target/X86/X86RegisterInfo.h test/CodeGen/X86/alloca-align-rounding-32.ll test/Code
Anton Korobeynikov
anton at korobeynikov.info
Tue Jul 31 10:07:20 PDT 2012
> Yes, this change is definitely the problem. I used EBX as the base pointer
> because it appeared to work with all the calling conventions, but it can be
> changed in X86RegisterInfo.cpp. If there is callee-saved register that
> isn't used by any ABI, then that would be the ideal choice. Otherwise, I
> think the solution would be to probe the subtarget and ask for the base
> pointer register. If that sounds reasonable I'll start working on a patch.
gcc uses ecx here. However, the best solution is to ask register
scavenger for free register.
I think extreme case here is PIC + regparm(3) o x86-32.
--
With best regards, Anton Korobeynikov
Faculty of Mathematics and Mechanics, Saint Petersburg State University
More information about the llvm-commits
mailing list