}
}
- // If this instruction has a delay slot and .set reorder is active,
- // emit a NOP after it.
- if (MCID.hasDelaySlot() && AssemblerOptions.back()->isReorder()) {
- Instructions.push_back(Inst);
- createNop(hasShortDelaySlot(Inst.getOpcode()), IDLoc, Instructions);
- return false;
- }
-
if (MCID.mayLoad() || MCID.mayStore()) {
// Check the offset of memory operand, if it is a symbol
// reference or immediate we may have to expand instructions.
}
}
- if (needsExpansion(Inst))
- return expandInstruction(Inst, IDLoc, Instructions);
- else
+ if (needsExpansion(Inst)) {
+ if (expandInstruction(Inst, IDLoc, Instructions))
+ return true;
+ } else
Instructions.push_back(Inst);
+ // If this instruction has a delay slot and .set reorder is active,
+ // emit a NOP after it.
+ if (MCID.hasDelaySlot() && AssemblerOptions.back()->isReorder())
+ createNop(hasShortDelaySlot(Inst.getOpcode()), IDLoc, Instructions);
+
return false;
}