summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h')
-rw-r--r--llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
index df3fb0a1efb..37f90bc46ac 100644
--- a/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
+++ b/llvm/lib/Target/Hexagon/MCTargetDesc/HexagonShuffler.h
@@ -16,6 +16,7 @@
#define LLVM_LIB_TARGET_HEXAGON_MCTARGETDESC_HEXAGONSHUFFLER_H
#include "Hexagon.h"
+#include "MCTargetDesc/HexagonMCInstrInfo.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
@@ -152,6 +153,10 @@ protected:
MCSubtargetInfo const &STI;
SMLoc Loc;
bool ReportErrors;
+ std::vector<std::pair<SMLoc, std::string>> AppliedRestrictions;
+ void applySlotRestrictions();
+ void restrictSlot1AOK();
+ void restrictNoSlot1Store();
public:
using iterator = HexagonPacket::iterator;
@@ -168,6 +173,10 @@ public:
unsigned size() const { return (Packet.size()); }
+ bool isMemReorderDisabled() const {
+ return (BundleFlags & HexagonMCInstrInfo::memReorderDisabledMask) != 0;
+ }
+
iterator begin() { return (Packet.begin()); }
iterator end() { return (Packet.end()); }
OpenPOWER on IntegriCloud