Chromium Code Reviews| Index: src/IceTargetLoweringX86Base.h |
| diff --git a/src/IceTargetLoweringX86Base.h b/src/IceTargetLoweringX86Base.h |
| index ff9274f96a319042b178eb52ee8e62e70d99abd8..5a597b32e1b14b06a875e02a67686f23eeb2de8f 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, |
| + const Type ReturnType) = 0; |
|
Jim Stichnoth
2016/01/19 20:54:05
I find it a bit odd/unusual to declare a scalar pa
sehr
2016/01/19 21:47:35
Done.
|
| + |
| /// 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() { |