[LLVMdev] Strange ppc failure.
Richard Pennington
rich at pennware.com
Sat May 24 20:01:22 PDT 2014
As part of my testing for my ELLCC cross compiler tool project
(http://ellcc.org), I use clang/LLVM to compile itself for various targets
(arm, armeb, i386, mips, mipsel, ppc, and x86_64). Today, after a TOT
update the ppc cross build failed strangely. I started to get
assembly errors:
[~/ellcc/llvm/lib/Target/PowerPC] dev% ~/ellcc/bin/ppc-elf-as PPCInstrInfo.s
PPCInstrInfo.s: Assembler messages:
PPCInstrInfo.s:1795: Error: operand out of range (49 is not between 0
and 31)
PPCInstrInfo.s:17893: Error: operand out of range (73 is not between 0
and 31)
PPCInstrInfo.s:17953: Error: operand out of range (49 is not between 0
and 31)
Here is the assembly starting at 17980 (other cases are similar):
.LBB133_139:
lbz 3, 75(22)
lwz 0, 140(1)
add 18, 22, 73 <-- error line
rlwinm 0, 0, 20, 0, 31
andi. 3, 3, 1
mtcrf 16, 0
bc 4, 1, .LBB133_142
lwz 3, 164(1)
lwz 6, 236(1)
mr 4, 16
li 5, 374
bl __assert_fail
b .LBB133_142
.LBB133_141:
lwz 0, 140(1)
addi 18, 22, 73 <-- odd similarity
It looks (to me, brain hazy with a bad head code) that the add in the error
case might want to be an addi.
My previous TOT revision that worked for sure was 208501. My current
test version is 209581.
Any thoughts? Even suggestions about how to submit bug report (simple
test case) would be welcome.
-Rich
More information about the llvm-dev
mailing list