103 Node *adr = basic_plus_adr( local_addrs_base, local_addrs, -index*wordSize ); |
103 Node *adr = basic_plus_adr( local_addrs_base, local_addrs, -index*wordSize ); |
104 Node *ctl = control(); |
104 Node *ctl = control(); |
105 |
105 |
106 // Very similar to LoadNode::make, except we handle un-aligned longs and |
106 // Very similar to LoadNode::make, except we handle un-aligned longs and |
107 // doubles on Sparc. Intel can handle them just fine directly. |
107 // doubles on Sparc. Intel can handle them just fine directly. |
108 Node *l; |
108 Node *l = NULL; |
109 switch (bt) { // Signature is flattened |
109 switch (bt) { // Signature is flattened |
110 case T_INT: l = new (C) LoadINode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInt::INT, MemNode::unordered); break; |
110 case T_INT: l = new (C) LoadINode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInt::INT, MemNode::unordered); break; |
111 case T_FLOAT: l = new (C) LoadFNode(ctl, mem, adr, TypeRawPtr::BOTTOM, Type::FLOAT, MemNode::unordered); break; |
111 case T_FLOAT: l = new (C) LoadFNode(ctl, mem, adr, TypeRawPtr::BOTTOM, Type::FLOAT, MemNode::unordered); break; |
112 case T_ADDRESS: l = new (C) LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM, MemNode::unordered); break; |
112 case T_ADDRESS: l = new (C) LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeRawPtr::BOTTOM, MemNode::unordered); break; |
113 case T_OBJECT: l = new (C) LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInstPtr::BOTTOM, MemNode::unordered); break; |
113 case T_OBJECT: l = new (C) LoadPNode(ctl, mem, adr, TypeRawPtr::BOTTOM, TypeInstPtr::BOTTOM, MemNode::unordered); break; |
1860 } |
1860 } |
1861 |
1861 |
1862 // Now use a Phi here for merging |
1862 // Now use a Phi here for merging |
1863 assert(!nocreate, "Cannot build a phi for a block already parsed."); |
1863 assert(!nocreate, "Cannot build a phi for a block already parsed."); |
1864 const JVMState* jvms = map->jvms(); |
1864 const JVMState* jvms = map->jvms(); |
1865 const Type* t; |
1865 const Type* t = NULL; |
1866 if (jvms->is_loc(idx)) { |
1866 if (jvms->is_loc(idx)) { |
1867 t = block()->local_type_at(idx - jvms->locoff()); |
1867 t = block()->local_type_at(idx - jvms->locoff()); |
1868 } else if (jvms->is_stk(idx)) { |
1868 } else if (jvms->is_stk(idx)) { |
1869 t = block()->stack_type_at(idx - jvms->stkoff()); |
1869 t = block()->stack_type_at(idx - jvms->stkoff()); |
1870 } else if (jvms->is_mon(idx)) { |
1870 } else if (jvms->is_mon(idx)) { |