equal
deleted
inserted
replaced
206 } |
206 } |
207 } else if (in->Opcode() == Op_LoadP && in->adr_type() == TypeRawPtr::BOTTOM) { |
207 } else if (in->Opcode() == Op_LoadP && in->adr_type() == TypeRawPtr::BOTTOM) { |
208 if (trace) { |
208 if (trace) { |
209 tty->print("Found raw LoadP (OSR argument?)"); |
209 tty->print("Found raw LoadP (OSR argument?)"); |
210 } |
210 } |
211 } else if (in->Opcode() == Op_ShenandoahLoadReferenceBarrier) { |
211 } else if (in->Opcode() == Op_ShenandoahLoadReferenceBarrier || |
|
212 (in->Opcode() == Op_Proj && |
|
213 in->in(0)->Opcode() == Op_CallLeaf && |
|
214 strcmp(in->in(0)->as_Call()->_name, "ShenandoahRuntime::oop_load_from_native_barrier") == 0)) { |
212 if (t == ShenandoahOopStore) { |
215 if (t == ShenandoahOopStore) { |
213 uint i = 0; |
216 uint i = 0; |
214 for (; i < phis.size(); i++) { |
217 for (; i < phis.size(); i++) { |
215 Node* n = phis.node_at(i); |
218 Node* n = phis.node_at(i); |
216 if (n->Opcode() == Op_ShenandoahEnqueueBarrier) { |
219 if (n->Opcode() == Op_ShenandoahEnqueueBarrier) { |
525 } else if (strlen(call->_name) > 5 && |
528 } else if (strlen(call->_name) > 5 && |
526 !strcmp(call->_name + strlen(call->_name) - 5, "_fill")) { |
529 !strcmp(call->_name + strlen(call->_name) - 5, "_fill")) { |
527 if (!verify_helper(n->in(TypeFunc::Parms), phis, visited, ShenandoahStore, trace, barriers_used)) { |
530 if (!verify_helper(n->in(TypeFunc::Parms), phis, visited, ShenandoahStore, trace, barriers_used)) { |
528 report_verify_failure("Shenandoah verification: _fill should have barriers", n); |
531 report_verify_failure("Shenandoah verification: _fill should have barriers", n); |
529 } |
532 } |
530 } else if (!strcmp(call->_name, "shenandoah_wb_pre")) { |
533 } else if (!strcmp(call->_name, "shenandoah_wb_pre") || !strcmp(call->_name, "ShenandoahRuntime::oop_load_from_native_barrier")) { |
531 // skip |
534 // skip |
532 } else { |
535 } else { |
533 const int calls_len = sizeof(calls) / sizeof(calls[0]); |
536 const int calls_len = sizeof(calls) / sizeof(calls[0]); |
534 int i = 0; |
537 int i = 0; |
535 for (; i < calls_len; i++) { |
538 for (; i < calls_len; i++) { |