陳韋任
2011-Mar-24 05:57 UTC
[LLVMdev] llvm-gcc handles inline assembly incorrectly on PowerPC
Hi, folks
I don't know if this is a bug or not? But the way how llvm-gcc on ppc
handles inline assembly is different from the one on x86.
For example, here is the example code:
-----------------------------------------
register int *a asm("r10");
int main() {
*a = 1;
return 0;
}
-----------------------------------------
llvm-gcc on x86 produces LLVM IR belows,
-----------------------------------------
define i32 @main() nounwind {
entry:
%0 = tail call i32* asm "", "={r10}"() nounwind ;
<i32*> [#uses=1]
store i32 1, i32* %0, align 4
ret i32 undef
}
-----------------------------------------
But on ppc, llvm-gcc misses "r" in "r10",
%0 = tail call i32* asm "", "={10}"() nounwind ;
<i32*> [#uses=1]
^^^^
missing "r"
Any idea? Thanks.
Regards,
chenwj
--
Wei-Ren Chen (陳韋任)
Parallel Processing Lab, Institute of Information Science,
Academia Sinica, Taiwan (R.O.C.)
Tel:886-2-2788-3799 #1667
