mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-25 04:02:41 +01:00
MC: Move MCAlignFragment::EmitNops value out of the constructor.
llvm-svn: 103665
This commit is contained in:
parent
cf11e2a0a5
commit
de7caed021
@ -253,17 +253,17 @@ class MCAlignFragment : public MCFragment {
|
||||
/// cannot be satisfied in this width then this fragment is ignored.
|
||||
unsigned MaxBytesToEmit;
|
||||
|
||||
/// EmitNops - true when aligning code and optimal nops to be used for
|
||||
/// filling.
|
||||
bool EmitNops;
|
||||
/// EmitNops - Flag to indicate that (optimal) NOPs should be emitted instead
|
||||
/// of using the provided value. The exact interpretation of this flag is
|
||||
/// target dependent.
|
||||
bool EmitNops : 1;
|
||||
|
||||
public:
|
||||
MCAlignFragment(unsigned _Alignment, int64_t _Value, unsigned _ValueSize,
|
||||
unsigned _MaxBytesToEmit, bool _EmitNops,
|
||||
MCSectionData *SD = 0)
|
||||
unsigned _MaxBytesToEmit, MCSectionData *SD = 0)
|
||||
: MCFragment(FT_Align, SD), Alignment(_Alignment),
|
||||
Value(_Value),ValueSize(_ValueSize),
|
||||
MaxBytesToEmit(_MaxBytesToEmit), EmitNops(_EmitNops) {}
|
||||
MaxBytesToEmit(_MaxBytesToEmit), EmitNops(false) {}
|
||||
|
||||
/// @name Accessors
|
||||
/// @{
|
||||
@ -276,7 +276,8 @@ public:
|
||||
|
||||
unsigned getMaxBytesToEmit() const { return MaxBytesToEmit; }
|
||||
|
||||
unsigned getEmitNops() const { return EmitNops; }
|
||||
bool hasEmitNops() const { return EmitNops; }
|
||||
void setEmitNops(bool Value) { EmitNops = Value; }
|
||||
|
||||
/// @}
|
||||
|
||||
|
@ -498,7 +498,7 @@ static void WriteFragmentData(const MCAssembler &Asm, const MCAsmLayout &Layout,
|
||||
// the Count bytes. Then if that did not fill any bytes or there are any
|
||||
// bytes left to fill use the the Value and ValueSize to fill the rest.
|
||||
// If we are aligning with nops, ask that target to emit the right data.
|
||||
if (AF.getEmitNops()) {
|
||||
if (AF.hasEmitNops()) {
|
||||
if (!Asm.getBackend().WriteNopData(Count, OW))
|
||||
report_fatal_error("unable to write nop sequence of " +
|
||||
Twine(Count) + " bytes");
|
||||
|
@ -323,8 +323,7 @@ void MCMachOStreamer::EmitZerofill(const MCSection *Section, MCSymbol *Symbol,
|
||||
|
||||
// Emit an align fragment if necessary.
|
||||
if (ByteAlignment != 1)
|
||||
new MCAlignFragment(ByteAlignment, 0, 0, ByteAlignment, /*EmitNops=*/false,
|
||||
&SectData);
|
||||
new MCAlignFragment(ByteAlignment, 0, 0, ByteAlignment, &SectData);
|
||||
|
||||
MCFragment *F = new MCFillFragment(0, 0, Size, &SectData);
|
||||
SD.setFragment(F);
|
||||
@ -365,8 +364,7 @@ void MCMachOStreamer::EmitValueToAlignment(unsigned ByteAlignment,
|
||||
if (MaxBytesToEmit == 0)
|
||||
MaxBytesToEmit = ByteAlignment;
|
||||
MCFragment *F = new MCAlignFragment(ByteAlignment, Value, ValueSize,
|
||||
MaxBytesToEmit, /*EmitNops=*/false,
|
||||
CurSectionData);
|
||||
MaxBytesToEmit, CurSectionData);
|
||||
F->setAtom(CurrentAtomMap.lookup(CurSectionData));
|
||||
|
||||
// Update the maximum alignment on the current section if necessary.
|
||||
@ -378,8 +376,9 @@ void MCMachOStreamer::EmitCodeAlignment(unsigned ByteAlignment,
|
||||
unsigned MaxBytesToEmit) {
|
||||
if (MaxBytesToEmit == 0)
|
||||
MaxBytesToEmit = ByteAlignment;
|
||||
MCFragment *F = new MCAlignFragment(ByteAlignment, 0, 1, MaxBytesToEmit,
|
||||
/*EmitNops=*/true, CurSectionData);
|
||||
MCAlignFragment *F = new MCAlignFragment(ByteAlignment, 0, 1, MaxBytesToEmit,
|
||||
CurSectionData);
|
||||
F->setEmitNops(true);
|
||||
F->setAtom(CurrentAtomMap.lookup(CurSectionData));
|
||||
|
||||
// Update the maximum alignment on the current section if necessary.
|
||||
|
Loading…
Reference in New Issue
Block a user