On 4/22/2014 4:58 PM, Shane Ginnane wrote:
Linux (on x86_64) has been doing it "forever" - goes even further, allowing 
reference to a 32 Gig heap rather than just 4 Gig.

z/OS Java compressed references also go to 32G. (The USE2GTO32G= keyword on the IARV64 macro should provide valuable insight into this.) Compressed references work because Java objects are always doubleword aligned. Therefore, the low-order three bits of their addresses are zero and can be reused to indicate the type of compressed reference.

Of course extra instructions are needed to do shifting to compress and decompress addresses above 4G. Java always chooses the lowest possible shift amount. What's particularly interesting is that IBM benchmarks show a shift amount of 1 on System z is less expensive than higher values while shift amounts 1,2 & 3 have equal overhead on xSeries & pSeries.

--
Edward E Jaffe
Phoenix Software International, Inc
831 Parkview Drive North
El Segundo, CA 90245
http://www.phoenixsoftware.com/

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to