llvm-6502/include/llvm/MC
Toma Tabacu b349e0f1f1 [mips] [IAS] Restore STI.FeatureBits in .set pop.
Summary:
Only restoring AvailableFeatures is not enough and will lead to buggy behaviour.
For example, if we have a feature enabled and we ".set pop", the next time we try
to ".set" that feature nothing will happen because the "!(STI.getFeatureBits()[Feature])"
check will be false, because we didn't restore STI.FeatureBits.

In order to fix this, we need to make MipsAssemblerOptions remember the STI.FeatureBits
instead of the AvailableFeatures and then regenerate AvailableFeatures each time we ".set pop".
This is because, AFAIK, there is no way to convert from AvailableFeatures back to STI.FeatureBits,
but the reverse is possible by using ComputeAvailableFeatures(STI.FeatureBits).

I also moved the updating of AssemblerOptions inside the "if" statement in
setFeatureBits() and clearFeatureBits(), as there is no reason to update if
nothing changes.

Reviewers: dsanders, mkuper

Reviewed By: dsanders

Subscribers: llvm-commits

Differential Revision: http://reviews.llvm.org/D9156

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@239144 91177308-0d34-0410-b5e6-96231b3b80d8
2015-06-05 11:48:54 +00:00
..
MCParser Add missing #includes, found by modules build. 2015-05-11 22:31:40 +00:00
ConstantPools.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MachineLocation.h
MCAsmBackend.h [MC] Allow backends to decide relaxation for unresolved fixups. 2015-05-30 18:42:22 +00:00
MCAsmInfo.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCAsmInfoCOFF.h
MCAsmInfoDarwin.h
MCAsmInfoELF.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCAsmLayout.h Merge MCSymbol and MCSymbolData. 2015-05-29 20:31:23 +00:00
MCAssembler.h The fragment implies the section, don't store both. 2015-06-01 14:34:40 +00:00
MCCodeEmitter.h MC: clang-format. NFC. 2015-05-15 19:13:20 +00:00
MCCodeGenInfo.h MC: MCCodeGenInfo naming update. NFC. 2015-05-15 19:13:31 +00:00
MCContext.h Clarify when we can avoid creating names for temp symbols. 2015-06-02 22:52:13 +00:00
MCDirectives.h
MCDisassembler.h Remove unused MCRelocationInfo.h include from MCDisassembler.h. NFC 2015-05-19 18:18:49 +00:00
MCDwarf.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
MCELFObjectWriter.h Merge MCELF.h into MCSymbolELF.h. 2015-06-02 20:38:46 +00:00
MCELFStreamer.h Convert BindingExplicitlySet into a MCSymbolELF field. 2015-06-03 21:18:03 +00:00
MCExpr.h MC: Clean up MCExpr naming. NFC. 2015-05-30 01:25:56 +00:00
MCExternalSymbolizer.h
MCFixedLenDisassembler.h
MCFixup.h MC: Update MCFixup naming. NFC. 2015-05-15 19:13:05 +00:00
MCFixupKindInfo.h MC: Tidy up comments and clean up formatting a bit. NFC. 2015-05-02 00:44:14 +00:00
MCInst.h [MC] Allowing operands to be erased from MCInst. 2015-06-04 19:49:52 +00:00
MCInstBuilder.h MC: Modernize MCOperand API naming. NFC. 2015-05-13 18:37:00 +00:00
MCInstPrinter.h MC: Tidy up formatting a bit. NFC. 2015-06-01 23:55:02 +00:00
MCInstrAnalysis.h MC: Tidy up comments and clean up formatting a bit. NFC. 2015-05-02 00:44:14 +00:00
MCInstrDesc.h Add support for the convergent flag at the MC and MachineInstr levels. 2015-05-28 18:33:39 +00:00
MCInstrInfo.h MC: Tidy up comments and clean up formatting a bit. NFC. 2015-05-02 00:44:14 +00:00
MCInstrItineraries.h MC: Tidy up comments and clean up formatting a bit. NFC. 2015-05-02 00:44:14 +00:00
MCLabel.h MC: Tidy up formatting a bit. NFC. 2015-06-01 23:55:02 +00:00
MCLinkerOptimizationHint.h MC: Tidy up LOH naming a bit. NFC. 2015-06-01 23:55:06 +00:00
MCMachObjectWriter.h MC: Clean up the naming for MCMachObjectWriter. NFC. 2015-06-04 23:25:54 +00:00
MCMachOSymbolFlags.h
MCObjectFileInfo.h MC: Clean up naming in MCObjectFileInfo.h. 2015-06-04 23:35:03 +00:00
MCObjectStreamer.h Remove getOrCreateSymbolData. There is no MCSymbolData anymore. 2015-06-03 19:03:11 +00:00
MCObjectWriter.h MC: Clean up the naming for MCMachObjectWriter. NFC. 2015-06-04 23:25:54 +00:00
MCRegisterInfo.h
MCRelocationInfo.h
MCSchedule.h
MCSection.h Store a bit in MCSection saying if it was registered with MCAssembler. 2015-06-01 01:30:01 +00:00
MCSectionCOFF.h Use 'override/final' instead of 'virtual' for overridden methods 2015-04-11 02:11:45 +00:00
MCSectionELF.h Store whether a symbol is a comdat signature in MCSymbolELF. 2015-06-03 21:41:59 +00:00
MCSectionMachO.h Create symbols marking the start of a section earlier. 2015-03-10 22:00:25 +00:00
MCStreamer.h Create a MCSymbolELF. 2015-06-02 00:25:12 +00:00
MCSubtargetInfo.h [mips] [IAS] Restore STI.FeatureBits in .set pop. 2015-06-05 11:48:54 +00:00
MCSymbol.h Create a MCSymbolELF. 2015-06-02 00:25:12 +00:00
MCSymbolELF.h Bring back r239006 with a fix. 2015-06-04 05:59:23 +00:00
MCSymbolizer.h MC: Tidy up comments and clean up formatting a bit. NFC. 2015-05-02 00:44:14 +00:00
MCTargetAsmParser.h Remove empty non-virtual destructors or mark them =default when non-public 2015-04-11 15:32:26 +00:00
MCTargetOptions.h
MCTargetOptionsCommandFlags.h
MCValue.h MC: Tidy up comments and clean up formatting a bit. NFC. 2015-05-02 00:44:14 +00:00
MCWin64EH.h
MCWinCOFFObjectWriter.h Use raw_pwrite_stream in the object writer/streamer. 2015-04-14 22:14:34 +00:00
MCWinCOFFStreamer.h Create a MCSymbolELF. 2015-06-02 00:25:12 +00:00
MCWinEH.h Move alignment from MCSectionData to MCSection. 2015-05-21 19:20:38 +00:00
SectionKind.h
StringTableBuilder.h
SubtargetFeature.h Use std::bitset for SubtargetFeatures. 2015-05-26 10:47:10 +00:00
YAML.h