Changeset View
Changeset View
Standalone View
Standalone View
llvm/lib/Target/AVR/AVRInstrInfo.td
Show First 20 Lines • Show All 254 Lines • ▼ Show 20 Lines | def LDDSTDPtrReg : Operand<i16> | ||||
let ParserMatchClass = PtrRegAsmOperand; | let ParserMatchClass = PtrRegAsmOperand; | ||||
} | } | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
// AVR predicates for subtarget features | // AVR predicates for subtarget features | ||||
//===----------------------------------------------------------------------===// | //===----------------------------------------------------------------------===// | ||||
def HasSRAM : Predicate<"Subtarget->hasSRAM()">, | def HasSRAM : Predicate<"Subtarget->hasSRAM()">, | ||||
AssemblerPredicate<"FeatureSRAM">; | AssemblerPredicate<(all_of FeatureSRAM)>; | ||||
def HasJMPCALL : Predicate<"Subtarget->hasJMPCALL()">, | def HasJMPCALL : Predicate<"Subtarget->hasJMPCALL()">, | ||||
AssemblerPredicate<"FeatureJMPCALL">; | AssemblerPredicate<(all_of FeatureJMPCALL)>; | ||||
def HasIJMPCALL : Predicate<"Subtarget->hasIJMPCALL()">, | def HasIJMPCALL : Predicate<"Subtarget->hasIJMPCALL()">, | ||||
AssemblerPredicate<"FeatureIJMPCALL">; | AssemblerPredicate<(all_of FeatureIJMPCALL)>; | ||||
def HasEIJMPCALL : Predicate<"Subtarget->hasEIJMPCALL()">, | def HasEIJMPCALL : Predicate<"Subtarget->hasEIJMPCALL()">, | ||||
AssemblerPredicate<"FeatureEIJMPCALL">; | AssemblerPredicate<(all_of FeatureEIJMPCALL)>; | ||||
def HasADDSUBIW : Predicate<"Subtarget->hasADDSUBIW()">, | def HasADDSUBIW : Predicate<"Subtarget->hasADDSUBIW()">, | ||||
AssemblerPredicate<"FeatureADDSUBIW">; | AssemblerPredicate<(all_of FeatureADDSUBIW)>; | ||||
def HasSmallStack : Predicate<"Subtarget->HasSmallStack()">, | def HasSmallStack : Predicate<"Subtarget->HasSmallStack()">, | ||||
AssemblerPredicate<"FeatureSmallStack">; | AssemblerPredicate<(all_of FeatureSmallStack)>; | ||||
def HasMOVW : Predicate<"Subtarget->hasMOVW()">, | def HasMOVW : Predicate<"Subtarget->hasMOVW()">, | ||||
AssemblerPredicate<"FeatureMOVW">; | AssemblerPredicate<(all_of FeatureMOVW)>; | ||||
def HasLPM : Predicate<"Subtarget->hasLPM()">, | def HasLPM : Predicate<"Subtarget->hasLPM()">, | ||||
AssemblerPredicate<"FeatureLPM">; | AssemblerPredicate<(all_of FeatureLPM)>; | ||||
def HasLPMX : Predicate<"Subtarget->hasLPMX()">, | def HasLPMX : Predicate<"Subtarget->hasLPMX()">, | ||||
AssemblerPredicate<"FeatureLPMX">; | AssemblerPredicate<(all_of FeatureLPMX)>; | ||||
def HasELPM : Predicate<"Subtarget->hasELPM()">, | def HasELPM : Predicate<"Subtarget->hasELPM()">, | ||||
AssemblerPredicate<"FeatureELPM">; | AssemblerPredicate<(all_of FeatureELPM)>; | ||||
def HasELPMX : Predicate<"Subtarget->hasELPMX()">, | def HasELPMX : Predicate<"Subtarget->hasELPMX()">, | ||||
AssemblerPredicate<"FeatureELPMX">; | AssemblerPredicate<(all_of FeatureELPMX)>; | ||||
def HasSPM : Predicate<"Subtarget->hasSPM()">, | def HasSPM : Predicate<"Subtarget->hasSPM()">, | ||||
AssemblerPredicate<"FeatureSPM">; | AssemblerPredicate<(all_of FeatureSPM)>; | ||||
def HasSPMX : Predicate<"Subtarget->hasSPMX()">, | def HasSPMX : Predicate<"Subtarget->hasSPMX()">, | ||||
AssemblerPredicate<"FeatureSPMX">; | AssemblerPredicate<(all_of FeatureSPMX)>; | ||||
def HasDES : Predicate<"Subtarget->hasDES()">, | def HasDES : Predicate<"Subtarget->hasDES()">, | ||||
AssemblerPredicate<"FeatureDES">; | AssemblerPredicate<(all_of FeatureDES)>; | ||||
def SupportsRMW : Predicate<"Subtarget->supportsRMW()">, | def SupportsRMW : Predicate<"Subtarget->supportsRMW()">, | ||||
AssemblerPredicate<"FeatureRMW">; | AssemblerPredicate<(all_of FeatureRMW)>; | ||||
def SupportsMultiplication : Predicate<"Subtarget->supportsMultiplication()">, | def SupportsMultiplication : Predicate<"Subtarget->supportsMultiplication()">, | ||||
AssemblerPredicate<"FeatureMultiplication">; | AssemblerPredicate<(all_of FeatureMultiplication)>; | ||||
def HasBREAK : Predicate<"Subtarget->hasBREAK()">, | def HasBREAK : Predicate<"Subtarget->hasBREAK()">, | ||||
AssemblerPredicate<"FeatureBREAK">; | AssemblerPredicate<(all_of FeatureBREAK)>; | ||||
def HasTinyEncoding : Predicate<"Subtarget->hasTinyEncoding()">, | def HasTinyEncoding : Predicate<"Subtarget->hasTinyEncoding()">, | ||||
AssemblerPredicate<"FeatureTinyEncoding">; | AssemblerPredicate<(all_of FeatureTinyEncoding)>; | ||||
// AVR specific condition code. These correspond to AVR_*_COND in | // AVR specific condition code. These correspond to AVR_*_COND in | ||||
// AVRInstrInfo.td. They must be kept in synch. | // AVRInstrInfo.td. They must be kept in synch. | ||||
def AVR_COND_EQ : PatLeaf<(i8 0)>; | def AVR_COND_EQ : PatLeaf<(i8 0)>; | ||||
def AVR_COND_NE : PatLeaf<(i8 1)>; | def AVR_COND_NE : PatLeaf<(i8 1)>; | ||||
def AVR_COND_GE : PatLeaf<(i8 2)>; | def AVR_COND_GE : PatLeaf<(i8 2)>; | ||||
def AVR_COND_LT : PatLeaf<(i8 3)>; | def AVR_COND_LT : PatLeaf<(i8 3)>; | ||||
▲ Show 20 Lines • Show All 1,791 Lines • Show Last 20 Lines |