[llvm-dev] [libunwind][Mips] Problem using gas to assemble UnwindRegistersSave.S

Richard Pennington via llvm-dev llvm-dev at lists.llvm.org
Sun Sep 27 15:02:55 PDT 2015


The latest TOT of libunwind fails for me when I build 
UnwindRegistersSave.S for the Mips. My copy of clang uses a 2.25 
binutils Mips assembler.
This is the message I get:

  "/home/rich/ellcc/bin/mips-elf-as" -o 
/tmp/UnwindRegistersSave-a2c974.o -EL /tmp/UnwindRegistersSave-545450.s
src/UnwindRegistersSave.S: Assembler messages:
src/UnwindRegistersSave.S:99: Error: opcode not supported on this 
processor: mips1 (mips1) `teq $0,$0'

If I compile with -integrated-as it assembles as expected.

I was able to get it to work without the integrated assembler with this 
change:



#
# extern int unw_getcontext(unw_context_t* thread_state)
#
# Just trap for the time being.
DEFINE_LIBUNWIND_FUNCTION(unw_getcontext)
   .set mips32r2
   teq $0, $0

#elif defined(__ppc__)

telling the assembler to allow r2 instructions.

Should the integrated assembler be enabled by default for the Mips? It 
looks as if the stock clang does not use the integrated assembler yet.

-Rich


More information about the llvm-dev mailing list