-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Closed
Closed
Copy link
Labels
backend:X86crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]llvm:mcMachine (object) codeMachine (object) code
Description
Reproducer:
echo '0xd5 0xc5 0x20 0xef' | llvm-mc --disassemble
.text
movq %llvm-mc: gen/llvm/lib/Target/X86/MCTargetDesc/X86GenAsmWriter.inc:62295: static const char *llvm::X86ATTInstPrinter::getRegisterName(MCRegister): Assertion `RegNo && RegNo < 388 && "Invalid register number!"' failed.
PLEASE submit a bug report to https://github.com/llvm/llvm-project/issues/ and include the crash backtrace.
Stack dump:
0. Program arguments: llvm-mc --disassemble
#0 0x0000556cf7ca85b8 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) /usr/local/google/home/rnk/llvm-project/build/../llvm/lib/Support/Unix/Signals.inc:723:13
#1 0x0000556cf7ca62ee llvm::sys::RunSignalHandlers() /usr/local/google/home/rnk/llvm-project/build/../llvm/lib/Support/Signals.cpp:106:18
#2 0x0000556cf7ca8c4d SignalHandler(int) /usr/local/google/home/rnk/llvm-project/build/../llvm/lib/Support/Unix/Signals.inc:413:1
#3 0x00007f29edc36510 (/lib/x86_64-linux-gnu/libc.so.6+0x3c510)
#4 0x00007f29edc840fc __pthread_kill_implementation ./nptl/pthread_kill.c:44:76
#5 0x00007f29edc36472 raise ./signal/../sysdeps/posix/raise.c:27:6
#6 0x00007f29edc204b2 abort ./stdlib/abort.c:81:7
#7 0x00007f29edc203d5 _nl_load_domain ./intl/loadmsgcat.c:1177:9
#8 0x00007f29edc2f3a2 (/lib/x86_64-linux-gnu/libc.so.6+0x353a2)
#9 0x0000556cf82ced88 /usr/local/google/home/rnk/llvm-project/build/gen/llvm/lib/Target/X86/MCTargetDesc/X86GenAsmWriter.inc:62295:3
#10 0x0000556cf82cf0bb llvm::X86ATTInstPrinter::printRegName(llvm::raw_ostream&, llvm::MCRegister) const /usr/local/google/home/rnk/llvm-project/build/../llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp:39:42
#11 0x0000556cf82cd3f1 llvm::X86ATTInstPrinter::printInstruction(llvm::MCInst const*, unsigned long, llvm::raw_ostream&) /usr/local/google/home/rnk/llvm-project/build/gen/llvm/lib/Target/X86/MCTargetDesc/X86GenAsmWriter.inc:61563:17
#12 0x0000556cf82cf1fc llvm::X86ATTInstPrinter::printInst(llvm::MCInst const*, unsigned long, llvm::StringRef, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) /usr/local/google/home/rnk/llvm-project/build/../llvm/lib/Target/X86/MCTargetDesc/X86ATTInstPrinter.cpp:0:5
#13 0x0000556cf7bcc005 llvm::MCTargetStreamer::prettyPrintAsm(llvm::MCInstPrinter&, unsigned long, llvm::MCInst const&, llvm::MCSubtargetInfo const&, llvm::raw_ostream&) /b/f/w/set_by_reclient/a/../llvm/lib/MC/MCStreamer.cpp:1073:1
This works if you replace 0xef with anything in the range 0xe7-0xef, but 0xe0-0xe7 disassembles as:
movq %gs, %r8 ; (up to %r15)
Metadata
Metadata
Assignees
Labels
backend:X86crashPrefer [crash-on-valid] or [crash-on-invalid]Prefer [crash-on-valid] or [crash-on-invalid]llvm:mcMachine (object) codeMachine (object) code