< prev index next >

src/jdk.internal.vm.ci/share/classes/jdk.vm.ci.hotspot.sparc/src/jdk/vm/ci/hotspot/sparc/SPARCHotSpotJVMCIBackendFactory.java

Print this page




  26 
  27 import java.util.EnumSet;
  28 
  29 import jdk.vm.ci.code.Architecture;
  30 import jdk.vm.ci.code.RegisterConfig;
  31 import jdk.vm.ci.code.TargetDescription;
  32 import jdk.vm.ci.code.stack.StackIntrospection;
  33 import jdk.vm.ci.common.InitTimer;
  34 import jdk.vm.ci.hotspot.HotSpotCodeCacheProvider;
  35 import jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider;
  36 import jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory;
  37 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
  38 import jdk.vm.ci.hotspot.HotSpotMetaAccessProvider;
  39 import jdk.vm.ci.hotspot.HotSpotStackIntrospection;
  40 import jdk.vm.ci.runtime.JVMCIBackend;
  41 import jdk.vm.ci.sparc.SPARC;
  42 import jdk.vm.ci.sparc.SPARC.CPUFeature;
  43 
  44 public class SPARCHotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFactory {
  45 
  46     protected TargetDescription createTarget(SPARCHotSpotVMConfig config) {
  47         final int stackFrameAlignment = 16;
  48         final int implicitNullCheckLimit = 4096;
  49         final boolean inlineObjects = false;
  50         Architecture arch = new SPARC(computeFeatures(config));
  51         return new TargetDescription(arch, true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects);
  52     }
  53 
  54     protected HotSpotCodeCacheProvider createCodeCache(HotSpotJVMCIRuntime runtime, TargetDescription target, RegisterConfig regConfig) {
  55         return new HotSpotCodeCacheProvider(runtime, runtime.getConfig(), target, regConfig);
  56     }
  57 
  58     protected EnumSet<CPUFeature> computeFeatures(SPARCHotSpotVMConfig config) {
  59         EnumSet<CPUFeature> features = EnumSet.noneOf(CPUFeature.class);
  60 
  61         if ((config.vmVersionFeatures & 1L << config.sparc_ADI) != 0) {
  62             features.add(CPUFeature.ADI);
  63         }
  64         if ((config.vmVersionFeatures & 1L << config.sparc_AES) != 0) {
  65             features.add(CPUFeature.AES);
  66         }
  67         if ((config.vmVersionFeatures & 1L << config.sparc_BLK_INIT) != 0) {
  68             features.add(CPUFeature.BLK_INIT);
  69         }
  70         if ((config.vmVersionFeatures & 1L << config.sparc_CAMELLIA) != 0) {
  71             features.add(CPUFeature.CAMELLIA);
  72         }
  73         if ((config.vmVersionFeatures & 1L << config.sparc_CBCOND) != 0) {
  74             features.add(CPUFeature.CBCOND);
  75         }
  76         if ((config.vmVersionFeatures & 1L << config.sparc_CRC32C) != 0) {
  77             features.add(CPUFeature.CRC32C);
  78         }




  26 
  27 import java.util.EnumSet;
  28 
  29 import jdk.vm.ci.code.Architecture;
  30 import jdk.vm.ci.code.RegisterConfig;
  31 import jdk.vm.ci.code.TargetDescription;
  32 import jdk.vm.ci.code.stack.StackIntrospection;
  33 import jdk.vm.ci.common.InitTimer;
  34 import jdk.vm.ci.hotspot.HotSpotCodeCacheProvider;
  35 import jdk.vm.ci.hotspot.HotSpotConstantReflectionProvider;
  36 import jdk.vm.ci.hotspot.HotSpotJVMCIBackendFactory;
  37 import jdk.vm.ci.hotspot.HotSpotJVMCIRuntime;
  38 import jdk.vm.ci.hotspot.HotSpotMetaAccessProvider;
  39 import jdk.vm.ci.hotspot.HotSpotStackIntrospection;
  40 import jdk.vm.ci.runtime.JVMCIBackend;
  41 import jdk.vm.ci.sparc.SPARC;
  42 import jdk.vm.ci.sparc.SPARC.CPUFeature;
  43 
  44 public class SPARCHotSpotJVMCIBackendFactory implements HotSpotJVMCIBackendFactory {
  45 
  46     private static TargetDescription createTarget(SPARCHotSpotVMConfig config) {
  47         final int stackFrameAlignment = 16;
  48         final int implicitNullCheckLimit = 4096;
  49         final boolean inlineObjects = false;
  50         Architecture arch = new SPARC(computeFeatures(config));
  51         return new TargetDescription(arch, true, stackFrameAlignment, implicitNullCheckLimit, inlineObjects);
  52     }
  53 
  54     protected HotSpotCodeCacheProvider createCodeCache(HotSpotJVMCIRuntime runtime, TargetDescription target, RegisterConfig regConfig) {
  55         return new HotSpotCodeCacheProvider(runtime, target, regConfig);
  56     }
  57 
  58     private static EnumSet<CPUFeature> computeFeatures(SPARCHotSpotVMConfig config) {
  59         EnumSet<CPUFeature> features = EnumSet.noneOf(CPUFeature.class);
  60 
  61         if ((config.vmVersionFeatures & 1L << config.sparc_ADI) != 0) {
  62             features.add(CPUFeature.ADI);
  63         }
  64         if ((config.vmVersionFeatures & 1L << config.sparc_AES) != 0) {
  65             features.add(CPUFeature.AES);
  66         }
  67         if ((config.vmVersionFeatures & 1L << config.sparc_BLK_INIT) != 0) {
  68             features.add(CPUFeature.BLK_INIT);
  69         }
  70         if ((config.vmVersionFeatures & 1L << config.sparc_CAMELLIA) != 0) {
  71             features.add(CPUFeature.CAMELLIA);
  72         }
  73         if ((config.vmVersionFeatures & 1L << config.sparc_CBCOND) != 0) {
  74             features.add(CPUFeature.CBCOND);
  75         }
  76         if ((config.vmVersionFeatures & 1L << config.sparc_CRC32C) != 0) {
  77             features.add(CPUFeature.CRC32C);
  78         }


< prev index next >