Mercurial > hg > graal-jvmci-8
changeset 10732:0bd794eb8222
Add compressed oop support in HotSpot Backend
author | Christos Kotselidis <christos.kotselidis@oracle.com> |
---|---|
date | Fri, 12 Jul 2013 14:17:42 +0200 |
parents | 40f6bda3f91d |
children | 6621bc66bfa4 |
files | graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java |
diffstat | 1 files changed, 9 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java Fri Jul 12 14:16:17 2013 +0200 +++ b/graal/com.oracle.graal.hotspot.amd64/src/com/oracle/graal/hotspot/amd64/AMD64HotSpotBackend.java Fri Jul 12 14:17:42 2013 +0200 @@ -236,7 +236,15 @@ Register receiver = asRegister(cc.getArgument(0)); AMD64Address src = new AMD64Address(receiver, config.hubOffset); - asm.cmpq(inlineCacheKlass, src); + AMD64HotSpotLIRGenerator gen = (AMD64HotSpotLIRGenerator) lirGen; + HotSpotRuntime hr = ((HotSpotRuntime) gen.getRuntime()); + if (hr.config.useCompressedKlassPointers) { + Register register = r10; + AMD64Move.decodeKlassPointer(asm, register, src, hr.config.narrowKlassBase, hr.config.narrowKlassShift, hr.config.logKlassAlignment); + asm.cmpq(inlineCacheKlass, register); + } else { + asm.cmpq(inlineCacheKlass, src); + } asm.jcc(ConditionFlag.NotEqual, unverifiedStub); }