|  | // Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file | 
|  | // for details. All rights reserved. Use of this source code is governed by a | 
|  | // BSD-style license that can be found in the LICENSE file. | 
|  |  | 
|  | // This code is not run directly. It needs to be compiled to dex code. | 
|  | // 'constants.dex' is what is run. | 
|  | package constants; | 
|  |  | 
|  | class Constants { | 
|  |  | 
|  | public static void printInt(int x) { | 
|  | System.out.print(x); | 
|  | } | 
|  |  | 
|  | public static void printLong(long x) { | 
|  | System.out.print(x); | 
|  | } | 
|  |  | 
|  | public static void testConst4() { | 
|  | printInt(-8); | 
|  | printInt(-1); | 
|  | printInt(0); | 
|  | printInt(1); | 
|  | printInt(7); | 
|  | } | 
|  |  | 
|  | public static void testConst16() { | 
|  | printInt(Short.MIN_VALUE); | 
|  | printInt(-9); | 
|  | printInt(8); | 
|  | printInt(Short.MAX_VALUE); | 
|  | } | 
|  |  | 
|  | public static void testConstHigh16() { | 
|  | printInt(0xffff0000); | 
|  | printInt(0xf0000000); | 
|  | printInt(0x0f000000); | 
|  | printInt(0x00f00000); | 
|  | printInt(0x000f0000); | 
|  | printInt(0x80000000); | 
|  | printInt(0x00010000); | 
|  | } | 
|  |  | 
|  | public static void testConst() { | 
|  | printInt(Short.MIN_VALUE - 1); | 
|  | printInt(Short.MAX_VALUE + 1); | 
|  |  | 
|  | printInt(0xffff0001); | 
|  | printInt(0xf0000001); | 
|  | printInt(0x0f000001); | 
|  | printInt(0x00f00001); | 
|  | printInt(0x000f0001); | 
|  | printInt(0x80000001); | 
|  | printInt(0x00010001); | 
|  | } | 
|  |  | 
|  | public static void testConstWide16() { | 
|  | printLong((long) Short.MIN_VALUE); | 
|  | printLong(-1L); | 
|  | printLong(0L); | 
|  | printLong(1L); | 
|  | printLong((long) Short.MAX_VALUE); | 
|  | } | 
|  |  | 
|  | public static void testConstWide32() { | 
|  | printLong((long) Short.MIN_VALUE - 1); | 
|  | printLong((long) Integer.MIN_VALUE); | 
|  | printLong((long) Integer.MAX_VALUE); | 
|  | printLong((long) Short.MAX_VALUE + 1); | 
|  | } | 
|  |  | 
|  | public static void testConstWideHigh16() { | 
|  | printLong(0xffff000000000000L); | 
|  | printLong(0xf000000000000000L); | 
|  | printLong(0x0f00000000000000L); | 
|  | printLong(0x00f0000000000000L); | 
|  | printLong(0x000f000000000000L); | 
|  | printLong(0x8000000000000000L); | 
|  | printLong(0x0001000000000000L); | 
|  | printLong(0x7fff000000000000L); | 
|  | } | 
|  |  | 
|  | public static void testConstWide() { | 
|  | printLong((long) Integer.MIN_VALUE - 1); | 
|  | printLong((long) Integer.MAX_VALUE + 1); | 
|  |  | 
|  | printLong(0xffff7fffffffffffL); | 
|  | printLong(0xffff000000000001L); | 
|  | printLong(0xf000000000000001L); | 
|  | printLong(0x0f00000000000001L); | 
|  | printLong(0x00f0000000000001L); | 
|  | printLong(0x000f000000000001L); | 
|  | printLong(0x8000000000000001L); | 
|  | printLong(0x0001000000000001L); | 
|  | printLong(0x7fffffffffffffffL); | 
|  | printLong(0x7fff000000000001L); | 
|  | } | 
|  |  | 
|  | public static void main(String[] args) { | 
|  | testConst4(); | 
|  | testConst16(); | 
|  | testConstHigh16(); | 
|  | testConst(); | 
|  |  | 
|  | testConstWide16(); | 
|  | testConstWide32(); | 
|  | testConstWideHigh16(); | 
|  | testConstWide(); | 
|  | } | 
|  | } |