Index: src/IceTargetLoweringX8632.h |
diff --git a/src/IceTargetLoweringX8632.h b/src/IceTargetLoweringX8632.h |
index 0b46e1bde9201aa44f389b900e144beee94f9549..a8be56ff9ad129fa29913b6319a2f914053c5cb8 100644 |
--- a/src/IceTargetLoweringX8632.h |
+++ b/src/IceTargetLoweringX8632.h |
@@ -180,6 +180,8 @@ protected: |
void lowerStore(const InstStore *Inst) override; |
void lowerSwitch(const InstSwitch *Inst) override; |
void lowerUnreachable(const InstUnreachable *Inst) override; |
+ void lowerOther(const Inst *Instr) override; |
+ void lowerRMW(const InstX8632FakeRMW *RMW); |
void prelowerPhis() override; |
void lowerPhiAssignments(CfgNode *Node, |
const AssignList &Assignments) override; |
@@ -265,6 +267,9 @@ protected: |
void _add(Variable *Dest, Operand *Src0) { |
Context.insert(InstX8632Add::create(Func, Dest, Src0)); |
} |
+ void _add_rmw(Operand *DestSrc0, Operand *Src1) { |
+ Context.insert(InstX8632AddRMW::create(Func, DestSrc0, Src1)); |
+ } |
void _adjust_stack(int32_t Amount) { |
Context.insert(InstX8632AdjustStack::create( |
Func, Amount, getPhysicalRegister(RegX8632::Reg_esp))); |
@@ -561,6 +566,7 @@ protected: |
} |
bool optimizeScalarMul(Variable *Dest, Operand *Src0, int32_t Src1); |
+ void findRMW(); |
X86InstructionSet InstructionSet; |
bool IsEbpBasedFrame; |