hotspot/src/share/vm/opto/parse1.cpp
changeset 33589 7cbd1b2c139b
parent 33198 b37ad9fbf681
child 34185 ee71c590a456
equal deleted inserted replaced
33580:c2d95df2c54e 33589:7cbd1b2c139b
   106   Node *adr = basic_plus_adr( local_addrs_base, local_addrs, -index*wordSize );
   106   Node *adr = basic_plus_adr( local_addrs_base, local_addrs, -index*wordSize );
   107   Node *ctl = control();
   107   Node *ctl = control();
   108 
   108 
   109   // Very similar to LoadNode::make, except we handle un-aligned longs and
   109   // Very similar to LoadNode::make, except we handle un-aligned longs and
   110   // doubles on Sparc.  Intel can handle them just fine directly.
   110   // doubles on Sparc.  Intel can handle them just fine directly.
   111   Node *l;
   111   Node *l = NULL;
   112   switch (bt) {                // Signature is flattened
   112   switch (bt) {                // Signature is flattened
   113   case T_INT:     l = new LoadINode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInt::INT,        MemNode::unordered); break;
   113   case T_INT:     l = new LoadINode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInt::INT,        MemNode::unordered); break;
   114   case T_FLOAT:   l = new LoadFNode(ctl, mem, adr, TypeRawPtr::BOTTOM, Type::FLOAT,         MemNode::unordered); break;
   114   case T_FLOAT:   l = new LoadFNode(ctl, mem, adr, TypeRawPtr::BOTTOM, Type::FLOAT,         MemNode::unordered); break;
   115   case T_ADDRESS: l = new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM,  MemNode::unordered); break;
   115   case T_ADDRESS: l = new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM,  MemNode::unordered); break;
   116   case T_OBJECT:  l = new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInstPtr::BOTTOM, MemNode::unordered); break;
   116   case T_OBJECT:  l = new LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInstPtr::BOTTOM, MemNode::unordered); break;
  1901   }
  1901   }
  1902 
  1902 
  1903   // Now use a Phi here for merging
  1903   // Now use a Phi here for merging
  1904   assert(!nocreate, "Cannot build a phi for a block already parsed.");
  1904   assert(!nocreate, "Cannot build a phi for a block already parsed.");
  1905   const JVMState* jvms = map->jvms();
  1905   const JVMState* jvms = map->jvms();
  1906   const Type* t;
  1906   const Type* t = NULL;
  1907   if (jvms->is_loc(idx)) {
  1907   if (jvms->is_loc(idx)) {
  1908     t = block()->local_type_at(idx - jvms->locoff());
  1908     t = block()->local_type_at(idx - jvms->locoff());
  1909   } else if (jvms->is_stk(idx)) {
  1909   } else if (jvms->is_stk(idx)) {
  1910     t = block()->stack_type_at(idx - jvms->stkoff());
  1910     t = block()->stack_type_at(idx - jvms->stkoff());
  1911   } else if (jvms->is_mon(idx)) {
  1911   } else if (jvms->is_mon(idx)) {