mirror of
https://github.com/RPCS3/llvm.git
synced 2025-01-10 22:46:25 +00:00
Simplify the EncodeInstruction method now that a lot of the special case stuff
is handled with the MC encoder. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@118098 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
1ba6064437
commit
7292e0a656
@ -323,22 +323,15 @@ unsigned ARMMCCodeEmitter::getAddrMode6OffsetOpValue(const MCInst &MI,
|
||||
void ARMMCCodeEmitter::
|
||||
EncodeInstruction(const MCInst &MI, raw_ostream &OS,
|
||||
SmallVectorImpl<MCFixup> &Fixups) const {
|
||||
unsigned Opcode = MI.getOpcode();
|
||||
const TargetInstrDesc &Desc = TII.get(Opcode);
|
||||
uint64_t TSFlags = Desc.TSFlags;
|
||||
// Keep track of the current byte being emitted.
|
||||
unsigned CurByte = 0;
|
||||
|
||||
// Pseudo instructions don't get encoded.
|
||||
if ((TSFlags & ARMII::FormMask) == ARMII::Pseudo)
|
||||
const TargetInstrDesc &Desc = TII.get(MI.getOpcode());
|
||||
if ((Desc.TSFlags & ARMII::FormMask) == ARMII::Pseudo)
|
||||
return;
|
||||
|
||||
++MCNumEmitted; // Keep track of the # of mi's emitted
|
||||
unsigned Value = getBinaryCodeForInstr(MI);
|
||||
switch (Opcode) {
|
||||
default: break;
|
||||
}
|
||||
EmitConstant(Value, 4, CurByte, OS);
|
||||
// Keep track of the current byte being emitted.
|
||||
unsigned CurByte = 0;
|
||||
EmitConstant(getBinaryCodeForInstr(MI), 4, CurByte, OS);
|
||||
++MCNumEmitted; // Keep track of the # of mi's emitted.
|
||||
}
|
||||
|
||||
// FIXME: These #defines shouldn't be necessary. Instead, tblgen should
|
||||
|
Loading…
x
Reference in New Issue
Block a user