101 import jdk.vm.ci.meta.JavaConstant;
102 import jdk.vm.ci.meta.JavaKind;
103 import jdk.vm.ci.meta.PlatformKind;
104 import jdk.vm.ci.meta.PrimitiveConstant;
105 import jdk.vm.ci.meta.SpeculationLog;
106 import jdk.vm.ci.meta.Value;
107
108 /**
109 * LIR generator specialized for AMD64 HotSpot.
110 */
111 public class AMD64HotSpotLIRGenerator extends AMD64LIRGenerator implements HotSpotLIRGenerator {
112
113 final GraalHotSpotVMConfig config;
114 private HotSpotDebugInfoBuilder debugInfoBuilder;
115
116 protected AMD64HotSpotLIRGenerator(HotSpotProviders providers, GraalHotSpotVMConfig config, LIRGenerationResult lirGenRes) {
117 this(providers, config, lirGenRes, new BackupSlotProvider(lirGenRes.getFrameMapBuilder()));
118 }
119
120 private AMD64HotSpotLIRGenerator(HotSpotProviders providers, GraalHotSpotVMConfig config, LIRGenerationResult lirGenRes, BackupSlotProvider backupSlotProvider) {
121 this(new AMD64HotSpotLIRKindTool(), new AMD64ArithmeticLIRGenerator(null, new AMD64HotSpotMaths()), new AMD64HotSpotMoveFactory(backupSlotProvider), providers, config, lirGenRes);
122 }
123
124 protected AMD64HotSpotLIRGenerator(LIRKindTool lirKindTool, AMD64ArithmeticLIRGenerator arithmeticLIRGen, MoveFactory moveFactory, HotSpotProviders providers, GraalHotSpotVMConfig config,
125 LIRGenerationResult lirGenRes) {
126 super(lirKindTool, arithmeticLIRGen, moveFactory, providers, lirGenRes);
127 assert config.basicLockSize == 8;
128 this.config = config;
129 }
130
131 @Override
132 public HotSpotProviders getProviders() {
133 return (HotSpotProviders) super.getProviders();
134 }
135
136 @Override
137 protected int getMaxVectorSize() {
138 return config.maxVectorSize;
139 }
140
141 /**
|
101 import jdk.vm.ci.meta.JavaConstant;
102 import jdk.vm.ci.meta.JavaKind;
103 import jdk.vm.ci.meta.PlatformKind;
104 import jdk.vm.ci.meta.PrimitiveConstant;
105 import jdk.vm.ci.meta.SpeculationLog;
106 import jdk.vm.ci.meta.Value;
107
108 /**
109 * LIR generator specialized for AMD64 HotSpot.
110 */
111 public class AMD64HotSpotLIRGenerator extends AMD64LIRGenerator implements HotSpotLIRGenerator {
112
113 final GraalHotSpotVMConfig config;
114 private HotSpotDebugInfoBuilder debugInfoBuilder;
115
116 protected AMD64HotSpotLIRGenerator(HotSpotProviders providers, GraalHotSpotVMConfig config, LIRGenerationResult lirGenRes) {
117 this(providers, config, lirGenRes, new BackupSlotProvider(lirGenRes.getFrameMapBuilder()));
118 }
119
120 private AMD64HotSpotLIRGenerator(HotSpotProviders providers, GraalHotSpotVMConfig config, LIRGenerationResult lirGenRes, BackupSlotProvider backupSlotProvider) {
121 this(new AMD64HotSpotLIRKindTool(), new AMD64ArithmeticLIRGenerator(null), new AMD64HotSpotMoveFactory(backupSlotProvider), providers, config, lirGenRes);
122 }
123
124 protected AMD64HotSpotLIRGenerator(LIRKindTool lirKindTool, AMD64ArithmeticLIRGenerator arithmeticLIRGen, MoveFactory moveFactory, HotSpotProviders providers, GraalHotSpotVMConfig config,
125 LIRGenerationResult lirGenRes) {
126 super(lirKindTool, arithmeticLIRGen, moveFactory, providers, lirGenRes);
127 assert config.basicLockSize == 8;
128 this.config = config;
129 }
130
131 @Override
132 public HotSpotProviders getProviders() {
133 return (HotSpotProviders) super.getProviders();
134 }
135
136 @Override
137 protected int getMaxVectorSize() {
138 return config.maxVectorSize;
139 }
140
141 /**
|