@@ -918,16 +918,23 @@ def slice;
918
918
def encoder;
919
919
def decoder;
920
920
921
- /// PointerLikeRegClass - Values that are designed to have pointer width are
922
- /// derived from this. TableGen treats the register class as having a symbolic
923
- /// type that it doesn't know, and resolves the actual regclass to use by using
924
- /// the TargetRegisterInfo::getPointerRegClass() hook at codegen time.
925
- ///
926
- /// This is deprecated in favor of RegClassByHwMode.
921
+ /// PointerLikeRegClass - Pseudoinstruction operands that are designed
922
+ /// to have pointer width are derived from this. This should only be
923
+ /// used by StandardPseudoInstruction instructions. No target specific
924
+ /// instruction should use this.
927
925
class PointerLikeRegClass<int Kind> {
928
926
int RegClassKind = Kind;
929
927
}
930
928
929
+ /// ptr_rc definition - Mark this operand as being a pointer value
930
+ /// whose register class needs to be defined by the target. Targets
931
+ /// should provide instruction definition overrides which substitute
932
+ /// the uses of this with the backend defined RegisterClass or
933
+ /// RegClassByHwMode to use for pointer virtual registers for a
934
+ /// particular opcode (typically by defining a subsitute instruction
935
+ /// with RemapPointerOperands).
936
+ def ptr_rc : PointerLikeRegClass<0>;
937
+
931
938
/// RegClassByHwMode - Operands that change the register class based
932
939
/// on the subtarget are derived from this. TableGen
933
940
/// treats the register class as having a symbolic kind that it
@@ -941,13 +948,6 @@ class RegClassByHwMode<list<HwMode> Modes,
941
948
list<RegisterClass> Objects = RegClasses;
942
949
}
943
950
944
- /// ptr_rc definition - Mark this operand as being a pointer value whose
945
- /// register class is resolved dynamically via a callback to TargetInstrInfo.
946
- /// FIXME: We should probably change this to a class which contain a list of
947
- /// flags. But currently we have but one flag.
948
- // Deprecated, use RegClassByHwMode instead.
949
- def ptr_rc : PointerLikeRegClass<0>;
950
-
951
951
/// unknown definition - Mark this operand as being of unknown type, causing
952
952
/// it to be resolved by inference in the context it is used.
953
953
class unknown_class;
0 commit comments