< prev index next >
src/hotspot/share/opto/parse2.cpp
Print this page
*** 1526,1536 ****
break;
case Bytecodes::_aload_3:
push( local(3) );
break;
case Bytecodes::_aload:
- case Bytecodes::_vload:
push( local(iter().get_index()) );
break;
case Bytecodes::_fload_0:
case Bytecodes::_iload_0:
--- 1526,1535 ----
*** 1604,1614 ****
set_local( 3, pop() );
break;
case Bytecodes::_fstore:
case Bytecodes::_istore:
case Bytecodes::_astore:
- case Bytecodes::_vstore:
set_local( iter().get_index(), pop() );
break;
// long stores
case Bytecodes::_lstore_0:
set_pair_local( 0, pop_pair() );
--- 1603,1612 ----
*** 1723,1733 ****
case Bytecodes::_baload: array_load(T_BYTE); break;
case Bytecodes::_caload: array_load(T_CHAR); break;
case Bytecodes::_iaload: array_load(T_INT); break;
case Bytecodes::_saload: array_load(T_SHORT); break;
case Bytecodes::_faload: array_load(T_FLOAT); break;
- case Bytecodes::_vaload: array_load(T_VALUETYPE); break;
case Bytecodes::_aaload: array_load(T_OBJECT); break;
case Bytecodes::_laload: {
a = array_addressing(T_LONG, 0);
if (stopped()) return; // guaranteed null or range check
dec_sp(2); // Pop array and index
--- 1721,1730 ----
*** 1744,1774 ****
case Bytecodes::_bastore: array_store(T_BYTE); break;
case Bytecodes::_castore: array_store(T_CHAR); break;
case Bytecodes::_iastore: array_store(T_INT); break;
case Bytecodes::_sastore: array_store(T_SHORT); break;
case Bytecodes::_fastore: array_store(T_FLOAT); break;
! case Bytecodes::_vastore: {
! d = array_addressing(T_OBJECT, 1);
! if (stopped()) return; // guaranteed null or range check
! array_store_check(true);
! c = pop(); // Oop to store
! b = pop(); // index (already used)
! a = pop(); // the array itself
! const TypeAryPtr* arytype = _gvn.type(a)->is_aryptr();
! const Type* elemtype = arytype->elem();
!
! if (elemtype->isa_valuetype()) {
! c->as_ValueType()->store_flattened(this, a, d);
! break;
! }
!
! const TypeAryPtr* adr_type = TypeAryPtr::OOPS;
! Node* oop = c->as_ValueType()->allocate(this)->get_oop();
! Node* store = store_oop_to_array(control(), a, d, adr_type, oop, elemtype->make_oopptr(), T_OBJECT,
! StoreNode::release_if_reference(T_OBJECT));
! break;
! }
case Bytecodes::_aastore: {
d = array_addressing(T_OBJECT, 1);
if (stopped()) return; // guaranteed null or range check
array_store_check();
c = pop(); // Oop to store
--- 1741,1772 ----
case Bytecodes::_bastore: array_store(T_BYTE); break;
case Bytecodes::_castore: array_store(T_CHAR); break;
case Bytecodes::_iastore: array_store(T_INT); break;
case Bytecodes::_sastore: array_store(T_SHORT); break;
case Bytecodes::_fastore: array_store(T_FLOAT); break;
! // The vastore case has to merged into the aastore case
! // case Bytecodes::_vastore: {
! // d = array_addressing(T_OBJECT, 1);
! // if (stopped()) return; // guaranteed null or range check
! // array_store_check(true);
! // c = pop(); // Oop to store
! // b = pop(); // index (already used)
! // a = pop(); // the array itself
! // const TypeAryPtr* arytype = _gvn.type(a)->is_aryptr();
! // const Type* elemtype = arytype->elem();
! //
! // if (elemtype->isa_valuetype()) {
! // c->as_ValueType()->store_flattened(this, a, d);
! // break;
! // }
! //
! // const TypeAryPtr* adr_type = TypeAryPtr::OOPS;
! // Node* oop = c->as_ValueType()->allocate(this)->get_oop();
! // Node* store = store_oop_to_array(control(), a, d, adr_type, oop, elemtype->make_oopptr(), T_OBJECT,
! // StoreNode::release_if_reference(T_OBJECT));
! // break;
! // }
case Bytecodes::_aastore: {
d = array_addressing(T_OBJECT, 1);
if (stopped()) return; // guaranteed null or range check
array_store_check();
c = pop(); // Oop to store
*** 2249,2259 ****
return_current(NULL);
break;
case Bytecodes::_ireturn:
case Bytecodes::_areturn:
- case Bytecodes::_vreturn:
case Bytecodes::_freturn:
return_current(pop());
break;
case Bytecodes::_lreturn:
return_current(pop_pair());
--- 2247,2256 ----
*** 2404,2418 ****
do_multianewarray();
break;
case Bytecodes::_new:
do_new();
break;
! case Bytecodes::_vdefault:
! do_vdefault();
break;
! case Bytecodes::_vwithfield:
! do_vwithfield();
break;
case Bytecodes::_jsr:
case Bytecodes::_jsr_w:
do_jsr();
--- 2401,2415 ----
do_multianewarray();
break;
case Bytecodes::_new:
do_new();
break;
! case Bytecodes::_defaultvalue:
! do_defaultvalue();
break;
! case Bytecodes::_withfield:
! do_withfield();
break;
case Bytecodes::_jsr:
case Bytecodes::_jsr_w:
do_jsr();
*** 2429,2446 ****
case Bytecodes::_monitorexit:
do_monitor_exit();
break;
- case Bytecodes::_vunbox:
- do_vunbox();
- break;
-
- case Bytecodes::_vbox:
- do_vbox();
- break;
-
case Bytecodes::_breakpoint:
// Breakpoint set concurrently to compile
// %%% use an uncommon trap?
C->record_failure("breakpoint in method");
return;
--- 2426,2435 ----
< prev index next >