[llvm-commits] [llvm] r96110 - /llvm/trunk/lib/Target/X86/X86MCCodeEmitter.cpp
Chris Lattner
sabre at nondot.org
Sat Feb 13 11:16:53 PST 2010
Author: lattner
Date: Sat Feb 13 13:16:53 2010
New Revision: 96110
URL: http://llvm.org/viewvc/llvm-project?rev=96110&view=rev
Log:
teach the encoder to handle pseudo instructions like FP_REG_KILL,
encoding them into nothing.
Modified:
llvm/trunk/lib/Target/X86/X86MCCodeEmitter.cpp
Modified: llvm/trunk/lib/Target/X86/X86MCCodeEmitter.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86MCCodeEmitter.cpp?rev=96110&r1=96109&r2=96110&view=diff
==============================================================================
--- llvm/trunk/lib/Target/X86/X86MCCodeEmitter.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86MCCodeEmitter.cpp Sat Feb 13 13:16:53 2010
@@ -303,9 +303,9 @@
/// 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 @@
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;
More information about the llvm-commits
mailing list