src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.core.amd64/src/org/graalvm/compiler/core/amd64/AMD64AddressLowering.java
changeset 48861 47f19ff9903c
parent 48190 25cfedf27edc
child 50858 2d3e99a72541
equal deleted inserted replaced
48860:5bce1b7e7800 48861:47f19ff9903c
    25 
    25 
    26 import org.graalvm.compiler.asm.amd64.AMD64Address.Scale;
    26 import org.graalvm.compiler.asm.amd64.AMD64Address.Scale;
    27 import org.graalvm.compiler.core.common.NumUtil;
    27 import org.graalvm.compiler.core.common.NumUtil;
    28 import org.graalvm.compiler.core.common.type.AbstractPointerStamp;
    28 import org.graalvm.compiler.core.common.type.AbstractPointerStamp;
    29 import org.graalvm.compiler.core.common.type.IntegerStamp;
    29 import org.graalvm.compiler.core.common.type.IntegerStamp;
    30 import org.graalvm.compiler.core.common.type.PrimitiveStamp;
       
    31 import org.graalvm.compiler.debug.DebugContext;
    30 import org.graalvm.compiler.debug.DebugContext;
    32 import org.graalvm.compiler.nodes.NodeView;
    31 import org.graalvm.compiler.nodes.NodeView;
    33 import org.graalvm.compiler.nodes.StructuredGraph;
    32 import org.graalvm.compiler.nodes.StructuredGraph;
    34 import org.graalvm.compiler.nodes.ValueNode;
    33 import org.graalvm.compiler.nodes.ValueNode;
    35 import org.graalvm.compiler.nodes.calc.AddNode;
    34 import org.graalvm.compiler.nodes.calc.AddNode;
   105             if (ret.getIndex() == null && ret.getBase() instanceof AddNode) {
   104             if (ret.getIndex() == null && ret.getBase() instanceof AddNode) {
   106                 AddNode add = (AddNode) ret.getBase();
   105                 AddNode add = (AddNode) ret.getBase();
   107                 ret.setBase(add.getX());
   106                 ret.setBase(add.getX());
   108                 ret.setIndex(considerNegation(graph, add.getY(), isBaseNegated));
   107                 ret.setIndex(considerNegation(graph, add.getY(), isBaseNegated));
   109                 return true;
   108                 return true;
   110             } else if (ret.getBase() == null && ret.getIndex() instanceof AddNode) {
   109             }
       
   110 
       
   111             if (ret.getBase() == null && ret.getIndex() instanceof AddNode) {
   111                 AddNode add = (AddNode) ret.getIndex();
   112                 AddNode add = (AddNode) ret.getIndex();
   112                 ret.setBase(considerNegation(graph, add.getX(), isIndexNegated));
   113                 ret.setBase(considerNegation(graph, add.getX(), isIndexNegated));
   113                 ret.setIndex(add.getY());
   114                 ret.setIndex(add.getY());
   114                 return true;
   115                 return true;
   115             }
   116             }
   186         JavaConstant c = node.asJavaConstant();
   187         JavaConstant c = node.asJavaConstant();
   187         if (c != null) {
   188         if (c != null) {
   188             return improveConstDisp(address, node, c, null, shift, negateExtractedDisplacement);
   189             return improveConstDisp(address, node, c, null, shift, negateExtractedDisplacement);
   189         } else {
   190         } else {
   190             if (node.stamp(NodeView.DEFAULT) instanceof IntegerStamp) {
   191             if (node.stamp(NodeView.DEFAULT) instanceof IntegerStamp) {
   191                 assert PrimitiveStamp.getBits(node.stamp(NodeView.DEFAULT)) == ADDRESS_BITS;
   192                 assert IntegerStamp.getBits(node.stamp(NodeView.DEFAULT)) == ADDRESS_BITS;
   192 
   193 
   193                 /*
   194                 /*
   194                  * we can't swallow zero-extends because of multiple reasons:
   195                  * we can't swallow zero-extends because of multiple reasons:
   195                  *
   196                  *
   196                  * a) we might encounter something like the following: ZeroExtend(Add(negativeValue,
   197                  * a) we might encounter something like the following: ZeroExtend(Add(negativeValue,