src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.hotspot.amd64/src/org/graalvm/compiler/hotspot/amd64/AMD64HotSpotStrategySwitchOp.java
branchdatagramsocketimpl-branch
changeset 58678 9cf78a70fa4f
parent 52910 583fd71c47d6
child 58679 9c3209ff7550
equal deleted inserted replaced
58677:13588c901957 58678:9cf78a70fa4f
     1 /*
     1 /*
     2  * Copyright (c) 2015, 2018, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2015, 2019, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
    32 import org.graalvm.compiler.lir.amd64.AMD64ControlFlow;
    32 import org.graalvm.compiler.lir.amd64.AMD64ControlFlow;
    33 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    33 import org.graalvm.compiler.lir.asm.CompilationResultBuilder;
    34 
    34 
    35 import jdk.vm.ci.code.Register;
    35 import jdk.vm.ci.code.Register;
    36 import jdk.vm.ci.code.ValueUtil;
    36 import jdk.vm.ci.code.ValueUtil;
    37 import jdk.vm.ci.hotspot.HotSpotMetaspaceConstant;
    37 import jdk.vm.ci.hotspot.HotSpotConstant;
    38 import jdk.vm.ci.meta.Constant;
    38 import jdk.vm.ci.meta.Constant;
    39 import jdk.vm.ci.meta.Value;
    39 import jdk.vm.ci.meta.Value;
    40 
    40 
    41 final class AMD64HotSpotStrategySwitchOp extends AMD64ControlFlow.StrategySwitchOp {
    41 final class AMD64HotSpotStrategySwitchOp extends AMD64ControlFlow.StrategySwitchOp {
    42     public static final LIRInstructionClass<AMD64HotSpotStrategySwitchOp> TYPE = LIRInstructionClass.create(AMD64HotSpotStrategySwitchOp.class);
    42     public static final LIRInstructionClass<AMD64HotSpotStrategySwitchOp> TYPE = LIRInstructionClass.create(AMD64HotSpotStrategySwitchOp.class);
    56             super(keyRegister, crb, masm);
    56             super(keyRegister, crb, masm);
    57         }
    57         }
    58 
    58 
    59         @Override
    59         @Override
    60         protected void emitComparison(Constant c) {
    60         protected void emitComparison(Constant c) {
    61             if (c instanceof HotSpotMetaspaceConstant) {
    61             if (c instanceof HotSpotConstant) {
    62                 HotSpotMetaspaceConstant meta = (HotSpotMetaspaceConstant) c;
    62                 HotSpotConstant meta = (HotSpotConstant) c;
    63                 if (meta.isCompressed()) {
    63                 if (meta.isCompressed()) {
    64                     crb.recordInlineDataInCode(meta);
    64                     crb.recordInlineDataInCode(meta);
    65                     masm.cmpl(keyRegister, 0xDEADDEAD);
    65                     masm.cmpl(keyRegister, 0xDEADDEAD);
    66                 } else {
    66                 } else {
    67                     AMD64Address addr = (AMD64Address) crb.recordDataReferenceInCode(meta, 8);
    67                     AMD64Address addr = (AMD64Address) crb.recordDataReferenceInCode(meta, 8);