Index: src/IceTargetLoweringX8632.h |
diff --git a/src/IceTargetLoweringX8632.h b/src/IceTargetLoweringX8632.h |
index b9a9e2bf46d83ba3a0981bfa7ef146a7a7bb0ab8..83945166dcd792aa06118a2fc2ad85a2ee9500da 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(OperandX8632Mem *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; |