src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotMoveFactory.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64

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

Print this page




  23 package org.graalvm.compiler.hotspot.amd64;
  24 
  25 import org.graalvm.compiler.core.amd64.AMD64MoveFactory;
  26 import org.graalvm.compiler.lir.amd64.AMD64LIRInstruction;
  27 
  28 import jdk.vm.ci.hotspot.HotSpotCompressedNullConstant;
  29 import jdk.vm.ci.hotspot.HotSpotConstant;
  30 import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
  31 import jdk.vm.ci.hotspot.HotSpotObjectConstant;
  32 import jdk.vm.ci.meta.AllocatableValue;
  33 import jdk.vm.ci.meta.Constant;
  34 import jdk.vm.ci.meta.JavaConstant;
  35 
  36 public class AMD64HotSpotMoveFactory extends AMD64MoveFactory {
  37 
  38     public AMD64HotSpotMoveFactory(BackupSlotProvider backupSlotProvider) {
  39         super(backupSlotProvider);
  40     }
  41 
  42     @Override
  43     public boolean canInlineConstant(JavaConstant c) {
  44         if (HotSpotCompressedNullConstant.COMPRESSED_NULL.equals(c)) {
  45             return true;
  46         } else if (c instanceof HotSpotObjectConstant) {
  47             return ((HotSpotObjectConstant) c).isCompressed();


  48         } else {
  49             return super.canInlineConstant(c);
  50         }
  51     }
  52 
  53     @Override
  54     public boolean allowConstantToStackMove(Constant value) {
  55         if (value instanceof HotSpotConstant) {
  56             return ((HotSpotConstant) value).isCompressed();
  57         }
  58         return true;
  59     }
  60 
  61     @Override
  62     public AMD64LIRInstruction createLoad(AllocatableValue dst, Constant src) {
  63         if (HotSpotCompressedNullConstant.COMPRESSED_NULL.equals(src)) {
  64             return super.createLoad(dst, JavaConstant.INT_0);
  65         } else if (src instanceof HotSpotObjectConstant) {
  66             return new AMD64HotSpotMove.HotSpotLoadObjectConstantOp(dst, (HotSpotObjectConstant) src);
  67         } else if (src instanceof HotSpotMetaspaceConstant) {


  23 package org.graalvm.compiler.hotspot.amd64;
  24 
  25 import org.graalvm.compiler.core.amd64.AMD64MoveFactory;
  26 import org.graalvm.compiler.lir.amd64.AMD64LIRInstruction;
  27 
  28 import jdk.vm.ci.hotspot.HotSpotCompressedNullConstant;
  29 import jdk.vm.ci.hotspot.HotSpotConstant;
  30 import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
  31 import jdk.vm.ci.hotspot.HotSpotObjectConstant;
  32 import jdk.vm.ci.meta.AllocatableValue;
  33 import jdk.vm.ci.meta.Constant;
  34 import jdk.vm.ci.meta.JavaConstant;
  35 
  36 public class AMD64HotSpotMoveFactory extends AMD64MoveFactory {
  37 
  38     public AMD64HotSpotMoveFactory(BackupSlotProvider backupSlotProvider) {
  39         super(backupSlotProvider);
  40     }
  41 
  42     @Override
  43     public boolean canInlineConstant(Constant c) {
  44         if (HotSpotCompressedNullConstant.COMPRESSED_NULL.equals(c)) {
  45             return true;
  46         } else if (c instanceof HotSpotObjectConstant) {
  47             return ((HotSpotObjectConstant) c).isCompressed();
  48         } else if (c instanceof HotSpotMetaspaceConstant) {
  49             return ((HotSpotMetaspaceConstant) c).isCompressed();
  50         } else {
  51             return super.canInlineConstant(c);
  52         }
  53     }
  54 
  55     @Override
  56     public boolean allowConstantToStackMove(Constant value) {
  57         if (value instanceof HotSpotConstant) {
  58             return ((HotSpotConstant) value).isCompressed();
  59         }
  60         return true;
  61     }
  62 
  63     @Override
  64     public AMD64LIRInstruction createLoad(AllocatableValue dst, Constant src) {
  65         if (HotSpotCompressedNullConstant.COMPRESSED_NULL.equals(src)) {
  66             return super.createLoad(dst, JavaConstant.INT_0);
  67         } else if (src instanceof HotSpotObjectConstant) {
  68             return new AMD64HotSpotMove.HotSpotLoadObjectConstantOp(dst, (HotSpotObjectConstant) src);
  69         } else if (src instanceof HotSpotMetaspaceConstant) {
src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotMoveFactory.java
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File