Lines Matching refs:Cfg
67 void dump(const Cfg *, Ostream &Str) const override {
105 static OperandARM32Mem *create(Cfg *Func, Type Ty, Variable *Base,
113 static OperandARM32Mem *create(Cfg *Func, Type Ty, Variable *Base,
137 void emit(const Cfg *Func) const override;
139 void dump(const Cfg *Func, Ostream &Str) const override;
152 OperandARM32Mem(Cfg *Func, Type Ty, Variable *Base,
154 OperandARM32Mem(Cfg *Func, Type Ty, Variable *Base, Variable *Index,
174 static OperandARM32ShAmtImm *create(Cfg *Func, ConstantInteger32 *ShAmt) {
183 void emit(const Cfg *Func) const override;
185 void dump(const Cfg *Func, Ostream &Str) const override;
221 static OperandARM32FlexImm *create(Cfg *Func, Type Ty, uint32_t Imm,
224 void emit(const Cfg *Func) const override;
226 void dump(const Cfg *Func, Ostream &Str) const override;
241 OperandARM32FlexImm(Cfg *Func, Type Ty, uint32_t Imm, uint32_t RotateAmt);
254 static OperandARM32FlexFpImm *create(Cfg *Func, Type Ty,
260 void emit(const Cfg *Func) const override;
262 void dump(const Cfg *Func, Ostream &Str) const override;
273 OperandARM32FlexFpImm(Cfg *Func, Type Ty, uint32_t ModifiedImm);
285 static OperandARM32FlexFpZero *create(Cfg *Func, Type Ty) {
290 void emit(const Cfg *Func) const override;
292 void dump(const Cfg *Func, Ostream &Str) const override;
299 OperandARM32FlexFpZero(Cfg *Func, Type Ty);
310 static OperandARM32FlexReg *create(Cfg *Func, Type Ty, Variable *Reg,
316 void emit(const Cfg *Func) const override;
318 void dump(const Cfg *Func, Ostream &Str) const override;
330 OperandARM32FlexReg(Cfg *Func, Type Ty, Variable *Reg, ShiftKind ShiftOp,
349 static StackVariable *create(Cfg *Func, Type Ty, SizeT Index) {
362 StackVariable(const Cfg *Func, Type Ty, SizeT Index)
473 void startNextInst(const Cfg *Func) const;
485 const InstARM32 *Instr, const Cfg *Func,
488 const InstARM32 *Instr, const Cfg *Func);
491 void dump(const Cfg *Func) const override;
493 void emitIAS(const Cfg *Func) const override;
496 InstARM32(Cfg *Func, InstKindARM32 Kind, SizeT Maxsrcs, Variable *Dest)
505 void emitUsingTextFixup(const Cfg *Func) const;
515 InstARM32Pred(Cfg *Func, InstKindARM32 Kind, SizeT Maxsrcs, Variable *Dest,
527 const Cfg *Func, bool NeedsWidthSuffix);
529 const InstARM32Pred *Instr, const Cfg *Func);
531 const Cfg *Func);
533 const Cfg *Func, bool SetFlags);
535 const Cfg *Func);
537 const Cfg *Func);
557 static InstARM32UnaryopGPR *create(Cfg *Func, Variable *Dest, Operand *Src,
562 void emit(const Cfg *Func) const override {
567 void emitIAS(const Cfg *Func) const override;
568 void dump(const Cfg *Func) const override {
581 InstARM32UnaryopGPR(Cfg *Func, Variable *Dest, Operand *Src,
598 static InstARM32UnaryopFP *create(Cfg *Func, Variable *Dest, Variable *Src,
603 void emit(const Cfg *Func) const override {
608 void emitIAS(const Cfg *Func) const override;
609 void dump(const Cfg *Func) const override {
622 InstARM32UnaryopFP(Cfg *Func, Variable *Dest, Operand *Src,
641 create(Cfg *Func, Variable *Dest, Variable *Src, CondARM32::Cond Predicate) {
645 void emitIAS(const Cfg *Func) const override;
649 InstARM32UnaryopSignAwareFP(Cfg *Func, Variable *Dest, Operand *Src,
663 static InstARM32TwoAddrGPR *create(Cfg *Func, Variable *Dest, Operand *Src,
668 void emit(const Cfg *Func) const override {
673 void emitIAS(const Cfg *Func) const override;
674 void dump(const Cfg *Func) const override {
687 InstARM32TwoAddrGPR(Cfg *Func, Variable *Dest, Operand *Src,
705 static InstARM32LoadBase *create(Cfg *Func, Variable *Dest, Operand *Source,
710 void emit(const Cfg *Func) const override;
711 void emitIAS(const Cfg *Func) const override;
712 void dump(const Cfg *Func) const override {
725 InstARM32LoadBase(Cfg *Func, Variable *Dest, Operand *Source,
745 static InstARM32ThreeAddrGPR *create(Cfg *Func, Variable *Dest,
752 void emit(const Cfg *Func) const override {
757 void emitIAS(const Cfg *Func) const override;
758 void dump(const Cfg *Func) const override {
771 InstARM32ThreeAddrGPR(Cfg *Func, Variable *Dest, Variable *Src0,
796 static InstARM32ThreeAddrFP *create(Cfg *Func, Variable *Dest, Variable *Src0,
801 void emit(const Cfg *Func) const override {
807 void emitIAS(const Cfg *Func) const override;
808 void dump(const Cfg *Func) const override {
822 InstARM32ThreeAddrFP(Cfg *Func, Variable *Dest, Variable *Src0, Operand *Src1)
846 static InstARM32ThreeAddrSignAwareFP *create(Cfg *Func, Variable *Dest,
853 create(Cfg *Func, Variable *Dest, Variable *Src0, ConstantInteger32 *Src1) {
858 void emitIAS(const Cfg *Func) const override;
862 InstARM32ThreeAddrSignAwareFP(Cfg *Func, Variable *Dest, Variable *Src0,
876 static InstARM32FourAddrGPR *create(Cfg *Func, Variable *Dest, Variable *Src0,
882 void emit(const Cfg *Func) const override {
887 void emitIAS(const Cfg *Func) const override;
888 void dump(const Cfg *Func) const override {
901 InstARM32FourAddrGPR(Cfg *Func, Variable *Dest, Variable *Src0,
926 static InstARM32FourAddrFP *create(Cfg *Func, Variable *Dest, Variable *Src0,
931 void emit(const Cfg *Func) const override {
936 void emitIAS(const Cfg *Func) const override;
937 void dump(const Cfg *Func) const override {
951 InstARM32FourAddrFP(Cfg *Func, Variable *Dest, Variable *Src0, Variable *Src1)
970 static InstARM32CmpLike *create(Cfg *Func, Variable *Src0, Operand *Src1,
975 void emit(const Cfg *Func) const override {
980 void emitIAS(const Cfg *Func) const override;
981 void dump(const Cfg *Func) const override {
992 InstARM32CmpLike(Cfg *Func, Variable *Src0, Operand *Src1,
1079 static InstARM32Label *create(Cfg *Func, TargetARM32 *Target) {
1085 void emit(const Cfg *Func) const override;
1086 void emitIAS(const Cfg *Func) const override;
1087 void dump(const Cfg *Func) const override;
1091 InstARM32Label(Cfg *Func, TargetARM32 *Target);
1106 static InstARM32Br *create(Cfg *Func, CfgNode *TargetTrue,
1114 static InstARM32Br *create(Cfg *Func, CfgNode *Target) {
1123 static InstARM32Br *create(Cfg *Func, CfgNode *Target,
1133 static InstARM32Br *create(Cfg *Func, InstARM32Label *Label,
1157 void emit(const Cfg *Func) const override;
1158 void emitIAS(const Cfg *Func) const override;
1159 void dump(const Cfg *Func) const override;
1163 InstARM32Br(Cfg *Func, const CfgNode *TargetTrue, const CfgNode *TargetFalse,
1180 static InstARM32Call *create(Cfg *Func, Variable *Dest, Operand *CallTarget) {
1185 void emit(const Cfg *Func) const override;
1186 void emitIAS(const Cfg *Func) const override;
1187 void dump(const Cfg *Func) const override;
1191 InstARM32Call(Cfg *Func, Variable *Dest, Operand *CallTarget);
1201 void emit(const Cfg *Func) const override;
1202 void emitIAS(const Cfg *Func) const override;
1203 void dump(const Cfg *Func) const override;
1206 InstARM32RegisterStackOp(Cfg *Func, InstKindARM32 Kind, SizeT Maxsrcs,
1209 void emitUsingForm(const Cfg *Func, const EmitForm Form) const;
1210 void emitGPRsAsText(const Cfg *Func) const;
1211 void emitSRegsAsText(const Cfg *Func, const Variable *BaseReg,
1213 void emitSRegsOp(const Cfg *Func, const EmitForm, const Variable *BaseReg,
1220 virtual void emitSingleGPR(const Cfg *Func, const EmitForm Form,
1222 virtual void emitMultipleGPRs(const Cfg *Func, const EmitForm Form,
1224 virtual void emitSRegs(const Cfg *Func, const EmitForm Form,
1236 static InstARM32Pop *create(Cfg *Func, const VarList &Dests) {
1242 InstARM32Pop(Cfg *Func, const VarList &Dests);
1247 void emitSingleGPR(const Cfg *Func, const EmitForm Form,
1249 void emitMultipleGPRs(const Cfg *Func, const EmitForm Form,
1251 void emitSRegs(const Cfg *Func, const EmitForm Form, const Variable *BaseReg,
1264 static InstARM32Push *create(Cfg *Func, const VarList &Srcs) {
1270 InstARM32Push(Cfg *Func, const VarList &Srcs);
1275 void emitSingleGPR(const Cfg *Func, const EmitForm Form,
1277 void emitMultipleGPRs(const Cfg *Func, const EmitForm Form,
1279 void emitSRegs(const Cfg *Func, const EmitForm Form, const Variable *BaseReg,
1298 static InstARM32Ret *create(Cfg *Func, Variable *LR,
1302 void emit(const Cfg *Func) const override;
1303 void emitIAS(const Cfg *Func) const override;
1304 void dump(const Cfg *Func) const override;
1308 InstARM32Ret(Cfg *Func, Variable *LR, Variable *Source);
1320 static InstARM32Str *create(Cfg *Func, Variable *Value, OperandARM32Mem *Mem,
1325 void emit(const Cfg *Func) const override;
1326 void emitIAS(const Cfg *Func) const override;
1327 void dump(const Cfg *Func) const override;
1331 InstARM32Str(Cfg *Func, Variable *Value, OperandARM32Mem *Mem,
1345 static InstARM32Strex *create(Cfg
1351 void emit(const Cfg *Func) const override;
1352 void emitIAS(const Cfg *Func) const override;
1353 void dump(const Cfg *Func) const override;
1357 InstARM32Strex(Cfg *Func, Variable *Dest, Variable *Value,
1370 static InstARM32Vstr1 *create(Cfg *Func, Variable *Value,
1376 void emit(const Cfg *Func) const override;
1377 void emitIAS(const Cfg *Func) const override;
1378 void dump(const Cfg *Func) const override;
1382 InstARM32Vstr1(Cfg *Func, Variable *Value, OperandARM32Mem *Mem,
1396 static InstARM32Vdup *create(Cfg *Func, Variable *Dest, Variable *Src,
1401 void emit(const Cfg *Func) const override;
1402 void emitIAS(const Cfg *Func) const override;
1403 void dump(const Cfg *Func) const override;
1407 InstARM32Vdup(Cfg *Func, Variable *Dest, Variable *Src, IValueT Idx);
1418 static InstARM32Trap *create(Cfg *Func) {
1421 void emit(const Cfg *Func) const override;
1422 void emitIAS(const Cfg *Func) const override;
1423 void dump(const Cfg *Func) const override;
1427 explicit InstARM32Trap(Cfg *Func);
1438 static InstARM32Umull *create(Cfg *Func, Variable *DestLo, Variable *DestHi,
1444 void emit(const Cfg *Func) const override;
1445 void emitIAS(const Cfg *Func) const override;
1446 void dump(const Cfg *Func) const override;
1450 InstARM32Umull(Cfg *Func, Variable *DestLo, Variable *DestHi, Variable *Src0,
1479 static InstARM32Vcvt *create(Cfg *Func, Variable *Dest, Variable *Src,
1484 void emit(const Cfg *Func) const override;
1485 void emitIAS(const Cfg *Func) const override;
1486 void dump(const Cfg *Func) const override;
1490 InstARM32Vcvt(Cfg *Func, Variable *Dest, Variable *Src, VcvtVariant Variant,
1503 static InstARM32Mov *create(Cfg *Func, Variable *Dest, Operand *Src,
1514 void emit(const Cfg *Func) const override;
1515 void emitIAS(const Cfg *Func) const override;
1516 void dump(const Cfg *Func) const override;
1529 InstARM32Mov(Cfg *Func, Variable *Dest, Operand *Src,
1531 void emitMultiDestSingleSource(const Cfg *Func) const;
1532 void emitSingleDestMultiSource(const Cfg *Func) const;
1533 void emitSingleDestSingleSource(const Cfg *Func) const;
1546 static InstARM32Extract *create(Cfg *Func, Variable *Dest, Variable *Src0,
1551 void emit(const Cfg *Func) const override;
1552 void emitIAS(const Cfg *Func) const override;
1556 InstARM32Extract(Cfg *Func, Variable *Dest, Variable *Src0, uint32_t Index,
1575 static InstARM32Insert *create(Cfg *Func, Variable *Dest, Variable *Src0,
1580 void emit(const Cfg *Func) const override;
1581 void emitIAS(const Cfg *Func) const override;
1585 InstARM32Insert(Cfg *Func, Variable *Dest, Variable *Src0, uint32_t Index,
1602 static InstARM32Vcmp *create(Cfg *Func, Variable *Src0, Variable *Src1,
1607 static InstARM32Vcmp *create(Cfg *Func, Variable *Src0,
1613 void emit(const Cfg *Func) const override;
1614 void emitIAS(const Cfg *Func) const override;
1615 void dump(const Cfg *Func) const override;
1619 InstARM32Vcmp(Cfg *Func, Variable *Src0, Operand *Src1,
1630 static InstARM32Vmrs *create(Cfg *Func, CondARM32::Cond Predicate) {
1633 void emit(const Cfg *Func) const override;
1634 void emitIAS(const Cfg *Func) const override;
1635 void dump(const Cfg *Func) const override;
1639 InstARM32Vmrs(Cfg *Func, CondARM32::Cond Predicate);
1648 static InstARM32Vabs *create(Cfg *Func, Variable *Dest, Variable *Src,
1653 void emit(const Cfg *Func) const override;
1654 void emitIAS(const Cfg *Func) const override;
1655 void dump(const Cfg *Func) const override;
1659 InstARM32Vabs(Cfg *Func, Variable *Dest, Variable *Src,
1669 static InstARM32Dmb *create(Cfg *Func) {
1672 void emit(const Cfg *Func) const override;
1673 void emitIAS(const Cfg *Func) const override;
1674 void dump(const Cfg *Func) const override;
1678 explicit InstARM32Dmb(Cfg *Func);
1687 static InstARM32Nop *create(Cfg *Func) {
1690 void emit(const Cfg *Func) const override;
1691 void emitIAS(const Cfg *Func) const override;
1692 void dump(const Cfg *Func) const override;
1696 explicit InstARM32Nop(Cfg *Func);
1703 template <> void InstARM32Ldr::emit(const Cfg *Func) const;
1704 template <> void InstARM32Movw::emit(const Cfg *Func) const;
1705 template <> void InstARM32Movt::emit(const Cfg *Func) const;
1706 template <> void InstARM32Vldr1d::emit(const Cfg *Func) const;
1707 template <> void InstARM32Vldr1q::emit(const Cfg *Func) const;