< prev index next >

src/jdk.vm.ci/share/classes/jdk.vm.ci.meta/src/jdk/vm/ci/meta/JavaConstant.java

Print this page




 340             case Byte:
 341                 return forByte((byte) 0);
 342             case Char:
 343                 return forChar((char) 0);
 344             case Short:
 345                 return forShort((short) 0);
 346             case Int:
 347                 return INT_0;
 348             case Double:
 349                 return DOUBLE_0;
 350             case Float:
 351                 return FLOAT_0;
 352             case Long:
 353                 return LONG_0;
 354             case Object:
 355                 return NULL_POINTER;
 356             default:
 357                 throw new IllegalArgumentException(kind.toString());
 358         }
 359     }
 360 
 361     /**
 362      * Returns the zero value for a given numeric kind.
 363      */
 364     static JavaConstant zero(JavaKind kind) {
 365         switch (kind) {
 366             case Boolean:
 367                 return FALSE;
 368             case Byte:
 369                 return forByte((byte) 0);
 370             case Char:
 371                 return forChar((char) 0);
 372             case Double:
 373                 return DOUBLE_0;
 374             case Float:
 375                 return FLOAT_0;
 376             case Int:
 377                 return INT_0;
 378             case Long:
 379                 return LONG_0;
 380             case Short:
 381                 return forShort((short) 0);
 382             default:
 383                 throw new IllegalArgumentException(kind.toString());
 384         }
 385     }
 386 
 387     /**
 388      * Returns the one value for a given numeric kind.
 389      */
 390     static JavaConstant one(JavaKind kind) {
 391         switch (kind) {
 392             case Boolean:
 393                 return TRUE;
 394             case Byte:
 395                 return forByte((byte) 1);
 396             case Char:
 397                 return forChar((char) 1);
 398             case Double:
 399                 return DOUBLE_1;
 400             case Float:
 401                 return FLOAT_1;
 402             case Int:
 403                 return INT_1;
 404             case Long:
 405                 return LONG_1;
 406             case Short:
 407                 return forShort((short) 1);
 408             default:
 409                 throw new IllegalArgumentException(kind.toString());
 410         }
 411     }
 412 
 413     /**
 414      * Adds two numeric constants.
 415      */
 416     static JavaConstant add(JavaConstant x, JavaConstant y) {
 417         assert x.getJavaKind() == y.getJavaKind();
 418         switch (x.getJavaKind()) {
 419             case Byte:
 420                 return forByte((byte) (x.asInt() + y.asInt()));
 421             case Char:
 422                 return forChar((char) (x.asInt() + y.asInt()));
 423             case Double:
 424                 return forDouble(x.asDouble() + y.asDouble());
 425             case Float:
 426                 return forFloat(x.asFloat() + y.asFloat());
 427             case Int:
 428                 return forInt(x.asInt() + y.asInt());
 429             case Long:
 430                 return forLong(x.asLong() + y.asLong());
 431             case Short:
 432                 return forShort((short) (x.asInt() + y.asInt()));
 433             default:
 434                 throw new IllegalArgumentException(x.getJavaKind().toString());
 435         }
 436     }
 437 
 438     /**
 439      * Multiplies two numeric constants.
 440      */
 441     static PrimitiveConstant mul(JavaConstant x, JavaConstant y) {
 442         assert x.getJavaKind() == y.getJavaKind();
 443         switch (x.getJavaKind()) {
 444             case Byte:
 445                 return forByte((byte) (x.asInt() * y.asInt()));
 446             case Char:
 447                 return forChar((char) (x.asInt() * y.asInt()));
 448             case Double:
 449                 return forDouble(x.asDouble() * y.asDouble());
 450             case Float:
 451                 return forFloat(x.asFloat() * y.asFloat());
 452             case Int:
 453                 return forInt(x.asInt() * y.asInt());
 454             case Long:
 455                 return forLong(x.asLong() * y.asLong());
 456             case Short:
 457                 return forShort((short) (x.asInt() * y.asInt()));
 458             default:
 459                 throw new IllegalArgumentException(x.getJavaKind().toString());
 460         }
 461     }
 462 }


 340             case Byte:
 341                 return forByte((byte) 0);
 342             case Char:
 343                 return forChar((char) 0);
 344             case Short:
 345                 return forShort((short) 0);
 346             case Int:
 347                 return INT_0;
 348             case Double:
 349                 return DOUBLE_0;
 350             case Float:
 351                 return FLOAT_0;
 352             case Long:
 353                 return LONG_0;
 354             case Object:
 355                 return NULL_POINTER;
 356             default:
 357                 throw new IllegalArgumentException(kind.toString());
 358         }
 359     }






































































































 360 }
< prev index next >