# HG changeset patch # User Lukas Stadler # Date 1360315190 -3600 # Node ID 9e68bd67b745850cfa66880252d11abc6143b638 # Parent 4c0a366720953225764008a52bb0d4f648e333c5 cleanups, javadoc, assertions diff -r 4c0a36672095 -r 9e68bd67b745 graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java --- a/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Thu Feb 07 18:59:56 2013 +0100 +++ b/graal/com.oracle.graal.graph/src/com/oracle/graal/graph/Node.java Fri Feb 08 10:19:50 2013 +0100 @@ -74,7 +74,7 @@ /** * Denotes that a parameter of an {@linkplain NodeIntrinsic intrinsic} method must be a compile - * time constant at all call sites to the intrinic method. + * time constant at all call sites to the intrinsic method. */ @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.PARAMETER) diff -r 4c0a36672095 -r 9e68bd67b745 graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/SystemSubstitutions.java --- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/SystemSubstitutions.java Thu Feb 07 18:59:56 2013 +0100 +++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/snippets/SystemSubstitutions.java Fri Feb 08 10:19:50 2013 +0100 @@ -42,7 +42,7 @@ public static final Descriptor JAVA_TIME_MILLIS = new Descriptor("javaTimeMillis", false, long.class); public static final Descriptor JAVA_TIME_NANOS = new Descriptor("javaTimeNanos", false, long.class); - @MacroSubstitution(macro = ArrayCopyNode.class, isStatic = true) + @MacroSubstitution(macro = ArrayCopyNode.class) public static native void arraycopy(Object src, int srcPos, Object dest, int destPos, int length); @MethodSubstitution diff -r 4c0a36672095 -r 9e68bd67b745 graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java --- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Thu Feb 07 18:59:56 2013 +0100 +++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java Fri Feb 08 10:19:50 2013 +0100 @@ -642,14 +642,14 @@ private JavaMethod lookupMethod(int cpi, int opcode) { eagerResolvingForSnippets(cpi, opcode); JavaMethod result = constantPool.lookupMethod(cpi, opcode); - assert !graphBuilderConfig.eagerResolvingForSnippets() || ((result instanceof ResolvedJavaMethod) && ((ResolvedJavaMethod) result).getDeclaringClass().isInitialized()); + assert !graphBuilderConfig.eagerResolvingForSnippets() || ((result instanceof ResolvedJavaMethod) && ((ResolvedJavaMethod) result).getDeclaringClass().isInitialized()) : result; return result; } private JavaField lookupField(int cpi, int opcode) { eagerResolvingForSnippets(cpi, opcode); JavaField result = constantPool.lookupField(cpi, opcode); - assert !graphBuilderConfig.eagerResolvingForSnippets() || (result instanceof ResolvedJavaField && ((ResolvedJavaField) result).getDeclaringClass().isInitialized()); + assert !graphBuilderConfig.eagerResolvingForSnippets() || (result instanceof ResolvedJavaField && ((ResolvedJavaField) result).getDeclaringClass().isInitialized()) : result; return result; } diff -r 4c0a36672095 -r 9e68bd67b745 graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java --- a/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java Thu Feb 07 18:59:56 2013 +0100 +++ b/graal/com.oracle.graal.lir.amd64/src/com/oracle/graal/lir/amd64/AMD64TestOp.java Fri Feb 08 10:19:50 2013 +0100 @@ -30,7 +30,6 @@ import com.oracle.graal.graph.*; import com.oracle.graal.lir.asm.*; -//@formatter:off public class AMD64TestOp extends AMD64LIRInstruction { @Use({REG}) protected Value x; @@ -55,21 +54,36 @@ public static void emit(TargetMethodAssembler tasm, AMD64MacroAssembler masm, Value x, Value y) { if (isRegister(y)) { switch (x.getKind()) { - case Int: masm.testl(asIntReg(x), asIntReg(y)); break; - case Long: masm.testq(asLongReg(x), asLongReg(y)); break; - default: throw GraalInternalError.shouldNotReachHere(); + case Int: + masm.testl(asIntReg(x), asIntReg(y)); + break; + case Long: + masm.testq(asLongReg(x), asLongReg(y)); + break; + default: + throw GraalInternalError.shouldNotReachHere(); } } else if (isConstant(y)) { switch (x.getKind()) { - case Int: masm.testl(asIntReg(x), tasm.asIntConst(y)); break; - case Long: masm.testq(asLongReg(x), tasm.asIntConst(y)); break; - default: throw GraalInternalError.shouldNotReachHere(); + case Int: + masm.testl(asIntReg(x), tasm.asIntConst(y)); + break; + case Long: + masm.testq(asLongReg(x), tasm.asIntConst(y)); + break; + default: + throw GraalInternalError.shouldNotReachHere(); } } else { switch (x.getKind()) { - case Int: masm.testl(asIntReg(x), tasm.asIntAddr(y)); break; - case Long: masm.testq(asLongReg(x), tasm.asLongAddr(y)); break; - default: throw GraalInternalError.shouldNotReachHere(); + case Int: + masm.testl(asIntReg(x), tasm.asIntAddr(y)); + break; + case Long: + masm.testq(asLongReg(x), tasm.asLongAddr(y)); + break; + default: + throw GraalInternalError.shouldNotReachHere(); } } } diff -r 4c0a36672095 -r 9e68bd67b745 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java Thu Feb 07 18:59:56 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/calc/IntegerTestNode.java Fri Feb 08 10:19:50 2013 +0100 @@ -26,6 +26,11 @@ import com.oracle.graal.nodes.spi.*; import com.oracle.graal.nodes.type.*; +/** + * This node will perform a "test" operation on its arguments. Its result is equivalent to the + * expression "(x & y) == 0", meaning that it will return true if (and only if) no bit is set in + * both x and y. + */ public class IntegerTestNode extends BooleanNode implements Canonicalizable, LIRLowerable { @Input private ValueNode x; diff -r 4c0a36672095 -r 9e68bd67b745 graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/ArrayLengthProvider.java --- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/ArrayLengthProvider.java Thu Feb 07 18:59:56 2013 +0100 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/spi/ArrayLengthProvider.java Fri Feb 08 10:19:50 2013 +0100 @@ -26,5 +26,8 @@ public interface ArrayLengthProvider { + /** + * @return the length of the array described by this node, or null if it is not available + */ ValueNode length(); }