Mercurial > hg > truffle
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"); |