hotspot/src/cpu/sparc/vm/sparc.ad
changeset 19979 ebe1dbb6e1aa
parent 19319 0ad35be0733a
child 20289 35d78de0c547
equal deleted inserted replaced
19766:b6d8784a1037 19979:ebe1dbb6e1aa
   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       }