< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotBackend.java

Print this page

        

*** 261,278 **** Register receiver = asRegister(cc.getArgument(0)); AMD64Address src = new AMD64Address(receiver, config.hubOffset); if (config.useCompressedClassPointers) { Register register = r10; ! AMD64HotSpotMove.decodeKlassPointer(crb, asm, register, providers.getRegisters().getHeapBaseRegister(), src, config); if (GeneratePIC.getValue(crb.getOptions())) { ! asm.movq(providers.getRegisters().getHeapBaseRegister(), asm.getPlaceholder(-1)); crb.recordMark(config.MARKID_NARROW_OOP_BASE_ADDRESS); } else { if (config.narrowKlassBase != 0) { // The heap base register was destroyed above, so restore it ! asm.movq(providers.getRegisters().getHeapBaseRegister(), config.narrowOopBase); } } asm.cmpq(inlineCacheKlass, register); } else { asm.cmpq(inlineCacheKlass, src); --- 261,283 ---- Register receiver = asRegister(cc.getArgument(0)); AMD64Address src = new AMD64Address(receiver, config.hubOffset); if (config.useCompressedClassPointers) { Register register = r10; ! Register heapBase = providers.getRegisters().getHeapBaseRegister(); ! AMD64HotSpotMove.decodeKlassPointer(crb, asm, register, heapBase, src, config); if (GeneratePIC.getValue(crb.getOptions())) { ! asm.movq(heapBase, asm.getPlaceholder(-1)); crb.recordMark(config.MARKID_NARROW_OOP_BASE_ADDRESS); } else { if (config.narrowKlassBase != 0) { // The heap base register was destroyed above, so restore it ! if (config.narrowOopBase == 0L) { ! asm.xorq(heapBase, heapBase); ! } else { ! asm.movq(heapBase, config.narrowOopBase); ! } } } asm.cmpq(inlineCacheKlass, register); } else { asm.cmpq(inlineCacheKlass, src);
< prev index next >