@@ -102,30 +102,30 @@ Lowerer::Lower()
102102 this->LowerRange(m_func->m_headInstr, m_func->m_tailInstr, defaultDoFastPath, loopFastPath);
103103
104104#if DBG
105- // TODO: (leish)(swb) implement for arm
105+ // TODO: (leish)(swb) implement for arm
106106#if defined(_M_IX86) || defined(_M_AMD64)
107- if (CONFIG_FLAG(ForceSoftwareWriteBarrier) && CONFIG_FLAG(RecyclerVerifyMark))
108- {
109- // find out all write barrier setting instr, call Recycler::WBSetBit for verification purpose
110- // should do this in LowererMD::GenerateWriteBarrier, however, can't insert call instruction there
111- FOREACH_INSTR_EDITING(instr, instrNext, m_func->m_headInstr)
112- if (instr->m_src1 && instr->m_src1->IsAddrOpnd())
113- {
114- IR::AddrOpnd* addrOpnd = instr->m_src1->AsAddrOpnd();
115- if (addrOpnd->GetAddrOpndKind() == IR::AddrOpndKindWriteBarrierCardTable)
116- {
117- auto& leaInstr = instr->m_prev->m_prev;
118- auto& shrInstr = instr->m_prev;
119- Assert(leaInstr->m_opcode == Js::OpCode::LEA);
120- Assert(shrInstr->m_opcode == Js::OpCode::SHR);
121- m_lowererMD.LoadHelperArgument(shrInstr, leaInstr->m_dst);
122- IR::Instr* instrCall = IR::Instr::New(Js::OpCode::Call, m_func);
123- shrInstr->InsertBefore(instrCall);
124- m_lowererMD.ChangeToHelperCall(instrCall, IR::HelperWriteBarrierSetVerifyBit);
125- }
126- }
127- NEXT_INSTR_EDITING
128- }
107+ if (CONFIG_FLAG(ForceSoftwareWriteBarrier) && CONFIG_FLAG(RecyclerVerifyMark))
108+ {
109+ // find out all write barrier setting instr, call Recycler::WBSetBit for verification purpose
110+ // should do this in LowererMD::GenerateWriteBarrier, however, can't insert call instruction there
111+ FOREACH_INSTR_EDITING(instr, instrNext, m_func->m_headInstr)
112+ if (instr->m_src1 && instr->m_src1->IsAddrOpnd())
113+ {
114+ IR::AddrOpnd* addrOpnd = instr->m_src1->AsAddrOpnd();
115+ if (addrOpnd->GetAddrOpndKind() == IR::AddrOpndKindWriteBarrierCardTable)
116+ {
117+ auto& leaInstr = instr->m_prev->m_prev;
118+ auto& shrInstr = instr->m_prev;
119+ Assert(leaInstr->m_opcode == Js::OpCode::LEA);
120+ Assert(shrInstr->m_opcode == Js::OpCode::SHR);
121+ m_lowererMD.LoadHelperArgument(shrInstr, leaInstr->m_dst);
122+ IR::Instr* instrCall = IR::Instr::New(Js::OpCode::Call, m_func);
123+ shrInstr->InsertBefore(instrCall);
124+ m_lowererMD.ChangeToHelperCall(instrCall, IR::HelperWriteBarrierSetVerifyBit);
125+ }
126+ }
127+ NEXT_INSTR_EDITING
128+ }
129129#endif
130130#endif
131131
@@ -14558,7 +14558,7 @@ IR::Instr *Lowerer::InsertMove(IR::Opnd *dst, IR::Opnd *src, IR::Instr *const in
1455814558 }
1455914559 else
1456014560 {
14561- LowererMD::ChangeToAssign (instr);
14561+ LowererMD::ChangeToAssignNoBarrierCheck (instr);
1456214562 }
1456314563
1456414564 return instr;
0 commit comments