From: Chris Lattner Date: Sat, 13 Feb 2010 19:16:53 +0000 (+0000) Subject: teach the encoder to handle pseudo instructions like FP_REG_KILL, X-Git-Url: http://plrg.eecs.uci.edu/git/?a=commitdiff_plain;h=1cea10a66339a412ce02db3d2c4d57a4681571c0;p=oota-llvm.git teach the encoder to handle pseudo instructions like FP_REG_KILL, encoding them into nothing. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@96110 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/Target/X86/X86MCCodeEmitter.cpp b/lib/Target/X86/X86MCCodeEmitter.cpp index 4ac51fc981d..d0ec0de6913 100644 --- a/lib/Target/X86/X86MCCodeEmitter.cpp +++ b/lib/Target/X86/X86MCCodeEmitter.cpp @@ -303,9 +303,9 @@ void X86MCCodeEmitter::EmitMemModRMByte(const MCInst &MI, unsigned Op, /// size, and 3) use of X86-64 extended registers. static unsigned DetermineREXPrefix(const MCInst &MI, unsigned TSFlags, const TargetInstrDesc &Desc) { - // Pseudo instructions shouldn't get here. - assert((TSFlags & X86II::FormMask) != X86II::Pseudo && - "Can't encode pseudo instrs"); + // Pseudo instructions never have a rex byte. + if ((TSFlags & X86II::FormMask) == X86II::Pseudo) + return 0; unsigned REX = 0; if (TSFlags & X86II::REX_W) @@ -506,6 +506,7 @@ EncodeInstruction(const MCInst &MI, raw_ostream &OS, assert(0 && "FIXME: Remove this form when the JIT moves to MCCodeEmitter!"); default: errs() << "FORM: " << (TSFlags & X86II::FormMask) << "\n"; assert(0 && "Unknown FormMask value in X86MCCodeEmitter!"); + case X86II::Pseudo: return; // Pseudo instructions encode to nothing. case X86II::RawFrm: EmitByte(BaseOpcode, CurByte, OS); break;