< prev index next >

src/share/vm/opto/parse1.cpp

Print this page
rev 10494 : more
rev 10496 : more
rev 10538 : Tobias's loop opts patch
rev 10544 : call to __Value methods can't pass fields as arguments

*** 861,871 **** } else { // Value type arguments are not passed by reference: we get an // argument per field of the value type. Build ValueTypeNodes // from the value type arguments. const Type* t = tf->domain_sig()->field_at(i); ! if (t->isa_valuetypeptr()) { ciValueKlass* vk = t->is_valuetypeptr()->value_type()->value_klass(); Node* vt = create_vt_node(start, vk, vk, 0, j); map->init_req(i, gvn.transform(vt)); j += vk->value_arg_slots(); } else { --- 861,871 ---- } else { // Value type arguments are not passed by reference: we get an // argument per field of the value type. Build ValueTypeNodes // from the value type arguments. const Type* t = tf->domain_sig()->field_at(i); ! if (t->isa_valuetypeptr() && t->is_valuetypeptr()->klass() != C->env()->___Value_klass()) { ciValueKlass* vk = t->is_valuetypeptr()->value_type()->value_klass(); Node* vt = create_vt_node(start, vk, vk, 0, j); map->init_req(i, gvn.transform(vt)); j += vk->value_arg_slots(); } else {
< prev index next >