equal
deleted
inserted
replaced
555 } else { |
555 } else { |
556 assert(!UseInlineCaches, "expect vtable calls only if not using ICs"); |
556 assert(!UseInlineCaches, "expect vtable calls only if not using ICs"); |
557 int entry_offset = InstanceKlass::vtable_start_offset() + vtable_index*vtableEntry::size(); |
557 int entry_offset = InstanceKlass::vtable_start_offset() + vtable_index*vtableEntry::size(); |
558 int v_off = entry_offset*wordSize + vtableEntry::method_offset_in_bytes(); |
558 int v_off = entry_offset*wordSize + vtableEntry::method_offset_in_bytes(); |
559 int klass_load_size; |
559 int klass_load_size; |
560 if (UseCompressedKlassPointers) { |
560 if (UseCompressedClassPointers) { |
561 assert(Universe::heap() != NULL, "java heap should be initialized"); |
561 assert(Universe::heap() != NULL, "java heap should be initialized"); |
562 klass_load_size = MacroAssembler::instr_size_for_decode_klass_not_null() + 1*BytesPerInstWord; |
562 klass_load_size = MacroAssembler::instr_size_for_decode_klass_not_null() + 1*BytesPerInstWord; |
563 } else { |
563 } else { |
564 klass_load_size = 1*BytesPerInstWord; |
564 klass_load_size = 1*BytesPerInstWord; |
565 } |
565 } |
1655 //============================================================================= |
1655 //============================================================================= |
1656 #ifndef PRODUCT |
1656 #ifndef PRODUCT |
1657 void MachUEPNode::format( PhaseRegAlloc *ra_, outputStream *st ) const { |
1657 void MachUEPNode::format( PhaseRegAlloc *ra_, outputStream *st ) const { |
1658 st->print_cr("\nUEP:"); |
1658 st->print_cr("\nUEP:"); |
1659 #ifdef _LP64 |
1659 #ifdef _LP64 |
1660 if (UseCompressedKlassPointers) { |
1660 if (UseCompressedClassPointers) { |
1661 assert(Universe::heap() != NULL, "java heap should be initialized"); |
1661 assert(Universe::heap() != NULL, "java heap should be initialized"); |
1662 st->print_cr("\tLDUW [R_O0 + oopDesc::klass_offset_in_bytes],R_G5\t! Inline cache check - compressed klass"); |
1662 st->print_cr("\tLDUW [R_O0 + oopDesc::klass_offset_in_bytes],R_G5\t! Inline cache check - compressed klass"); |
1663 st->print_cr("\tSET Universe::narrow_klass_base,R_G6_heap_base"); |
1663 st->print_cr("\tSET Universe::narrow_klass_base,R_G6_heap_base"); |
1664 if (Universe::narrow_klass_shift() != 0) { |
1664 if (Universe::narrow_klass_shift() != 0) { |
1665 st->print_cr("\tSLL R_G5,3,R_G5"); |
1665 st->print_cr("\tSLL R_G5,3,R_G5"); |
1895 return false; |
1895 return false; |
1896 } |
1896 } |
1897 |
1897 |
1898 bool Matcher::narrow_klass_use_complex_address() { |
1898 bool Matcher::narrow_klass_use_complex_address() { |
1899 NOT_LP64(ShouldNotCallThis()); |
1899 NOT_LP64(ShouldNotCallThis()); |
1900 assert(UseCompressedKlassPointers, "only for compressed klass code"); |
1900 assert(UseCompressedClassPointers, "only for compressed klass code"); |
1901 return false; |
1901 return false; |
1902 } |
1902 } |
1903 |
1903 |
1904 // Is it better to copy float constants, or load them directly from memory? |
1904 // Is it better to copy float constants, or load them directly from memory? |
1905 // Intel can load a float constant from a direct address, requiring no |
1905 // Intel can load a float constant from a direct address, requiring no |
2559 // get receiver klass (receiver already checked for non-null) |
2559 // get receiver klass (receiver already checked for non-null) |
2560 // If we end up going thru a c2i adapter interpreter expects method in G5 |
2560 // If we end up going thru a c2i adapter interpreter expects method in G5 |
2561 int off = __ offset(); |
2561 int off = __ offset(); |
2562 __ load_klass(O0, G3_scratch); |
2562 __ load_klass(O0, G3_scratch); |
2563 int klass_load_size; |
2563 int klass_load_size; |
2564 if (UseCompressedKlassPointers) { |
2564 if (UseCompressedClassPointers) { |
2565 assert(Universe::heap() != NULL, "java heap should be initialized"); |
2565 assert(Universe::heap() != NULL, "java heap should be initialized"); |
2566 klass_load_size = MacroAssembler::instr_size_for_decode_klass_not_null() + 1*BytesPerInstWord; |
2566 klass_load_size = MacroAssembler::instr_size_for_decode_klass_not_null() + 1*BytesPerInstWord; |
2567 } else { |
2567 } else { |
2568 klass_load_size = 1*BytesPerInstWord; |
2568 klass_load_size = 1*BytesPerInstWord; |
2569 } |
2569 } |