comparison src/cpu/sparc/vm/sparc.ad @ 13000:209aa13ab8c0

8024927: Nashorn performance regression with CompressedOops Summary: Allocate compressed class space at end of Java heap. For small heap sizes, without CDS, save some space so compressed classes can have the same favorable compression as oops Reviewed-by: stefank, hseigel, goetz
author coleenp
date Fri, 25 Oct 2013 15:19:29 -0400
parents c9ccd7b85f20
children b4aa8fc5d0d5
comparison
equal deleted inserted replaced
12999:634715d59d9e 13000:209aa13ab8c0
1658 st->print_cr("\nUEP:"); 1658 st->print_cr("\nUEP:");
1659 #ifdef _LP64 1659 #ifdef _LP64
1660 if (UseCompressedClassPointers) { 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 if (Universe::narrow_klass_base() != 0) {
1664 if (Universe::narrow_klass_shift() != 0) { 1664 st->print_cr("\tSET Universe::narrow_klass_base,R_G6_heap_base");
1665 st->print_cr("\tSLL R_G5,3,R_G5"); 1665 if (Universe::narrow_klass_shift() != 0) {
1666 st->print_cr("\tSLL R_G5,Universe::narrow_klass_shift,R_G5");
1667 }
1668 st->print_cr("\tADD R_G5,R_G6_heap_base,R_G5");
1669 st->print_cr("\tSET Universe::narrow_ptrs_base,R_G6_heap_base");
1670 } else {
1671 st->print_cr("\tSLL R_G5,Universe::narrow_klass_shift,R_G5");
1666 } 1672 }
1667 st->print_cr("\tADD R_G5,R_G6_heap_base,R_G5");
1668 st->print_cr("\tSET Universe::narrow_ptrs_base,R_G6_heap_base");
1669 } else { 1673 } else {
1670 st->print_cr("\tLDX [R_O0 + oopDesc::klass_offset_in_bytes],R_G5\t! Inline cache check"); 1674 st->print_cr("\tLDX [R_O0 + oopDesc::klass_offset_in_bytes],R_G5\t! Inline cache check");
1671 } 1675 }
1672 st->print_cr("\tCMP R_G5,R_G3" ); 1676 st->print_cr("\tCMP R_G5,R_G3" );
1673 st->print ("\tTne xcc,R_G0+ST_RESERVED_FOR_USER_0+2"); 1677 st->print ("\tTne xcc,R_G0+ST_RESERVED_FOR_USER_0+2");