< prev index next >
src/share/vm/opto/graphKit.cpp
Print this page
@@ -1510,11 +1510,11 @@
uint adr_idx = C->get_alias_index(adr_type);
assert(adr_idx != Compile::AliasIdxTop, "use other store_to_memory factory" );
if (bt == T_VALUETYPE) {
// Allocate value type and store oop
- val = val->as_ValueType()->store_to_memory(this);
+ val = val->as_ValueType()->allocate(this);
}
pre_barrier(true /* do_load */,
control(), obj, adr, adr_idx, val, val_type,
NULL /* pre_val */,
@@ -1608,11 +1608,11 @@
if (domain->field_at(i)->is_valuetypeptr()->klass() != C->env()->___Value_klass()) {
// We don't pass value type arguments by reference but instead
// pass each field of the value type
idx += vt->pass_fields(call, idx, *this);
} else {
- arg = arg->as_ValueType()->store_to_memory(this);
+ arg = arg->as_ValueType()->allocate(this);
call->init_req(idx, arg);
idx++;
}
// If a value type argument is passed as fields, attach the Method* to the call site
// to be able to access the extended signature later via attached_method_before_pc().
@@ -1623,11 +1623,11 @@
idx++;
}
} else {
if (arg->is_ValueType()) {
// Pass value type argument via oop to callee
- arg = arg->as_ValueType()->store_to_memory(this);
+ arg = arg->as_ValueType()->allocate(this);
}
call->init_req(i, arg);
}
}
}
@@ -3341,11 +3341,12 @@
// - If 'return_size_val', report the the total object size to the caller.
// - deoptimize_on_exception controls how Java exceptions are handled (rethrow vs deoptimize)
Node* GraphKit::new_instance(Node* klass_node,
Node* extra_slow_test,
Node* *return_size_val,
- bool deoptimize_on_exception) {
+ bool deoptimize_on_exception,
+ ValueTypeNode* value_node) {
// Compute size in doublewords
// The size is always an integral number of doublewords, represented
// as a positive bytewise size stored in the klass's layout_helper.
// The layout_helper also encodes (in a low bit) the need for a slow path.
jint layout_con = Klass::_lh_neutral_value;
@@ -3406,11 +3407,11 @@
set_all_memory(mem); // Create new memory state
AllocateNode* alloc = new AllocateNode(C, AllocateNode::alloc_type(Type::TOP),
control(), mem, i_o(),
size, klass_node,
- initial_slow_test);
+ initial_slow_test, value_node);
return set_output_for_allocation(alloc, oop_type, deoptimize_on_exception);
}
//-------------------------------new_array-------------------------------------
@@ -3637,11 +3638,11 @@
SafePointNode* loop_map = NULL;
{
PreserveJVMState pjvms(this);
// Create default value type and store it to memory
Node* oop = ValueTypeNode::make_default(gvn(), vk);
- oop = oop->as_ValueType()->store_to_memory(this);
+ oop = oop->as_ValueType()->allocate(this);
length = SubI(length, intcon(1));
add_predicate(nargs);
RegionNode* loop = new RegionNode(3);
loop->init_req(1, control());
< prev index next >