Mercurial > hg > truffle
comparison src/cpu/sparc/vm/sparc.ad @ 17474:6fa574bfd32a
Merge
author | chegar |
---|---|
date | Thu, 03 Oct 2013 19:13:12 +0100 |
parents | 7944aba7ba41 |
children | c9ccd7b85f20 |
comparison
equal
deleted
inserted
replaced
17473:9b4ce069642e | 17474:6fa574bfd32a |
---|---|
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 } |