< prev index next >
src/hotspot/share/opto/macro.cpp
Print this page
*** 2704,2720 ****
Node* mask2 = MakeConX(-2);
Node* masked2 = transform_later(new AndXNode(cast, mask2));
Node* rawklassptr = transform_later(new CastX2PNode(masked2));
Node* klass_node = transform_later(new CheckCastPPNode(allocation_ctl, rawklassptr, TypeKlassPtr::VALUE));
- Node* top_adr;
- Node* end_adr;
-
Node* slowpath_bol = NULL;
Node* old_top = NULL;
Node* new_top = NULL;
if (UseTLAB) {
set_eden_pointers(top_adr, end_adr);
Node* end = make_load(ctl, mem, end_adr, 0, TypeRawPtr::BOTTOM, T_ADDRESS);
old_top = new LoadPNode(ctl, mem, top_adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM, MemNode::unordered);
transform_later(old_top);
Node* layout_val = make_load(NULL, mem, klass_node, in_bytes(Klass::layout_helper_offset()), TypeInt::INT, T_INT);
--- 2704,2719 ----
Node* mask2 = MakeConX(-2);
Node* masked2 = transform_later(new AndXNode(cast, mask2));
Node* rawklassptr = transform_later(new CastX2PNode(masked2));
Node* klass_node = transform_later(new CheckCastPPNode(allocation_ctl, rawklassptr, TypeKlassPtr::VALUE));
Node* slowpath_bol = NULL;
+ Node* top_adr = NULL;
Node* old_top = NULL;
Node* new_top = NULL;
if (UseTLAB) {
+ Node* end_adr = NULL;
set_eden_pointers(top_adr, end_adr);
Node* end = make_load(ctl, mem, end_adr, 0, TypeRawPtr::BOTTOM, T_ADDRESS);
old_top = new LoadPNode(ctl, mem, top_adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM, MemNode::unordered);
transform_later(old_top);
Node* layout_val = make_load(NULL, mem, klass_node, in_bytes(Klass::layout_helper_offset()), TypeInt::INT, T_INT);
*** 2725,2744 ****
transform_later(slowpath_cmp);
slowpath_bol = new BoolNode(slowpath_cmp, BoolTest::ge);
transform_later(slowpath_bol);
} else {
slowpath_bol = intcon(1);
old_top = top();
new_top = top();
}
IfNode* slowpath_iff = new IfNode(allocation_ctl, slowpath_bol, PROB_UNLIKELY_MAG(4), COUNT_UNKNOWN);
transform_later(slowpath_iff);
Node* slowpath_true = new IfTrueNode(slowpath_iff);
transform_later(slowpath_true);
-
CallStaticJavaNode* slow_call = new CallStaticJavaNode(OptoRuntime::store_value_type_fields_Type(),
StubRoutines::store_value_type_fields_to_buf(),
"store_value_type_fields",
call->jvms()->bci(),
TypePtr::BOTTOM);
--- 2724,2743 ----
transform_later(slowpath_cmp);
slowpath_bol = new BoolNode(slowpath_cmp, BoolTest::ge);
transform_later(slowpath_bol);
} else {
slowpath_bol = intcon(1);
+ top_adr = top();
old_top = top();
new_top = top();
}
IfNode* slowpath_iff = new IfNode(allocation_ctl, slowpath_bol, PROB_UNLIKELY_MAG(4), COUNT_UNKNOWN);
transform_later(slowpath_iff);
Node* slowpath_true = new IfTrueNode(slowpath_iff);
transform_later(slowpath_true);
CallStaticJavaNode* slow_call = new CallStaticJavaNode(OptoRuntime::store_value_type_fields_Type(),
StubRoutines::store_value_type_fields_to_buf(),
"store_value_type_fields",
call->jvms()->bci(),
TypePtr::BOTTOM);
< prev index next >