< prev index next >

src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.nodes/src/org/graalvm/compiler/nodes/memory/address/OffsetAddressNode.java

Print this page

        

@@ -20,10 +20,11 @@
  * or visit www.oracle.com if you need additional information or have any
  * questions.
  */
 package org.graalvm.compiler.nodes.memory.address;
 
+import org.graalvm.compiler.core.common.type.AbstractPointerStamp;
 import org.graalvm.compiler.core.common.type.IntegerStamp;
 import org.graalvm.compiler.core.common.type.Stamp;
 import org.graalvm.compiler.graph.Node;
 import org.graalvm.compiler.graph.NodeClass;
 import org.graalvm.compiler.graph.spi.Canonicalizable;

@@ -50,29 +51,34 @@
 
     public OffsetAddressNode(ValueNode base, ValueNode offset) {
         super(TYPE);
         this.base = base;
         this.offset = offset;
+
+        assert base != null && (base.stamp() instanceof AbstractPointerStamp || IntegerStamp.getBits(base.stamp()) == 64) &&
+                        offset != null && IntegerStamp.getBits(offset.stamp()) == 64 : "both values must have 64 bits";
     }
 
     @Override
     public ValueNode getBase() {
         return base;
     }
 
     public void setBase(ValueNode base) {
         updateUsages(this.base, base);
         this.base = base;
+        assert base != null && (base.stamp() instanceof AbstractPointerStamp || IntegerStamp.getBits(base.stamp()) == 64);
     }
 
     public ValueNode getOffset() {
         return offset;
     }
 
     public void setOffset(ValueNode offset) {
         updateUsages(this.offset, offset);
         this.offset = offset;
+        assert offset != null && IntegerStamp.getBits(offset.stamp()) == 64;
     }
 
     @Override
     public Node canonical(CanonicalizerTool tool) {
         if (base instanceof RawAddressNode) {
< prev index next >