Lines Matching refs:Opcode
1 //===--- Opcodes.td - Opcode defitions for the constexpr VM -----*- C++ -*-===//
138 class Opcode {
149 class AluOpcode : Opcode {
154 class FloatOpcode : Opcode {
158 class IntegerOpcode : Opcode {
167 class JumpOpcode : Opcode {
180 def StartSpeculation : Opcode;
181 def EndSpeculation : Opcode;
182 def BCP : Opcode {
193 def Ret : Opcode {
201 def RetVoid : Opcode {
207 def RetValue : Opcode {
213 def NoRet : Opcode {}
216 def Call : Opcode {
220 def CallVirt : Opcode {
224 def CallBI : Opcode { let Args = [ArgCallExpr, ArgUint32]; }
226 def CallPtr : Opcode {
230 def CallVar : Opcode {
234 def OffsetOf : Opcode {
245 def Destroy : Opcode {
249 def InitScope : Opcode {
257 class ConstOpcode<Type Ty, ArgType ArgTy> : Opcode {
277 def ConstFloat : Opcode { let Args = [ArgFloat]; }
280 def Zero : Opcode {
285 def ZeroIntAP : Opcode {
289 def ZeroIntAPS : Opcode {
294 def Null : Opcode {
303 class OffsetOpcode : Opcode {
328 def GetMemberPtrBasePop : Opcode {
334 def FinishInitPop : Opcode;
335 def FinishInit : Opcode;
336 def FinishInitGlobal : Opcode;
338 def GetPtrDerivedPop : Opcode { let Args = [ArgUint32, ArgBool, ArgTypePtr]; }
341 def GetPtrVirtBasePop : Opcode {
346 def GetPtrThisBase : Opcode {
351 def GetPtrThisVirtBase : Opcode {
356 def This : Opcode;
359 def RVOPtr : Opcode;
362 def NarrowPtr : Opcode;
364 def ExpandPtr : Opcode;
369 def ArrayElemPop : Opcode {
375 def ArrayElem : Opcode {
381 def CopyArray : Opcode {
391 class AccessOpcode : Opcode {
397 class BitFieldOpcode : Opcode {
408 def EndLifetimePop : Opcode;
409 def EndLifetime : Opcode;
410 def StartLifetime : Opcode;
412 def CheckDecl : Opcode {
416 def CheckEnumValue : Opcode {
422 def CheckLiteralType : Opcode {
426 def CheckArraySize : Opcode { let Args = [ArgUint64]; }
438 def InitGlobalTempComp : Opcode {
464 def InitThisBitField : Opcode {
478 class LoadOpcode : Opcode {
488 class StoreOpcode : Opcode {
493 class StoreBitFieldOpcode : Opcode {
512 def InitElem : Opcode {
518 def InitElemPop : Opcode {
534 def SubPtr : Opcode {
540 def IncPtr : Opcode;
542 def DecPtr : Opcode;
547 def GetFnPtr : Opcode {
551 def GetIntPtr : Opcode {
568 def Mulc : Opcode {
575 def Divc : Opcode {
584 def Shl : Opcode {
589 def Shr : Opcode {
599 def Inv: Opcode;
602 class OverflowOpcode : Opcode {
622 def Neg: Opcode {
628 def Comp: Opcode {
633 def IsNonNull : Opcode {
650 def Cast: Opcode {
655 def CastFP : Opcode {
659 def CastFixedPoint : Opcode {
663 def CastAP : Opcode {
669 def CastAPS : Opcode {
676 def CastIntegralFloating : Opcode {
683 def CastFloatingIntegral : Opcode {
689 def CastFloatingIntegralAP : Opcode {
693 def CastFloatingIntegralAPS : Opcode {
697 def CastPointerIntegral : Opcode {
701 def CastPointerIntegralAP : Opcode {
704 def CastPointerIntegralAPS : Opcode {
707 def CastIntegralFixedPoint : Opcode {
712 def CastFloatingFixedPoint : Opcode {
715 def CastFixedPointFloating : Opcode {
718 def CastFixedPointIntegral : Opcode {
722 def ShiftFixedPoint : Opcode {
726 def PtrPtrCast : Opcode {
731 def DecayPtr : Opcode {
740 class EqualityOpcode : Opcode {
748 class ComparisonOpcode : Opcode {
767 def Pop : Opcode {
773 def Dup : Opcode {
778 def Flip : Opcode {
784 def Invalid : Opcode {}
785 def Unsupported : Opcode {}
786 def Error : Opcode {}
787 def SideEffect : Opcode {}
788 def InvalidCast : Opcode {
791 def CheckPseudoDtor : Opcode {}
793 def InvalidDeclRef : Opcode {
797 def SizelessVectorElementSize : Opcode;
798 def InvalidShuffleVectorIndex : Opcode {
802 def Assume : Opcode;
804 def ArrayDecay : Opcode;
806 def CheckNonNullArg : Opcode {
811 def Memcpy : Opcode;
813 def ToMemberPtr : Opcode;
814 def CastMemberPtrPtr : Opcode;
815 def GetMemberPtr : Opcode {
818 def GetMemberPtrBase : Opcode;
819 def GetMemberPtrDecl : Opcode;
824 def Dump : Opcode;
826 def Alloc : Opcode {
830 def AllocN : Opcode {
836 def AllocCN : Opcode {
842 def Free : Opcode {
846 def CheckNewTypeMismatch : Opcode {
850 def InvalidNewDeleteExpr : Opcode {
854 def CheckNewTypeMismatchArray : Opcode {
860 def IsConstantContext: Opcode;
861 def CheckAllocations : Opcode;
868 def BitCastPrim : Opcode {
874 def BitCast : Opcode;
876 def GetTypeid : Opcode { let Args = [ArgTypePtr, ArgTypePtr]; }
877 def GetTypeidPtr : Opcode { let Args = [ArgTypePtr]; }
878 def DiagTypeid : Opcode;
880 def CheckDestruction : Opcode;
882 def PushCC : Opcode { let Args = [ArgBool]; }
883 def PopCC : Opcode;