[llvm-commits] [llvm] r132317 - in /llvm/trunk: include/llvm/Target/ lib/MC/ lib/Target/ARM/ lib/Target/Alpha/ lib/Target/Blackfin/ lib/Target/CellSPU/ lib/Target/MBlaze/ lib/Target/MSP430/ lib/Target/Mips/ lib/Target/PTX/ lib/Target/PowerPC/ lib/Target/PowerPC/InstPrinter/ lib/Target/Sparc/ lib/Target/SystemZ/ lib/Target/X86/ lib/Target/X86/InstPrinter/ lib/Target/XCore/ test/CodeGen/X86/ utils/TableGen/

Rafael Ávila de Espíndola rafael.espindola at gmail.com
Wed Jun 1 18:48:07 PDT 2011


On 11-06-01 8:44 PM, Jim Grosbach wrote:
> Rafael,
>
> This patch appears to assume that all backends format register names as "%<name>" in their assembly, or at least can parse registers named as such. That's very much not true. The AsmStreamer shouldn't be hard-coding this sort of target specific logic.
>
> $ cat t.s
> .cfi_def_cfa %r0, 1
>
> llvm-mc -triple armv7-apple-darwin10 t.s
> 	.section	__TEXT,__text,regular,pure_instructions
> Assertion failed: (Tok.is(AsmToken::Identifier)&&  "Token is not an Identifier"), function TryParseRegister, file /Users/grosbaj/sources/llvm-a64/lib/Target/ARM/AsmParser/ARMAsmParser.cpp, line 909.
> 0  llvm-mc           0x0000000100f1a275 PrintStackTrace(void*) + 53
> 1  llvm-mc           0x0000000100f1a83b SignalHandler(int) + 379
> 2  libSystem.B.dylib 0x00007fff81abb66a _sigtramp + 26
> 3  libSystem.B.dylib 0x00007fff5fbfe750 _sigtramp + 3725865216
> 4  llvm-mc           0x000000010004308b raise + 27
> 5  llvm-mc           0x000000010004314a abort + 26
> 6  llvm-mc           0x0000000100043124 __assert_rtn + 132
> 7  llvm-mc           0x0000000100353750 (anonymous namespace)::ARMAsmParser::TryParseRegister() + 160
> 8  llvm-mc           0x000000010033ca21 (anonymous namespace)::ARMAsmParser::ParseRegister(unsigned int&, llvm::SMLoc&, llvm::SMLoc&) + 33
> 9  llvm-mc           0x00000001008e1fb4 (anonymous namespace)::GenericAsmParser::ParseRegisterOrRegisterNumber(long long&, llvm::SMLoc) + 132
> 10 llvm-mc           0x00000001008e321b (anonymous namespace)::GenericAsmParser::ParseDirectiveCFIDefCfa(llvm::StringRef, llvm::SMLoc) + 91
> 11 llvm-mc           0x00000001008e31ac bool llvm::MCAsmParserExtension::HandleDirective<(anonymous namespace)::GenericAsmParser,&((anonymous namespace)::GenericAsmParser::ParseDirectiveCFIDefCfa(llvm::StringRef, llvm::SMLoc))>(llvm::MCAsmParserExtension*, llvm::StringRef, llvm::SMLoc) + 172
> 12 llvm-mc           0x00000001008d7c4c (anonymous namespace)::AsmParser::ParseStatement() + 10652
> 13 llvm-mc           0x00000001008d23cc (anonymous namespace)::AsmParser::Run(bool, bool) + 236
> 14 llvm-mc           0x000000010004ce0a AssembleInput(char const*) + 3786
> 15 llvm-mc           0x000000010004ac59 main + 313
> 16 llvm-mc           0x0000000100045994 start + 52
> 17 llvm-mc           0x0000000000000004 start + 4294682276
> Stack dump:
> 0.	Program arguments: /Users/grosbaj/sources/build-llvm-a64/Debug+Asserts/bin/llvm-mc -triple armv7-apple-darwin10 t.s
> Illegal instruction

I will fix it, sorry.

> -Jim
>

Cheers,
Rafael



More information about the llvm-commits mailing list