| Index: src/IceTargetLoweringX86Base.h
|
| diff --git a/src/IceTargetLoweringX86Base.h b/src/IceTargetLoweringX86Base.h
|
| index cc3bd738633b07ccddf61398e786c77a7e30ad52..72e4f20fb42f5d29ef340d8a039b4a835a09c1d1 100644
|
| --- a/src/IceTargetLoweringX86Base.h
|
| +++ b/src/IceTargetLoweringX86Base.h
|
| @@ -197,9 +197,11 @@ protected:
|
| }
|
|
|
| void lowerAlloca(const InstAlloca *Inst) override;
|
| + void lowerArguments() override;
|
| void lowerArithmetic(const InstArithmetic *Inst) override;
|
| void lowerAssign(const InstAssign *Inst) override;
|
| void lowerBr(const InstBr *Inst) override;
|
| + void lowerCall(const InstCall *Inst) override;
|
| void lowerCast(const InstCast *Inst) override;
|
| void lowerExtractElement(const InstExtractElement *Inst) override;
|
| void lowerFcmp(const InstFcmp *Inst) override;
|
| @@ -209,6 +211,7 @@ protected:
|
| void lowerInsertElement(const InstInsertElement *Inst) override;
|
| void lowerLoad(const InstLoad *Inst) override;
|
| void lowerPhi(const InstPhi *Inst) override;
|
| + void lowerRet(const InstRet *Inst) override;
|
| void lowerSelect(const InstSelect *Inst) override;
|
| void lowerStore(const InstStore *Inst) override;
|
| void lowerSwitch(const InstSwitch *Inst) override;
|
| @@ -279,6 +282,13 @@ protected:
|
| void scalarizeArithmetic(InstArithmetic::OpKind K, Variable *Dest,
|
| Operand *Src0, Operand *Src1);
|
|
|
| + /// Emit just the call instruction (without argument or return variable
|
| + /// processing), sandboxing if needed.
|
| + virtual Inst *emitCallToTarget(Operand *CallTarget, Variable *ReturnReg) = 0;
|
| + /// Materialize the moves needed to return a value of the specified type.
|
| + virtual Variable *moveReturnValueToRegister(Operand *Value,
|
| + Type ReturnType) = 0;
|
| +
|
| /// Emit a fake use of esp to make sure esp stays alive for the entire
|
| /// function. Otherwise some esp adjustments get dead-code eliminated.
|
| void keepEspLiveAtExit() {
|
|
|