| Index: src/IceTargetLoweringMIPS32.h
|
| diff --git a/src/IceTargetLoweringMIPS32.h b/src/IceTargetLoweringMIPS32.h
|
| index 3366dcea677cec844f82fdebbc75e05d8250ee9f..e45a07fc6ca0351a853c5189e740499f3a365a5d 100644
|
| --- a/src/IceTargetLoweringMIPS32.h
|
| +++ b/src/IceTargetLoweringMIPS32.h
|
| @@ -447,6 +447,11 @@ public:
|
| static Type stackSlotType();
|
| Variable *copyToReg(Operand *Src, RegNumT RegNum = RegNumT());
|
|
|
| + // Iterates over the CFG and determines the maximum outgoing stack arguments
|
| + // bytes. This information is later used during addProlog() to pre-allocate
|
| + // the outargs area
|
| + void findMaxStackOutArgsSize();
|
| +
|
| void addProlog(CfgNode *Node) override;
|
| void addEpilog(CfgNode *Node) override;
|
|
|
| @@ -457,6 +462,9 @@ public:
|
| Operand *loOperand(Operand *Operand);
|
| Operand *hiOperand(Operand *Operand);
|
|
|
| + void finishArgumentLowering(Variable *Arg, Variable *FramePtr,
|
| + size_t BasicFrameOffset, size_t *InArgsSizeBytes);
|
| +
|
| Operand *legalizeUndef(Operand *From, RegNumT RegNum = RegNumT());
|
|
|
| protected:
|
| @@ -506,13 +514,18 @@ protected:
|
|
|
| bool UsesFramePointer = false;
|
| bool NeedsStackAlignment = false;
|
| + bool MaybeLeafFunc = true;
|
| + bool PrologEmitsFixedAllocas = false;
|
| + uint32_t MaxOutArgsSizeBytes = 0;
|
| static SmallBitVector TypeToRegisterSet[RCMIPS32_NUM];
|
| static SmallBitVector TypeToRegisterSetUnfiltered[RCMIPS32_NUM];
|
| static SmallBitVector RegisterAliases[RegMIPS32::Reg_NUM];
|
| SmallBitVector RegsUsed;
|
| VarList PhysicalRegisters[IceType_NUM];
|
| + VarList PreservedGPRs;
|
| static constexpr uint32_t CHAR_BITS = 8;
|
| static constexpr uint32_t INT32_BITS = 32;
|
| + size_t SpillAreaSizeBytes = 0;
|
|
|
| private:
|
| ENABLE_MAKE_UNIQUE;
|
|
|