< prev index next >
src/jdk.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaConstant.java
Print this page
*** 355,462 ****
return NULL_POINTER;
default:
throw new IllegalArgumentException(kind.toString());
}
}
-
- /**
- * Returns the zero value for a given numeric kind.
- */
- static JavaConstant zero(JavaKind kind) {
- switch (kind) {
- case Boolean:
- return FALSE;
- case Byte:
- return forByte((byte) 0);
- case Char:
- return forChar((char) 0);
- case Double:
- return DOUBLE_0;
- case Float:
- return FLOAT_0;
- case Int:
- return INT_0;
- case Long:
- return LONG_0;
- case Short:
- return forShort((short) 0);
- default:
- throw new IllegalArgumentException(kind.toString());
- }
- }
-
- /**
- * Returns the one value for a given numeric kind.
- */
- static JavaConstant one(JavaKind kind) {
- switch (kind) {
- case Boolean:
- return TRUE;
- case Byte:
- return forByte((byte) 1);
- case Char:
- return forChar((char) 1);
- case Double:
- return DOUBLE_1;
- case Float:
- return FLOAT_1;
- case Int:
- return INT_1;
- case Long:
- return LONG_1;
- case Short:
- return forShort((short) 1);
- default:
- throw new IllegalArgumentException(kind.toString());
- }
- }
-
- /**
- * Adds two numeric constants.
- */
- static JavaConstant add(JavaConstant x, JavaConstant y) {
- assert x.getJavaKind() == y.getJavaKind();
- switch (x.getJavaKind()) {
- case Byte:
- return forByte((byte) (x.asInt() + y.asInt()));
- case Char:
- return forChar((char) (x.asInt() + y.asInt()));
- case Double:
- return forDouble(x.asDouble() + y.asDouble());
- case Float:
- return forFloat(x.asFloat() + y.asFloat());
- case Int:
- return forInt(x.asInt() + y.asInt());
- case Long:
- return forLong(x.asLong() + y.asLong());
- case Short:
- return forShort((short) (x.asInt() + y.asInt()));
- default:
- throw new IllegalArgumentException(x.getJavaKind().toString());
- }
- }
-
- /**
- * Multiplies two numeric constants.
- */
- static PrimitiveConstant mul(JavaConstant x, JavaConstant y) {
- assert x.getJavaKind() == y.getJavaKind();
- switch (x.getJavaKind()) {
- case Byte:
- return forByte((byte) (x.asInt() * y.asInt()));
- case Char:
- return forChar((char) (x.asInt() * y.asInt()));
- case Double:
- return forDouble(x.asDouble() * y.asDouble());
- case Float:
- return forFloat(x.asFloat() * y.asFloat());
- case Int:
- return forInt(x.asInt() * y.asInt());
- case Long:
- return forLong(x.asLong() * y.asLong());
- case Short:
- return forShort((short) (x.asInt() * y.asInt()));
- default:
- throw new IllegalArgumentException(x.getJavaKind().toString());
- }
- }
}
--- 355,360 ----
< prev index next >