Index: src/IceTargetLoweringX8664.h |
diff --git a/src/IceTargetLoweringX8664.h b/src/IceTargetLoweringX8664.h |
index 1cc5c878c0cde79927446e55520961fd04589893..0f8722b93ed5d2c1cb8cd96b464a028dc39c848b 100644 |
--- a/src/IceTargetLoweringX8664.h |
+++ b/src/IceTargetLoweringX8664.h |
@@ -45,10 +45,21 @@ public: |
} |
std::unique_ptr<::Ice::Assembler> createAssembler() const override { |
- return makeUnique<X8664::AssemblerX8664>(); |
+ const bool EmitAddrSizeOverridePrefix = !NeedSandboxing; |
+ return makeUnique<X8664::AssemblerX8664>(EmitAddrSizeOverridePrefix); |
} |
+ bool needSandboxing() const { return NeedSandboxing; } |
+ |
protected: |
+ void _add_sp(Operand *Adjustment); |
+ void _mov_sp(Operand *NewValue); |
+ void _push_rbp(); |
+ Traits::X86OperandMem *_sandbox_mem_reference(X86OperandMem *Mem); |
+ void _sub_sp(Operand *Adjustment); |
+ |
+ void initSandbox(); |
+ void lowerIndirectJump(Variable *JumpTarget); |
void lowerCall(const InstCall *Instr) override; |
void lowerArguments() override; |
void lowerRet(const InstRet *Inst) override; |