[LLVMbugs] Rd and Rm should be different in mul (for ARM target)

Arvind Ayyangar arvind.ayyangar at gmail.com
Tue Feb 26 03:29:39 PST 2008


Hi all,
      I compiled libz using the llvm toolchain. Below are the steps :

llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o example.o example.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o adler32.o adler32.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o compress.o compress.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o crc32.o crc32.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o gzio.o gzio.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o uncompr.o uncompr.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o deflate.o deflate.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o trees.o trees.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o zutil.o zutil.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o inflate.o inflate.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o infback.o infback.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o inftrees.o inftrees.c
llvm-gcc -emit-llvm -DNO_vsnprintf -DUSE_MMAP   -c -o inffast.o inffast.c
llvm-ld -o libz.so.1.2.3 adler32.o compress.o crc32.o gzio.o uncompr.o
deflate.o trees.o zutil.o inflate.o infback.o inftrees.o inffast.o
llc libz.so.1.2.3.bc -o llvmlibz.s -filtype=asm -march=arm


Compiling the assemble code generated using the arm-softfloat
toolchain gives the following assembler messages

gcc llvmlibz.s --shared -o libzllvm.so
llvmlibz.s: Assembler messages:
llvmlibz.s:46: Rd and Rm should be different in mul
llvmlibz.s:113: Rd and Rm should be different in mul
llvmlibz.s:117: Rd and Rm should be different in mul
llvmlibz.s:190: Rd and Rm should be different in mla
llvmlibz.s:202: Rd and Rm should be different in mul
llvmlibz.s:206: Rd and Rm should be different in mul
llvmlibz.s:261: Rd and Rm should be different in mul
llvmlibz.s:266: Rd and Rm should be different in mul
llvmlibz.s:4770: rdhi, rdlo and rm must all be different
llvmlibz.s:4834: Rd and Rm should be different in mla
llvmlibz.s:5130: Rd and Rm should be different in mul
llvmlibz.s:6103: Rd and Rm should be different in mla
llvmlibz.s:6817: Rd and Rm should be different in mla


I tried using the march=thumb, -soft-float and -mcpu options (thanks
to the LLVM IRC Channel) but they dint really help..



-- 
Arvind



More information about the llvm-bugs mailing list