llvm.org GIT mirror llvm / 48f2182
[Hexagon] Implement target feature +reserved-r19 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@326364 91177308-0d34-0410-b5e6-96231b3b80d8 Krzysztof Parzyszek 2 years ago
3 changed file(s) with 8 addition(s) and 0 deletion(s). Raw diff Collapse all Expand all
5454 "Supports mem_noshuf feature">;
5555 def FeatureDuplex : SubtargetFeature<"duplex", "EnableDuplex", "true",
5656 "Enable generation of duplex instruction">;
57 def FeatureReservedR19: SubtargetFeature<"reserved-r19", "ReservedR19",
58 "true", "Reserve register R19">;
5759
5860 //===----------------------------------------------------------------------===//
5961 // Hexagon Instruction Predicate Definitions.
170170 Reserved.set(Hexagon::C8);
171171 Reserved.set(Hexagon::USR_OVF);
172172
173 if (MF.getSubtarget().hasReservedR19())
174 Reserved.set(Hexagon::R19);
175
173176 for (int x = Reserved.find_first(); x >= 0; x = Reserved.find_next(x))
174177 markSuperRegs(Reserved, x);
175178
5151
5252 bool HasMemNoShuf = false;
5353 bool EnableDuplex = false;
54 bool ReservedR19 = false;
55
5456 public:
5557 Hexagon::ArchEnum HexagonArchVersion;
5658 Hexagon::ArchEnum HexagonHVXVersion = Hexagon::ArchEnum::V4;
151153 bool useHVX128BOps() const { return useHVXOps() && UseHVX128BOps; }
152154 bool useHVX64BOps() const { return useHVXOps() && UseHVX64BOps; }
153155 bool hasMemNoShuf() const { return HasMemNoShuf; }
156 bool hasReservedR19() const { return ReservedR19; }
154157 bool useLongCalls() const { return UseLongCalls; }
155158 bool usePredicatedCalls() const;
156159