changeset 1423:760213a60e8b

* rewrite of the code installation * partial support for safepoints * macro-based CiTargetMethod interface * code stub support
author Lukas Stadler <lukas.stadler@oracle.com>
date Mon, 16 Aug 2010 18:59:36 -0700
parents 3483ec571caf
children 1ea65e9d943c
files .cproject .hgignore c1x4hotspotsrc/HotSpotTest/.classpath c1x4hotspotsrc/HotSpotTest/.project c1x4hotspotsrc/HotSpotTest/.settings/org.eclipse.jdt.core.prefs c1x4hotspotsrc/HotSpotTest/src/C1XCompiledTest.java c1x4hotspotsrc/HotSpotTest/src/C1XTest.java c1x4hotspotsrc/HotSpotTest/src/jttTests.java c1x4hotspotsrc/HotSpotVM/.settings/org.eclipse.jdt.core.prefs c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/C1XHotSpotTests.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/CompilerObject.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotConstantPool.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotInternalObject.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethod.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotProxy.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTarget.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTargetMethod.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/InvocationSocket.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Logger.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/LoggingProxy.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntriesNative.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExits.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/Logger.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/LoggingProxy.java c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/server/CompilationServer.java src/cpu/x86/vm/c1_Runtime1_x86.cpp src/share/vm/c1x/c1x_Compiler.cpp src/share/vm/c1x/c1x_Compiler.hpp src/share/vm/c1x/c1x_VMEntries.cpp src/share/vm/c1x/c1x_VMEntries.hpp src/share/vm/c1x/c1x_VMExits.cpp src/share/vm/c1x/c1x_VMExits.hpp src/share/vm/classfile/systemDictionary.hpp src/share/vm/classfile/vmSymbols.hpp src/share/vm/code/compiledIC.cpp src/share/vm/code/nmethod.cpp src/share/vm/interpreter/rewriter.cpp src/share/vm/interpreter/templateTable.cpp
diffstat 51 files changed, 26604 insertions(+), 1287 deletions(-) [+]
line wrap: on
line diff
--- a/.cproject	Mon Aug 02 15:44:38 2010 -0700
+++ b/.cproject	Mon Aug 16 18:59:36 2010 -0700
@@ -69,10 +69,10 @@
 					<sourceEntries>
 						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src/share/vm"/>
 						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src/cpu/x86/vm"/>
-						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="build/solaris/solaris_amd64_compiler1/generated"/>
 						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src/os/linux/vm"/>
 						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src/os_cpu/linux_x86"/>
 						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src/os/linux/launcher"/>
+						<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="build/linux/linux_amd64_compiler1/generated"/>
 					</sourceEntries>
 				</configuration>
 			</storageModule>
--- a/.hgignore	Mon Aug 02 15:44:38 2010 -0700
+++ b/.hgignore	Mon Aug 16 18:59:36 2010 -0700
@@ -7,6 +7,7 @@
 .swp$
 .class$
 .log$
+output.txt$
 /nbproject/private/
 ^src/share/tools/hsdis/build/
 ^src/share/tools/IdealGraphVisualizer/[a-zA-Z0-9]*/build/
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotTest/.classpath	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/Assembler"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/Base"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/C1X"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/CRI"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/HotSpotVM"/>
+	<classpathentry combineaccessrules="false" kind="src" path="/VM"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotTest/.project	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>HotSpotTest</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotTest/.settings/org.eclipse.jdt.core.prefs	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,12 @@
+#Fri Jul 09 15:51:33 PDT 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotTest/src/C1XCompiledTest.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,34 @@
+public class C1XCompiledTest {
+
+	static class A {
+		int j;
+	}
+
+	static class B extends A {
+		int k;
+	}
+
+	static class C extends B {
+		int l;
+	}
+
+	static long c = 5;
+	static long j = 1000;
+
+	public long doCalc(int[] a) {
+		return a.length;
+	}
+
+	public long doCalc(int a, int b, Object o) {
+		if (o instanceof A) {
+			return 0;
+		} else {
+			long k = 5;
+			for (int i = 0; i < 10; i++) {
+				k += c;
+			}
+			j += k;
+			return a + b + k;
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotTest/src/C1XTest.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,23 @@
+import java.io.IOException;
+
+public class C1XTest {
+
+	public static void main(String[] args) throws IOException {
+		/*
+		 * new C1XCompiledTest.C(); System.out.println("--- instanceof A");
+		 * System.out.println(new C1XCompiledTest().doCalc(10, 3,
+		 * C1XTest.class)); System.out.println("B instanceof A");
+		 * System.out.println(new C1XCompiledTest().doCalc(10, 3, new
+		 * C1XCompiledTest.B())); System.out.println("A instanceof A");
+		 * System.out.println(new C1XCompiledTest().doCalc(10, 3, new
+		 * C1XCompiledTest.A())); System.out.println("end");
+		 */
+		new C1XCompiledTest.B();
+		System.out.println(new C1XCompiledTest().doCalc(10, 3, C1XTest.class));
+		/*
+		 * for (int l = 0; l < 4; l++) { try { System.out.println(new
+		 * C1XCompiledTest().doCalc(new int[l])); } catch (Throwable t) {
+		 * t.printStackTrace(); }}
+		 */
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotTest/src/jttTests.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,23860 @@
+
+import com.sun.hotspot.c1x.logging.Logger;
+
+public class jttTests {
+
+	public static void main(String[] args) {
+		runTests(128, 128);
+		Logger.info("total: " + executed + " tests executed, " + passed + " passed, " + failed + " failed");
+	}
+
+	private static int testNumber;
+	private static String testName;
+	
+	private static int executed = 0;
+	private static int passed = 0;
+	private static int failed = 0;
+	
+	
+	public static boolean runTests(int start, int end) {
+		while (start <= end) {
+			testNumber = start;
+			if (!runTest(start)) {
+				return false;
+			}
+			start++;
+		}
+		return true;
+	}
+
+	static void begin(String testName) {
+		jttTests.testName = testName;
+		executed++;
+	}
+
+	static void pass() {
+		Logger.info("# " + testNumber + ": " + testName + " passed");
+		passed++;
+	}
+
+	static void fail(String runString) {
+		Logger.info("# " + testNumber + ": " + testName + " failed for " +runString);
+		failed++;
+	}
+
+	static void fail(String runString, Throwable thrown) {
+		Logger.info("# " + testNumber + ": " + testName + " failed for " +runString +", exception " + thrown);
+		failed++;
+	}
+
+	// Checkstyle: stop
+	// GENERATED TEST RUNS
+	public static boolean runTest(int num) {
+		switch (num) {
+		case 0:
+			jtt_bytecode_BC_aaload();
+			break;
+		case 1:
+			jtt_bytecode_BC_aaload_1();
+			break;
+		case 2:
+			jtt_bytecode_BC_aastore();
+			break;
+		case 3:
+			jtt_bytecode_BC_aload_0();
+			break;
+		case 4:
+			jtt_bytecode_BC_aload_1();
+			break;
+		case 5:
+			jtt_bytecode_BC_aload_2();
+			break;
+		case 6:
+			jtt_bytecode_BC_aload_3();
+			break;
+		case 7:
+			jtt_bytecode_BC_anewarray();
+			break;
+		case 8:
+			jtt_bytecode_BC_areturn();
+			break;
+		case 9:
+			jtt_bytecode_BC_arraylength();
+			break;
+		case 10:
+			//jtt_bytecode_BC_athrow();
+			break;
+		case 11:
+			jtt_bytecode_BC_baload();
+			break;
+		case 12:
+			jtt_bytecode_BC_bastore();
+			break;
+		case 13:
+			jtt_bytecode_BC_caload();
+			break;
+		case 14:
+			jtt_bytecode_BC_castore();
+			break;
+		case 15:
+			//jtt_bytecode_BC_checkcast01();
+			break;
+		case 16:
+			//jtt_bytecode_BC_checkcast02();
+			break;
+		case 17:
+			jtt_bytecode_BC_d2f();
+			break;
+		case 18:
+			//jtt_bytecode_BC_d2i01();
+			break;
+		case 19:
+			//jtt_bytecode_BC_d2i02();
+			break;
+		case 20:
+			//jtt_bytecode_BC_d2l01();
+			break;
+		case 21:
+			//jtt_bytecode_BC_d2l02();
+			break;
+		case 22:
+			jtt_bytecode_BC_dadd();
+			break;
+		case 23:
+			jtt_bytecode_BC_daload();
+			break;
+		case 24:
+			jtt_bytecode_BC_dastore();
+			break;
+		case 25:
+			jtt_bytecode_BC_dcmp01();
+			break;
+		case 26:
+			jtt_bytecode_BC_dcmp02();
+			break;
+		case 27:
+			jtt_bytecode_BC_dcmp03();
+			break;
+		case 28:
+			jtt_bytecode_BC_dcmp04();
+			break;
+		case 29:
+			jtt_bytecode_BC_dcmp05();
+			break;
+		case 30:
+			jtt_bytecode_BC_dcmp06();
+			break;
+		case 31:
+			jtt_bytecode_BC_dcmp07();
+			break;
+		case 32:
+			jtt_bytecode_BC_dcmp08();
+			break;
+		case 33:
+			jtt_bytecode_BC_dcmp09();
+			break;
+		case 34:
+			jtt_bytecode_BC_dcmp10();
+			break;
+		case 35:
+			jtt_bytecode_BC_ddiv();
+			break;
+		case 36:
+			jtt_bytecode_BC_dmul();
+			break;
+		case 37:
+			jtt_bytecode_BC_dneg();
+			break;
+		case 38:
+			//jtt_bytecode_BC_drem();
+			break;
+		case 39:
+			jtt_bytecode_BC_dreturn();
+			break;
+		case 40:
+			jtt_bytecode_BC_dsub();
+			break;
+		case 41:
+			jtt_bytecode_BC_f2d();
+			break;
+		case 42:
+			jtt_bytecode_BC_f2i01();
+			break;
+		case 43:
+			jtt_bytecode_BC_f2i02();
+			break;
+		case 44:
+			jtt_bytecode_BC_f2l01();
+			break;
+		case 45:
+			jtt_bytecode_BC_f2l02();
+			break;
+		case 46:
+			jtt_bytecode_BC_fadd();
+			break;
+		case 47:
+			jtt_bytecode_BC_faload();
+			break;
+		case 48:
+			jtt_bytecode_BC_fastore();
+			break;
+		case 49:
+			jtt_bytecode_BC_fcmp01();
+			break;
+		case 50:
+			jtt_bytecode_BC_fcmp02();
+			break;
+		case 51:
+			jtt_bytecode_BC_fcmp03();
+			break;
+		case 52:
+			jtt_bytecode_BC_fcmp04();
+			break;
+		case 53:
+			jtt_bytecode_BC_fcmp05();
+			break;
+		case 54:
+			jtt_bytecode_BC_fcmp06();
+			break;
+		case 55:
+			jtt_bytecode_BC_fcmp07();
+			break;
+		case 56:
+			jtt_bytecode_BC_fcmp08();
+			break;
+		case 57:
+			jtt_bytecode_BC_fcmp09();
+			break;
+		case 58:
+			jtt_bytecode_BC_fcmp10();
+			break;
+		case 59:
+			jtt_bytecode_BC_fdiv();
+			break;
+		case 60:
+			jtt_bytecode_BC_fload();
+			break;
+		case 61:
+			jtt_bytecode_BC_fload_2();
+			break;
+		case 62:
+			jtt_bytecode_BC_fmul();
+			break;
+		case 63:
+			jtt_bytecode_BC_fneg();
+			break;
+		case 64:
+			//jtt_bytecode_BC_frem();
+			break;
+		case 65:
+			jtt_bytecode_BC_freturn();
+			break;
+		case 66:
+			jtt_bytecode_BC_fsub();
+			break;
+		case 67:
+			jtt_bytecode_BC_getfield();
+			break;
+		case 68:
+			jtt_bytecode_BC_getstatic_b();
+			break;
+		case 69:
+			jtt_bytecode_BC_getstatic_c();
+			break;
+		case 70:
+			jtt_bytecode_BC_getstatic_d();
+			break;
+		case 71:
+			jtt_bytecode_BC_getstatic_f();
+			break;
+		case 72:
+			jtt_bytecode_BC_getstatic_i();
+			break;
+		case 73:
+			jtt_bytecode_BC_getstatic_l();
+			break;
+		case 74:
+			jtt_bytecode_BC_getstatic_s();
+			break;
+		case 75:
+			jtt_bytecode_BC_getstatic_z();
+			break;
+		case 76:
+			jtt_bytecode_BC_i2b();
+			break;
+		case 77:
+			jtt_bytecode_BC_i2c();
+			break;
+		case 78:
+			jtt_bytecode_BC_i2d();
+			break;
+		case 79:
+			jtt_bytecode_BC_i2f();
+			break;
+		case 80:
+			jtt_bytecode_BC_i2l();
+			break;
+		case 81:
+			jtt_bytecode_BC_i2s();
+			break;
+		case 82:
+			jtt_bytecode_BC_iadd();
+			break;
+		case 83:
+			jtt_bytecode_BC_iadd2();
+			break;
+		case 84:
+			jtt_bytecode_BC_iadd3();
+			break;
+		case 85:
+			jtt_bytecode_BC_iaload();
+			break;
+		case 86:
+			jtt_bytecode_BC_iand();
+			break;
+		case 87:
+			jtt_bytecode_BC_iastore();
+			break;
+		case 88:
+			jtt_bytecode_BC_iconst();
+			break;
+		case 89:
+			jtt_bytecode_BC_idiv();
+			break;
+		case 90:
+			jtt_bytecode_BC_idiv2();
+			break;
+		case 91:
+			jtt_bytecode_BC_ifeq();
+			break;
+		case 92:
+			jtt_bytecode_BC_ifeq_2();
+			break;
+		case 93:
+			jtt_bytecode_BC_ifeq_3();
+			break;
+		case 94:
+			jtt_bytecode_BC_ifge();
+			break;
+		case 95:
+			jtt_bytecode_BC_ifge_2();
+			break;
+		case 96:
+			jtt_bytecode_BC_ifge_3();
+			break;
+		case 97:
+			jtt_bytecode_BC_ifgt();
+			break;
+		case 98:
+			jtt_bytecode_BC_ificmplt1();
+			break;
+		case 99:
+			jtt_bytecode_BC_ificmplt2();
+			break;
+		case 100:
+			jtt_bytecode_BC_ificmpne1();
+			break;
+		case 101:
+			jtt_bytecode_BC_ificmpne2();
+			break;
+		case 102:
+			jtt_bytecode_BC_ifle();
+			break;
+		case 103:
+			jtt_bytecode_BC_iflt();
+			break;
+		case 104:
+			jtt_bytecode_BC_ifne();
+			break;
+		case 105:
+			jtt_bytecode_BC_ifnonnull();
+			break;
+		case 106:
+			jtt_bytecode_BC_ifnonnull_2();
+			break;
+		case 107:
+			jtt_bytecode_BC_ifnonnull_3();
+			break;
+		case 108:
+			jtt_bytecode_BC_ifnull();
+			break;
+		case 109:
+			jtt_bytecode_BC_ifnull_2();
+			break;
+		case 110:
+			jtt_bytecode_BC_ifnull_3();
+			break;
+		case 111:
+			jtt_bytecode_BC_iinc_1();
+			break;
+		case 112:
+			jtt_bytecode_BC_iinc_2();
+			break;
+		case 113:
+			jtt_bytecode_BC_iinc_3();
+			break;
+		case 114:
+			jtt_bytecode_BC_iinc_4();
+			break;
+		case 115:
+			jtt_bytecode_BC_iload_0();
+			break;
+		case 116:
+			jtt_bytecode_BC_iload_0_1();
+			break;
+		case 117:
+			jtt_bytecode_BC_iload_0_2();
+			break;
+		case 118:
+			jtt_bytecode_BC_iload_1();
+			break;
+		case 119:
+			jtt_bytecode_BC_iload_1_1();
+			break;
+		case 120:
+			jtt_bytecode_BC_iload_2();
+			break;
+		case 121:
+			jtt_bytecode_BC_iload_3();
+			break;
+		case 122:
+			jtt_bytecode_BC_imul();
+			break;
+		case 123:
+			jtt_bytecode_BC_ineg();
+			break;
+		case 124:
+			jtt_bytecode_BC_instanceof();
+			break;
+		case 125:
+			jtt_bytecode_BC_invokeinterface();
+			break;
+		case 126:
+			jtt_bytecode_BC_invokespecial();
+			break;
+		case 127:
+			jtt_bytecode_BC_invokespecial2();
+			break;
+		case 128:
+			jtt_bytecode_BC_invokestatic();
+			break;
+		case 129:
+			jtt_bytecode_BC_invokevirtual();
+			break;
+		case 130:
+			jtt_bytecode_BC_ior();
+			break;
+		case 131:
+			jtt_bytecode_BC_irem();
+			break;
+		case 132:
+			jtt_bytecode_BC_irem2();
+			break;
+		case 133:
+			jtt_bytecode_BC_ireturn();
+			break;
+		case 134:
+			jtt_bytecode_BC_ishl();
+			break;
+		case 135:
+			jtt_bytecode_BC_ishr();
+			break;
+		case 136:
+			jtt_bytecode_BC_isub();
+			break;
+		case 137:
+			jtt_bytecode_BC_iushr();
+			break;
+		case 138:
+			jtt_bytecode_BC_ixor();
+			break;
+		case 139:
+			jtt_bytecode_BC_l2d();
+			break;
+		case 140:
+			jtt_bytecode_BC_l2f();
+			break;
+		case 141:
+			jtt_bytecode_BC_l2i();
+			break;
+		case 142:
+			jtt_bytecode_BC_ladd();
+			break;
+		case 143:
+			jtt_bytecode_BC_ladd2();
+			break;
+		case 144:
+			jtt_bytecode_BC_laload();
+			break;
+		case 145:
+			jtt_bytecode_BC_land();
+			break;
+		case 146:
+			jtt_bytecode_BC_lastore();
+			break;
+		case 147:
+			jtt_bytecode_BC_lcmp();
+			break;
+		case 148:
+			jtt_bytecode_BC_ldc_01();
+			break;
+		case 149:
+			jtt_bytecode_BC_ldc_02();
+			break;
+		case 150:
+			jtt_bytecode_BC_ldc_03();
+			break;
+		case 151:
+			jtt_bytecode_BC_ldc_04();
+			break;
+		case 152:
+			jtt_bytecode_BC_ldc_05();
+			break;
+		case 153:
+			jtt_bytecode_BC_ldc_06();
+			break;
+		case 154:
+			jtt_bytecode_BC_ldiv();
+			break;
+		case 155:
+			jtt_bytecode_BC_ldiv2();
+			break;
+		case 156:
+			jtt_bytecode_BC_lload_0();
+			break;
+		case 157:
+			jtt_bytecode_BC_lload_01();
+			break;
+		case 158:
+			jtt_bytecode_BC_lload_1();
+			break;
+		case 159:
+			jtt_bytecode_BC_lload_2();
+			break;
+		case 160:
+			jtt_bytecode_BC_lload_3();
+			break;
+		case 161:
+			jtt_bytecode_BC_lmul();
+			break;
+		case 162:
+			jtt_bytecode_BC_lneg();
+			break;
+		case 163:
+			jtt_bytecode_BC_lookupswitch01();
+			break;
+		case 164:
+			jtt_bytecode_BC_lookupswitch02();
+			break;
+		case 165:
+			jtt_bytecode_BC_lookupswitch03();
+			break;
+		case 166:
+			jtt_bytecode_BC_lookupswitch04();
+			break;
+		case 167:
+			jtt_bytecode_BC_lor();
+			break;
+		case 168:
+			jtt_bytecode_BC_lrem();
+			break;
+		case 169:
+			jtt_bytecode_BC_lrem2();
+			break;
+		case 170:
+			jtt_bytecode_BC_lreturn();
+			break;
+		case 171:
+			jtt_bytecode_BC_lshl();
+			break;
+		case 172:
+			jtt_bytecode_BC_lshr();
+			break;
+		case 173:
+			jtt_bytecode_BC_lsub();
+			break;
+		case 174:
+			jtt_bytecode_BC_lushr();
+			break;
+		case 175:
+			jtt_bytecode_BC_lxor();
+			break;
+		case 176:
+			jtt_bytecode_BC_monitorenter();
+			break;
+		case 177:
+			jtt_bytecode_BC_monitorenter02();
+			break;
+		case 178:
+			jtt_bytecode_BC_multianewarray01();
+			break;
+		case 179:
+			jtt_bytecode_BC_multianewarray02();
+			break;
+		case 180:
+			jtt_bytecode_BC_multianewarray03();
+			break;
+		case 181:
+			jtt_bytecode_BC_multianewarray04();
+			break;
+		case 182:
+			jtt_bytecode_BC_new();
+			break;
+		case 183:
+			jtt_bytecode_BC_newarray();
+			break;
+		case 184:
+			jtt_bytecode_BC_putfield();
+			break;
+		case 185:
+			jtt_bytecode_BC_putstatic();
+			break;
+		case 186:
+			jtt_bytecode_BC_saload();
+			break;
+		case 187:
+			jtt_bytecode_BC_sastore();
+			break;
+		case 188:
+			jtt_bytecode_BC_tableswitch();
+			break;
+		case 189:
+			jtt_bytecode_BC_tableswitch2();
+			break;
+		case 190:
+			jtt_bytecode_BC_tableswitch3();
+			break;
+		case 191:
+			jtt_bytecode_BC_tableswitch4();
+			break;
+		case 192:
+			jtt_bytecode_BC_wide01();
+			break;
+		case 193:
+			jtt_bytecode_BC_wide02();
+			break;
+		case 194:
+			jtt_optimize_ArrayLength01();
+			break;
+		case 195:
+			jtt_optimize_BC_idiv_16();
+			break;
+		case 196:
+			jtt_optimize_BC_idiv_4();
+			break;
+		case 197:
+			jtt_optimize_BC_imul_16();
+			break;
+		case 198:
+			jtt_optimize_BC_imul_4();
+			break;
+		case 199:
+			jtt_optimize_BC_ldiv_16();
+			break;
+		case 200:
+			jtt_optimize_BC_ldiv_4();
+			break;
+		case 201:
+			jtt_optimize_BC_lmul_16();
+			break;
+		case 202:
+			jtt_optimize_BC_lmul_4();
+			break;
+		case 203:
+			jtt_optimize_BC_lshr_C16();
+			break;
+		case 204:
+			jtt_optimize_BC_lshr_C24();
+			break;
+		case 205:
+			jtt_optimize_BC_lshr_C32();
+			break;
+		case 206:
+			jtt_optimize_BlockSkip01();
+			break;
+		case 207:
+			jtt_optimize_Cmov01();
+			break;
+		case 208:
+			jtt_optimize_DeadCode01();
+			break;
+		case 209:
+			jtt_optimize_Fold_Cast01();
+			break;
+		case 210:
+			jtt_optimize_Fold_Convert01();
+			break;
+		case 211:
+			jtt_optimize_Fold_Convert02();
+			break;
+		case 212:
+			jtt_optimize_Fold_Convert03();
+			break;
+		case 213:
+			jtt_optimize_Fold_Convert04();
+			break;
+		case 214:
+			jtt_optimize_Fold_Double01();
+			break;
+		case 215:
+			jtt_optimize_Fold_Double02();
+			break;
+		case 216:
+			jtt_optimize_Fold_Float01();
+			break;
+		case 217:
+			jtt_optimize_Fold_Float02();
+			break;
+		case 218:
+			jtt_optimize_Fold_InstanceOf01();
+			break;
+		case 219:
+			jtt_optimize_Fold_Int01();
+			break;
+		case 220:
+			jtt_optimize_Fold_Int02();
+			break;
+		case 221:
+			jtt_optimize_Fold_Long01();
+			break;
+		case 222:
+			jtt_optimize_Fold_Long02();
+			break;
+		case 223:
+			jtt_optimize_Fold_Math01();
+			break;
+		case 224:
+			jtt_optimize_Inline01();
+			break;
+		case 225:
+			jtt_optimize_Inline02();
+			break;
+		case 226:
+			jtt_optimize_List_reorder_bug();
+			break;
+		case 227:
+			jtt_optimize_NCE_01();
+			break;
+		case 228:
+			jtt_optimize_NCE_02();
+			break;
+		case 229:
+			jtt_optimize_NCE_03();
+			break;
+		case 230:
+			jtt_optimize_NCE_04();
+			break;
+		case 231:
+			jtt_optimize_NCE_FlowSensitive01();
+			break;
+		case 232:
+			jtt_optimize_NCE_FlowSensitive02();
+			break;
+		case 233:
+			jtt_optimize_NCE_FlowSensitive03();
+			break;
+		case 234:
+			jtt_optimize_NCE_FlowSensitive04();
+			break;
+		case 235:
+			jtt_optimize_Narrow_byte01();
+			break;
+		case 236:
+			jtt_optimize_Narrow_byte02();
+			break;
+		case 237:
+			jtt_optimize_Narrow_byte03();
+			break;
+		case 238:
+			jtt_optimize_Narrow_char01();
+			break;
+		case 239:
+			jtt_optimize_Narrow_char02();
+			break;
+		case 240:
+			jtt_optimize_Narrow_char03();
+			break;
+		case 241:
+			jtt_optimize_Narrow_short01();
+			break;
+		case 242:
+			jtt_optimize_Narrow_short02();
+			break;
+		case 243:
+			jtt_optimize_Narrow_short03();
+			break;
+		case 244:
+			jtt_optimize_Phi01();
+			break;
+		case 245:
+			jtt_optimize_Phi02();
+			break;
+		case 246:
+			jtt_optimize_Phi03();
+			break;
+		case 247:
+			jtt_optimize_Reduce_Convert01();
+			break;
+		case 248:
+			jtt_optimize_Reduce_Double01();
+			break;
+		case 249:
+			jtt_optimize_Reduce_Float01();
+			break;
+		case 250:
+			jtt_optimize_Reduce_Int01();
+			break;
+		case 251:
+			jtt_optimize_Reduce_Int02();
+			break;
+		case 252:
+			jtt_optimize_Reduce_Int03();
+			break;
+		case 253:
+			jtt_optimize_Reduce_Int04();
+			break;
+		case 254:
+			jtt_optimize_Reduce_IntShift01();
+			break;
+		case 255:
+			jtt_optimize_Reduce_IntShift02();
+			break;
+		case 256:
+			jtt_optimize_Reduce_Long01();
+			break;
+		case 257:
+			jtt_optimize_Reduce_Long02();
+			break;
+		case 258:
+			jtt_optimize_Reduce_Long03();
+			break;
+		case 259:
+			jtt_optimize_Reduce_Long04();
+			break;
+		case 260:
+			jtt_optimize_Reduce_LongShift01();
+			break;
+		case 261:
+			jtt_optimize_Reduce_LongShift02();
+			break;
+		case 262:
+			jtt_optimize_Switch01();
+			break;
+		case 263:
+			jtt_optimize_Switch02();
+			break;
+		case 264:
+			jtt_optimize_TypeCastElem();
+			break;
+		case 265:
+			jtt_optimize_VN_Cast01();
+			break;
+		case 266:
+			jtt_optimize_VN_Cast02();
+			break;
+		case 267:
+			jtt_optimize_VN_Convert01();
+			break;
+		case 268:
+			jtt_optimize_VN_Convert02();
+			break;
+		case 269:
+			jtt_optimize_VN_Double01();
+			break;
+		case 270:
+			jtt_optimize_VN_Double02();
+			break;
+		case 271:
+			jtt_optimize_VN_Field01();
+			break;
+		case 272:
+			jtt_optimize_VN_Field02();
+			break;
+		case 273:
+			jtt_optimize_VN_Float01();
+			break;
+		case 274:
+			jtt_optimize_VN_Float02();
+			break;
+		case 275:
+			jtt_optimize_VN_InstanceOf01();
+			break;
+		case 276:
+			jtt_optimize_VN_InstanceOf02();
+			break;
+		case 277:
+			jtt_optimize_VN_InstanceOf03();
+			break;
+		case 278:
+			jtt_optimize_VN_Int01();
+			break;
+		case 279:
+			jtt_optimize_VN_Int02();
+			break;
+		case 280:
+			jtt_optimize_VN_Int03();
+			break;
+		case 281:
+			jtt_optimize_VN_Long01();
+			break;
+		case 282:
+			jtt_optimize_VN_Long02();
+			break;
+		case 283:
+			jtt_optimize_VN_Long03();
+			break;
+		case 284:
+			jtt_optimize_VN_Loop01();
+			break;
+		case 285:
+			jtt_except_BC_aaload0();
+			break;
+		case 286:
+			jtt_except_BC_aaload1();
+			break;
+		case 287:
+			jtt_except_BC_aastore0();
+			break;
+		case 288:
+			jtt_except_BC_aastore1();
+			break;
+		case 289:
+			jtt_except_BC_anewarray();
+			break;
+		case 290:
+			jtt_except_BC_arraylength();
+			break;
+		case 291:
+			jtt_except_BC_athrow0();
+			break;
+		case 292:
+			jtt_except_BC_athrow1();
+			break;
+		case 293:
+			jtt_except_BC_athrow2();
+			break;
+		case 294:
+			jtt_except_BC_athrow3();
+			break;
+		case 295:
+			jtt_except_BC_baload();
+			break;
+		case 296:
+			jtt_except_BC_bastore();
+			break;
+		case 297:
+			jtt_except_BC_caload();
+			break;
+		case 298:
+			jtt_except_BC_castore();
+			break;
+		case 299:
+			jtt_except_BC_checkcast();
+			break;
+		case 300:
+			jtt_except_BC_checkcast1();
+			break;
+		case 301:
+			jtt_except_BC_checkcast2();
+			break;
+		case 302:
+			jtt_except_BC_checkcast3();
+			break;
+		case 303:
+			jtt_except_BC_checkcast4();
+			break;
+		case 304:
+			jtt_except_BC_checkcast5();
+			break;
+		case 305:
+			jtt_except_BC_checkcast6();
+			break;
+		case 306:
+			jtt_except_BC_daload();
+			break;
+		case 307:
+			jtt_except_BC_dastore();
+			break;
+		case 308:
+			jtt_except_BC_faload();
+			break;
+		case 309:
+			jtt_except_BC_fastore();
+			break;
+		case 310:
+			jtt_except_BC_getfield();
+			break;
+		case 311:
+			jtt_except_BC_iaload();
+			break;
+		case 312:
+			jtt_except_BC_iastore();
+			break;
+		case 313:
+			jtt_except_BC_idiv();
+			break;
+		case 314:
+			jtt_except_BC_idiv2();
+			break;
+		case 315:
+			jtt_except_BC_invokespecial01();
+			break;
+		case 316:
+			jtt_except_BC_invokevirtual01();
+			break;
+		case 317:
+			jtt_except_BC_invokevirtual02();
+			break;
+		case 318:
+			jtt_except_BC_irem();
+			break;
+		case 319:
+			jtt_except_BC_laload();
+			break;
+		case 320:
+			jtt_except_BC_lastore();
+			break;
+		case 321:
+			jtt_except_BC_ldiv();
+			break;
+		case 322:
+			jtt_except_BC_ldiv2();
+			break;
+		case 323:
+			jtt_except_BC_lrem();
+			break;
+		case 324:
+			jtt_except_BC_monitorenter();
+			break;
+		case 325:
+			jtt_except_BC_multianewarray();
+			break;
+		case 326:
+			jtt_except_BC_newarray();
+			break;
+		case 327:
+			jtt_except_BC_putfield();
+			break;
+		case 328:
+			jtt_except_BC_saload();
+			break;
+		case 329:
+			jtt_except_BC_sastore();
+			break;
+		case 330:
+			jtt_except_Catch_Loop01();
+			break;
+		case 331:
+			jtt_except_Catch_Loop02();
+			break;
+		case 332:
+			jtt_except_Catch_NASE_1();
+			break;
+		case 333:
+			jtt_except_Catch_NASE_2();
+			break;
+		case 334:
+			jtt_except_Catch_NPE_00();
+			break;
+		case 335:
+			jtt_except_Catch_NPE_01();
+			break;
+		case 336:
+			jtt_except_Catch_NPE_02();
+			break;
+		case 337:
+			jtt_except_Catch_NPE_03();
+			break;
+		case 338:
+			jtt_except_Catch_NPE_04();
+			break;
+		case 339:
+			jtt_except_Catch_NPE_05();
+			break;
+		case 340:
+			jtt_except_Catch_NPE_06();
+			break;
+		case 341:
+			jtt_except_Catch_NPE_07();
+			break;
+		case 342:
+			jtt_except_Catch_NPE_08();
+			break;
+		case 343:
+			jtt_except_Catch_NPE_09();
+			break;
+		case 344:
+			jtt_except_Catch_NPE_10();
+			break;
+		case 345:
+			jtt_except_Catch_NPE_11();
+			break;
+		case 346:
+			jtt_except_Catch_StackOverflowError_01();
+			break;
+		case 347:
+			jtt_except_Catch_StackOverflowError_02();
+			break;
+		case 348:
+			jtt_except_Catch_StackOverflowError_03();
+			break;
+		case 349:
+			jtt_except_Catch_Two01();
+			break;
+		case 350:
+			jtt_except_Catch_Two02();
+			break;
+		case 351:
+			jtt_except_Catch_Two03();
+			break;
+		case 352:
+			jtt_except_Except_Synchronized01();
+			break;
+		case 353:
+			jtt_except_Except_Synchronized02();
+			break;
+		case 354:
+			jtt_except_Except_Synchronized03();
+			break;
+		case 355:
+			jtt_except_Except_Synchronized04();
+			break;
+		case 356:
+			jtt_except_Except_Synchronized05();
+			break;
+		case 357:
+			jtt_except_Finally01();
+			break;
+		case 358:
+			jtt_except_Finally02();
+			break;
+		case 359:
+			jtt_except_StackTrace_AIOOBE_00();
+			break;
+		case 360:
+			jtt_except_StackTrace_CCE_00();
+			break;
+		case 361:
+			jtt_except_StackTrace_NPE_00();
+			break;
+		case 362:
+			jtt_except_StackTrace_NPE_01();
+			break;
+		case 363:
+			jtt_except_StackTrace_NPE_02();
+			break;
+		case 364:
+			jtt_except_StackTrace_NPE_03();
+			break;
+		case 365:
+			jtt_except_Throw_InCatch01();
+			break;
+		case 366:
+			jtt_except_Throw_InCatch02();
+			break;
+		case 367:
+			jtt_except_Throw_InCatch03();
+			break;
+		case 368:
+			jtt_except_Throw_NPE_01();
+			break;
+		case 369:
+			jtt_except_Throw_Synchronized01();
+			break;
+		case 370:
+			jtt_except_Throw_Synchronized02();
+			break;
+		case 371:
+			jtt_except_Throw_Synchronized03();
+			break;
+		case 372:
+			jtt_except_Throw_Synchronized04();
+			break;
+		case 373:
+			jtt_except_Throw_Synchronized05();
+			break;
+		case 374:
+			jtt_lang_Boxed_TYPE_01();
+			break;
+		case 375:
+			jtt_lang_Bridge_method01();
+			break;
+		case 376:
+			jtt_lang_ClassLoader_loadClass01();
+			break;
+		case 377:
+			jtt_lang_Class_Literal01();
+			break;
+		case 378:
+			jtt_lang_Class_asSubclass01();
+			break;
+		case 379:
+			jtt_lang_Class_cast01();
+			break;
+		case 380:
+			jtt_lang_Class_cast02();
+			break;
+		case 381:
+			jtt_lang_Class_forName01();
+			break;
+		case 382:
+			jtt_lang_Class_forName02();
+			break;
+		case 383:
+			jtt_lang_Class_forName03();
+			break;
+		case 384:
+			jtt_lang_Class_forName04();
+			break;
+		case 385:
+			jtt_lang_Class_forName05();
+			break;
+		case 386:
+			jtt_lang_Class_getComponentType01();
+			break;
+		case 387:
+			jtt_lang_Class_getInterfaces01();
+			break;
+		case 388:
+			jtt_lang_Class_getName01();
+			break;
+		case 389:
+			jtt_lang_Class_getName02();
+			break;
+		case 390:
+			jtt_lang_Class_getSimpleName01();
+			break;
+		case 391:
+			jtt_lang_Class_getSimpleName02();
+			break;
+		case 392:
+			jtt_lang_Class_getSuperClass01();
+			break;
+		case 393:
+			jtt_lang_Class_isArray01();
+			break;
+		case 394:
+			jtt_lang_Class_isAssignableFrom01();
+			break;
+		case 395:
+			jtt_lang_Class_isAssignableFrom02();
+			break;
+		case 396:
+			jtt_lang_Class_isAssignableFrom03();
+			break;
+		case 397:
+			jtt_lang_Class_isInstance01();
+			break;
+		case 398:
+			jtt_lang_Class_isInstance02();
+			break;
+		case 399:
+			jtt_lang_Class_isInstance03();
+			break;
+		case 400:
+			jtt_lang_Class_isInstance04();
+			break;
+		case 401:
+			jtt_lang_Class_isInstance05();
+			break;
+		case 402:
+			jtt_lang_Class_isInstance06();
+			break;
+		case 403:
+			jtt_lang_Class_isInterface01();
+			break;
+		case 404:
+			jtt_lang_Class_isPrimitive01();
+			break;
+		case 405:
+			jtt_lang_Double_toString();
+			break;
+		case 406:
+			jtt_lang_Float_01();
+			break;
+		case 407:
+			jtt_lang_Float_02();
+			break;
+		case 408:
+			jtt_lang_Int_greater01();
+			break;
+		case 409:
+			jtt_lang_Int_greater02();
+			break;
+		case 410:
+			jtt_lang_Int_greater03();
+			break;
+		case 411:
+			jtt_lang_Int_greaterEqual01();
+			break;
+		case 412:
+			jtt_lang_Int_greaterEqual02();
+			break;
+		case 413:
+			jtt_lang_Int_greaterEqual03();
+			break;
+		case 414:
+			jtt_lang_Int_less01();
+			break;
+		case 415:
+			jtt_lang_Int_less02();
+			break;
+		case 416:
+			jtt_lang_Int_less03();
+			break;
+		case 417:
+			jtt_lang_Int_lessEqual01();
+			break;
+		case 418:
+			jtt_lang_Int_lessEqual02();
+			break;
+		case 419:
+			jtt_lang_Int_lessEqual03();
+			break;
+		case 420:
+			jtt_lang_JDK_ClassLoaders01();
+			break;
+		case 421:
+			jtt_lang_JDK_ClassLoaders02();
+			break;
+		case 422:
+			jtt_lang_Long_greater01();
+			break;
+		case 423:
+			jtt_lang_Long_greater02();
+			break;
+		case 424:
+			jtt_lang_Long_greater03();
+			break;
+		case 425:
+			jtt_lang_Long_greaterEqual01();
+			break;
+		case 426:
+			jtt_lang_Long_greaterEqual02();
+			break;
+		case 427:
+			jtt_lang_Long_greaterEqual03();
+			break;
+		case 428:
+			jtt_lang_Long_less01();
+			break;
+		case 429:
+			jtt_lang_Long_less02();
+			break;
+		case 430:
+			jtt_lang_Long_less03();
+			break;
+		case 431:
+			jtt_lang_Long_lessEqual01();
+			break;
+		case 432:
+			jtt_lang_Long_lessEqual02();
+			break;
+		case 433:
+			jtt_lang_Long_lessEqual03();
+			break;
+		case 434:
+			jtt_lang_Long_reverseBytes01();
+			break;
+		case 435:
+			jtt_lang_Long_reverseBytes02();
+			break;
+		case 436:
+			jtt_lang_Math_pow();
+			break;
+		case 437:
+			jtt_lang_Object_clone01();
+			break;
+		case 438:
+			jtt_lang_Object_clone02();
+			break;
+		case 439:
+			jtt_lang_Object_equals01();
+			break;
+		case 440:
+			jtt_lang_Object_getClass01();
+			break;
+		case 441:
+			jtt_lang_Object_hashCode01();
+			break;
+		case 442:
+			jtt_lang_Object_notify01();
+			break;
+		case 443:
+			jtt_lang_Object_notify02();
+			break;
+		case 444:
+			jtt_lang_Object_notifyAll01();
+			break;
+		case 445:
+			jtt_lang_Object_notifyAll02();
+			break;
+		case 446:
+			jtt_lang_Object_toString01();
+			break;
+		case 447:
+			jtt_lang_Object_toString02();
+			break;
+		case 448:
+			jtt_lang_Object_wait01();
+			break;
+		case 449:
+			jtt_lang_Object_wait02();
+			break;
+		case 450:
+			jtt_lang_Object_wait03();
+			break;
+		case 451:
+			jtt_lang_ProcessEnvironment_init();
+			break;
+		case 452:
+			jtt_lang_StringCoding_Scale();
+			break;
+		case 453:
+			jtt_lang_String_intern01();
+			break;
+		case 454:
+			jtt_lang_String_intern02();
+			break;
+		case 455:
+			jtt_lang_String_intern03();
+			break;
+		case 456:
+			jtt_lang_String_valueOf01();
+			break;
+		case 457:
+			jtt_lang_System_identityHashCode01();
+			break;
+		case 458:
+			jtt_micro_ArrayCompare01();
+			break;
+		case 459:
+			jtt_micro_ArrayCompare02();
+			break;
+		case 460:
+			jtt_micro_BC_invokevirtual2();
+			break;
+		case 461:
+			jtt_micro_BigByteParams01();
+			break;
+		case 462:
+			jtt_micro_BigDoubleParams02();
+			break;
+		case 463:
+			jtt_micro_BigFloatParams01();
+			break;
+		case 464:
+			jtt_micro_BigFloatParams02();
+			break;
+		case 465:
+			jtt_micro_BigIntParams01();
+			break;
+		case 466:
+			jtt_micro_BigIntParams02();
+			break;
+		case 467:
+			jtt_micro_BigInterfaceParams01();
+			break;
+		case 468:
+			jtt_micro_BigLongParams02();
+			break;
+		case 469:
+			jtt_micro_BigMixedParams01();
+			break;
+		case 470:
+			jtt_micro_BigMixedParams02();
+			break;
+		case 471:
+			jtt_micro_BigMixedParams03();
+			break;
+		case 472:
+			jtt_micro_BigObjectParams01();
+			break;
+		case 473:
+			jtt_micro_BigObjectParams02();
+			break;
+		case 474:
+			jtt_micro_BigParamsAlignment();
+			break;
+		case 475:
+			jtt_micro_BigShortParams01();
+			break;
+		case 476:
+			jtt_micro_BigVirtualParams01();
+			break;
+		case 477:
+			jtt_micro_Bubblesort();
+			break;
+		case 478:
+			jtt_micro_Fibonacci();
+			break;
+		case 479:
+			jtt_micro_InvokeVirtual_01();
+			break;
+		case 480:
+			jtt_micro_InvokeVirtual_02();
+			break;
+		case 481:
+			jtt_micro_Matrix01();
+			break;
+		case 482:
+			jtt_micro_StrangeFrames();
+			break;
+		case 483:
+			jtt_micro_String_format01();
+			break;
+		case 484:
+			jtt_micro_String_format02();
+			break;
+		case 485:
+			jtt_micro_VarArgs_String01();
+			break;
+		case 486:
+			jtt_micro_VarArgs_boolean01();
+			break;
+		case 487:
+			jtt_micro_VarArgs_byte01();
+			break;
+		case 488:
+			jtt_micro_VarArgs_char01();
+			break;
+		case 489:
+			jtt_micro_VarArgs_double01();
+			break;
+		case 490:
+			jtt_micro_VarArgs_float01();
+			break;
+		case 491:
+			jtt_micro_VarArgs_int01();
+			break;
+		case 492:
+			jtt_micro_VarArgs_long01();
+			break;
+		case 493:
+			jtt_micro_VarArgs_short01();
+			break;
+		case 494:
+			jtt_reflect_Array_get01();
+			break;
+		case 495:
+			jtt_reflect_Array_get02();
+			break;
+		case 496:
+			jtt_reflect_Array_get03();
+			break;
+		case 497:
+			jtt_reflect_Array_getBoolean01();
+			break;
+		case 498:
+			jtt_reflect_Array_getByte01();
+			break;
+		case 499:
+			jtt_reflect_Array_getChar01();
+			break;
+		case 500:
+			jtt_reflect_Array_getDouble01();
+			break;
+		case 501:
+			jtt_reflect_Array_getFloat01();
+			break;
+		case 502:
+			jtt_reflect_Array_getInt01();
+			break;
+		case 503:
+			jtt_reflect_Array_getLength01();
+			break;
+		case 504:
+			jtt_reflect_Array_getLong01();
+			break;
+		case 505:
+			jtt_reflect_Array_getShort01();
+			break;
+		case 506:
+			jtt_reflect_Array_newInstance01();
+			break;
+		case 507:
+			jtt_reflect_Array_newInstance02();
+			break;
+		case 508:
+			jtt_reflect_Array_newInstance03();
+			break;
+		case 509:
+			jtt_reflect_Array_newInstance04();
+			break;
+		case 510:
+			jtt_reflect_Array_newInstance05();
+			break;
+		case 511:
+			jtt_reflect_Array_newInstance06();
+			break;
+		case 512:
+			jtt_reflect_Array_set01();
+			break;
+		case 513:
+			jtt_reflect_Array_set02();
+			break;
+		case 514:
+			jtt_reflect_Array_set03();
+			break;
+		case 515:
+			jtt_reflect_Array_setBoolean01();
+			break;
+		case 516:
+			jtt_reflect_Array_setByte01();
+			break;
+		case 517:
+			jtt_reflect_Array_setChar01();
+			break;
+		case 518:
+			jtt_reflect_Array_setDouble01();
+			break;
+		case 519:
+			jtt_reflect_Array_setFloat01();
+			break;
+		case 520:
+			jtt_reflect_Array_setInt01();
+			break;
+		case 521:
+			jtt_reflect_Array_setLong01();
+			break;
+		case 522:
+			jtt_reflect_Array_setShort01();
+			break;
+		case 523:
+			jtt_reflect_Class_getDeclaredField01();
+			break;
+		case 524:
+			jtt_reflect_Class_getDeclaredMethod01();
+			break;
+		case 525:
+			jtt_reflect_Class_getField01();
+			break;
+		case 526:
+			jtt_reflect_Class_getField02();
+			break;
+		case 527:
+			jtt_reflect_Class_getMethod01();
+			break;
+		case 528:
+			jtt_reflect_Class_getMethod02();
+			break;
+		case 529:
+			jtt_reflect_Class_newInstance01();
+			break;
+		case 530:
+			jtt_reflect_Class_newInstance02();
+			break;
+		case 531:
+			jtt_reflect_Class_newInstance03();
+			break;
+		case 532:
+			jtt_reflect_Class_newInstance06();
+			break;
+		case 533:
+			jtt_reflect_Class_newInstance07();
+			break;
+		case 534:
+			jtt_reflect_Field_get01();
+			break;
+		case 535:
+			jtt_reflect_Field_get02();
+			break;
+		case 536:
+			jtt_reflect_Field_get03();
+			break;
+		case 537:
+			jtt_reflect_Field_get04();
+			break;
+		case 538:
+			jtt_reflect_Field_getType01();
+			break;
+		case 539:
+			jtt_reflect_Field_set01();
+			break;
+		case 540:
+			jtt_reflect_Field_set02();
+			break;
+		case 541:
+			jtt_reflect_Field_set03();
+			break;
+		case 542:
+			jtt_reflect_Invoke_except01();
+			break;
+		case 543:
+			jtt_reflect_Invoke_main01();
+			break;
+		case 544:
+			jtt_reflect_Invoke_main02();
+			break;
+		case 545:
+			jtt_reflect_Invoke_main03();
+			break;
+		case 546:
+			jtt_reflect_Invoke_virtual01();
+			break;
+		case 547:
+			jtt_reflect_Method_getParameterTypes01();
+			break;
+		case 548:
+			jtt_reflect_Method_getReturnType01();
+			break;
+		case 549:
+			jtt_reflect_Reflection_getCallerClass01();
+			break;
+		case 550:
+			jtt_threads_Monitor_contended01();
+			break;
+		case 551:
+			jtt_threads_Monitor_notowner01();
+			break;
+		case 552:
+			jtt_threads_Monitorenter01();
+			break;
+		case 553:
+			jtt_threads_Monitorenter02();
+			break;
+		case 554:
+			jtt_threads_Object_wait01();
+			break;
+		case 555:
+			jtt_threads_Object_wait02();
+			break;
+		case 556:
+			jtt_threads_Object_wait03();
+			break;
+		case 557:
+			jtt_threads_Object_wait04();
+			break;
+		case 558:
+			jtt_threads_ThreadLocal01();
+			break;
+		case 559:
+			jtt_threads_ThreadLocal02();
+			break;
+		case 560:
+			jtt_threads_ThreadLocal03();
+			break;
+		case 561:
+			jtt_threads_Thread_currentThread01();
+			break;
+		case 562:
+			jtt_threads_Thread_getState01();
+			break;
+		case 563:
+			jtt_threads_Thread_getState02();
+			break;
+		case 564:
+			jtt_threads_Thread_holdsLock01();
+			break;
+		case 565:
+			jtt_threads_Thread_isAlive01();
+			break;
+		case 566:
+			jtt_threads_Thread_isInterrupted01();
+			break;
+		case 567:
+			jtt_threads_Thread_isInterrupted02();
+			break;
+		case 568:
+			jtt_threads_Thread_isInterrupted03();
+			break;
+		case 569:
+			jtt_threads_Thread_isInterrupted04();
+			break;
+		case 570:
+			jtt_threads_Thread_isInterrupted05();
+			break;
+		case 571:
+			jtt_threads_Thread_join01();
+			break;
+		case 572:
+			jtt_threads_Thread_join02();
+			break;
+		case 573:
+			jtt_threads_Thread_join03();
+			break;
+		case 574:
+			jtt_threads_Thread_new01();
+			break;
+		case 575:
+			jtt_threads_Thread_new02();
+			break;
+		case 576:
+			jtt_threads_Thread_setPriority01();
+			break;
+		case 577:
+			jtt_threads_Thread_sleep01();
+			break;
+		case 578:
+			jtt_threads_Thread_start01();
+			break;
+		case 579:
+			jtt_threads_Thread_yield01();
+			break;
+		case 580:
+			jtt_jdk_Class_getName();
+			break;
+		case 581:
+			jtt_jdk_EnumMap01();
+			break;
+		case 582:
+			jtt_jdk_EnumMap02();
+			break;
+		case 583:
+			jtt_jdk_System_currentTimeMillis01();
+			break;
+		case 584:
+			jtt_jdk_System_currentTimeMillis02();
+			break;
+		case 585:
+			jtt_jdk_System_nanoTime01();
+			break;
+		case 586:
+			jtt_jdk_System_nanoTime02();
+			break;
+		case 587:
+			jtt_jdk_UnsafeAccess01();
+			break;
+		}
+		return true;
+	}
+
+	static void jtt_bytecode_BC_aaload() {
+		begin("jtt.bytecode.BC_aaload");
+		String runString = null;
+		try {
+			// (0) == null
+			runString = "(0)";
+			if (null != jtt.bytecode.BC_aaload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == null
+			runString = "(1)";
+			if (null != jtt.bytecode.BC_aaload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == ""
+			runString = "(2)";
+			if (!"".equals(jtt.bytecode.BC_aaload.test(2))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_aaload_1() {
+		begin("jtt.bytecode.BC_aaload_1");
+		String runString = null;
+		try {
+			// (0) == null
+			runString = "(0)";
+			if (null != jtt.bytecode.BC_aaload_1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == null
+			runString = "(1)";
+			if (null != jtt.bytecode.BC_aaload_1.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == ""
+			runString = "(2)";
+			if (!"".equals(jtt.bytecode.BC_aaload_1.test(2))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_aastore() {
+		begin("jtt.bytecode.BC_aastore");
+		String runString = null;
+		try {
+			// (true,0) == 0
+			runString = "(true,0)";
+			if (0 != jtt.bytecode.BC_aastore.test(true, 0)) {
+				fail(runString);
+				return;
+			}
+			// (true,1) == 1
+			runString = "(true,1)";
+			if (1 != jtt.bytecode.BC_aastore.test(true, 1)) {
+				fail(runString);
+				return;
+			}
+			// (true,2) == 2
+			runString = "(true,2)";
+			if (2 != jtt.bytecode.BC_aastore.test(true, 2)) {
+				fail(runString);
+				return;
+			}
+			// (false,1) == 1
+			runString = "(false,1)";
+			if (1 != jtt.bytecode.BC_aastore.test(false, 1)) {
+				fail(runString);
+				return;
+			}
+			// (false,2) == 2
+			runString = "(false,2)";
+			if (2 != jtt.bytecode.BC_aastore.test(false, 2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_aload_0() {
+		begin("jtt.bytecode.BC_aload_0");
+		String runString = null;
+		try {
+			// (null) == null
+			runString = "(null)";
+			if (null != jtt.bytecode.BC_aload_0.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("x") == "x"
+			runString = "(\"x\")";
+			if (!"x".equals(jtt.bytecode.BC_aload_0.test("x"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_aload_1() {
+		begin("jtt.bytecode.BC_aload_1");
+		String runString = null;
+		try {
+			// (1,null) == null
+			runString = "(1,null)";
+			if (null != jtt.bytecode.BC_aload_1.test(1, null)) {
+				fail(runString);
+				return;
+			}
+			// (1,"x") == "x"
+			runString = "(1,\"x\")";
+			if (!"x".equals(jtt.bytecode.BC_aload_1.test(1, "x"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_aload_2() {
+		begin("jtt.bytecode.BC_aload_2");
+		String runString = null;
+		try {
+			// (1,1,null) == null
+			runString = "(1,1,null)";
+			if (null != jtt.bytecode.BC_aload_2.test(1, 1, null)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,"x") == "x"
+			runString = "(1,1,\"x\")";
+			if (!"x".equals(jtt.bytecode.BC_aload_2.test(1, 1, "x"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_aload_3() {
+		begin("jtt.bytecode.BC_aload_3");
+		String runString = null;
+		try {
+			// (1,1,1,"x") == "x"
+			runString = "(1,1,1,\"x\")";
+			if (!"x".equals(jtt.bytecode.BC_aload_3.test(1, 1, 1, "x"))) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1,null) == null
+			runString = "(1,1,1,null)";
+			if (null != jtt.bytecode.BC_aload_3.test(1, 1, 1, null)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_anewarray() {
+		begin("jtt.bytecode.BC_anewarray");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_anewarray.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_anewarray.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_areturn() {
+		begin("jtt.bytecode.BC_areturn");
+		String runString = null;
+		try {
+			// (null) == null
+			runString = "(null)";
+			if (null != jtt.bytecode.BC_areturn.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == ""
+			runString = "(\"\")";
+			if (!"".equals(jtt.bytecode.BC_areturn.test(""))) {
+				fail(runString);
+				return;
+			}
+			// ("this") == "this"
+			runString = "(\"this\")";
+			if (!"this".equals(jtt.bytecode.BC_areturn.test("this"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_arraylength() {
+		begin("jtt.bytecode.BC_arraylength");
+		String runString = null;
+		try {
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.bytecode.BC_arraylength.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4
+			runString = "(2)";
+			if (4 != jtt.bytecode.BC_arraylength.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 5
+			runString = "(3)";
+			if (5 != jtt.bytecode.BC_arraylength.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 5
+			runString = "(4)";
+			if (5 != jtt.bytecode.BC_arraylength.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 42
+			runString = "(5)";
+			if (42 != jtt.bytecode.BC_arraylength.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_athrow() {
+		begin("jtt.bytecode.BC_athrow");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_athrow.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_athrow.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.Throwable
+			try {
+				runString = "(2)";
+				jtt.bytecode.BC_athrow.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Throwable.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_athrow.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_baload() {
+		begin("jtt.bytecode.BC_baload");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.bytecode.BC_baload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.bytecode.BC_baload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.bytecode.BC_baload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.bytecode.BC_baload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_bastore() {
+		begin("jtt.bytecode.BC_bastore");
+		String runString = null;
+		try {
+			// (0,true) == true
+			runString = "(0,true)";
+			if (true != jtt.bytecode.BC_bastore.test(0, true)) {
+				fail(runString);
+				return;
+			}
+			// (1,false) == false
+			runString = "(1,false)";
+			if (false != jtt.bytecode.BC_bastore.test(1, false)) {
+				fail(runString);
+				return;
+			}
+			// (2,true) == true
+			runString = "(2,true)";
+			if (true != jtt.bytecode.BC_bastore.test(2, true)) {
+				fail(runString);
+				return;
+			}
+			// (3,false) == false
+			runString = "(3,false)";
+			if (false != jtt.bytecode.BC_bastore.test(3, false)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_caload() {
+		begin("jtt.bytecode.BC_caload");
+		String runString = null;
+		try {
+			// (0) == '\0'
+			runString = "(0)";
+			if ((char) 0 != jtt.bytecode.BC_caload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 'a'
+			runString = "(1)";
+			if ((char) 97 != jtt.bytecode.BC_caload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == ' '
+			runString = "(2)";
+			if ((char) 32 != jtt.bytecode.BC_caload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == '\23420'
+			runString = "(3)";
+			if ((char) 10000 != jtt.bytecode.BC_caload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_castore() {
+		begin("jtt.bytecode.BC_castore");
+		String runString = null;
+		try {
+			// (0,'a') == 'a'
+			runString = "(0,'a')";
+			if ((char) 97 != jtt.bytecode.BC_castore.test(0, (char) 97)) {
+				fail(runString);
+				return;
+			}
+			// (1,'A') == 'A'
+			runString = "(1,'A')";
+			if ((char) 65 != jtt.bytecode.BC_castore.test(1, (char) 65)) {
+				fail(runString);
+				return;
+			}
+			// (2,'*') == '*'
+			runString = "(2,'*')";
+			if ((char) 42 != jtt.bytecode.BC_castore.test(2, (char) 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,'x') == 'x'
+			runString = "(3,'x')";
+			if ((char) 120 != jtt.bytecode.BC_castore.test(3, (char) 120)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_checkcast01() {
+		begin("jtt.bytecode.BC_checkcast01");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.bytecode.BC_checkcast01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.bytecode.BC_checkcast01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.bytecode.BC_checkcast01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_checkcast02() {
+		begin("jtt.bytecode.BC_checkcast02");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.bytecode.BC_checkcast02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.bytecode.BC_checkcast02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -1
+			runString = "(2)";
+			if (-1 != jtt.bytecode.BC_checkcast02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -1
+			runString = "(3)";
+			if (-1 != jtt.bytecode.BC_checkcast02.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_d2f() {
+		begin("jtt.bytecode.BC_d2f");
+		String runString = null;
+		try {
+			// (0.0) == 0.0
+			runString = "(0.0)";
+			if (0.0f != jtt.bytecode.BC_d2f.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 1.0
+			runString = "(1.0)";
+			if (1.0f != jtt.bytecode.BC_d2f.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (-1.06) == -1.06
+			runString = "(-1.06)";
+			if (-1.06f != jtt.bytecode.BC_d2f.test(-1.06)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_d2i01() {
+		begin("jtt.bytecode.BC_d2i01");
+		String runString = null;
+		try {
+			// (0.0) == 0
+			runString = "(0.0)";
+			if (0 != jtt.bytecode.BC_d2i01.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 1
+			runString = "(1.0)";
+			if (1 != jtt.bytecode.BC_d2i01.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (-1.06) == -1
+			runString = "(-1.06)";
+			if (-1 != jtt.bytecode.BC_d2i01.test(-1.06)) {
+				fail(runString);
+				return;
+			}
+			// (-156.82743) == -156
+			runString = "(-156.82743)";
+			if (-156 != jtt.bytecode.BC_d2i01.test(-156.82743)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_d2i02() {
+		begin("jtt.bytecode.BC_d2i02");
+		String runString = null;
+		try {
+			// (0) == -2147483648
+			runString = "(0)";
+			if (-2147483648 != jtt.bytecode.BC_d2i02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_d2l01() {
+		begin("jtt.bytecode.BC_d2l01");
+		String runString = null;
+		try {
+			// (0.0) == 0
+			runString = "(0.0)";
+			if (0L != jtt.bytecode.BC_d2l01.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 1
+			runString = "(1.0)";
+			if (1L != jtt.bytecode.BC_d2l01.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (-1.06) == -1
+			runString = "(-1.06)";
+			if (-1L != jtt.bytecode.BC_d2l01.test(-1.06)) {
+				fail(runString);
+				return;
+			}
+			// (-156.82743) == -156
+			runString = "(-156.82743)";
+			if (-156L != jtt.bytecode.BC_d2l01.test(-156.82743)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_d2l02() {
+		begin("jtt.bytecode.BC_d2l02");
+		String runString = null;
+		try {
+			// (0) == -9223372036854775808
+			runString = "(0)";
+			if (-9223372036854775808L != jtt.bytecode.BC_d2l02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dadd() {
+		begin("jtt.bytecode.BC_dadd");
+		String runString = null;
+		try {
+			// (0.0,0.0) == 0.0
+			runString = "(0.0,0.0)";
+			if (0.0 != jtt.bytecode.BC_dadd.test(0.0, 0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0,1.0) == 2.0
+			runString = "(1.0,1.0)";
+			if (2.0 != jtt.bytecode.BC_dadd.test(1.0, 1.0)) {
+				fail(runString);
+				return;
+			}
+			// (253.11,54.43) == 307.54
+			runString = "(253.11,54.43)";
+			if (307.54 != jtt.bytecode.BC_dadd.test(253.11, 54.43)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_daload() {
+		begin("jtt.bytecode.BC_daload");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0 != jtt.bytecode.BC_daload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1.1
+			runString = "(1)";
+			if (-1.1 != jtt.bytecode.BC_daload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4.32
+			runString = "(2)";
+			if (4.32 != jtt.bytecode.BC_daload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 6.06
+			runString = "(3)";
+			if (6.06 != jtt.bytecode.BC_daload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dastore() {
+		begin("jtt.bytecode.BC_dastore");
+		String runString = null;
+		try {
+			// (0,0.01) == 0.01
+			runString = "(0,0.01)";
+			if (0.01 != jtt.bytecode.BC_dastore.test(0, 0.01)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1.4) == -1.4
+			runString = "(1,-1.4)";
+			if (-1.4 != jtt.bytecode.BC_dastore.test(1, -1.4)) {
+				fail(runString);
+				return;
+			}
+			// (2,0.01) == 0.01
+			runString = "(2,0.01)";
+			if (0.01 != jtt.bytecode.BC_dastore.test(2, 0.01)) {
+				fail(runString);
+				return;
+			}
+			// (3,-1.4) == -1.4
+			runString = "(3,-1.4)";
+			if (-1.4 != jtt.bytecode.BC_dastore.test(3, -1.4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp01() {
+		begin("jtt.bytecode.BC_dcmp01");
+		String runString = null;
+		try {
+			// (0.0,-0.1) == false
+			runString = "(0.0,-0.1)";
+			if (false != jtt.bytecode.BC_dcmp01.test(0.0, -0.1)) {
+				fail(runString);
+				return;
+			}
+			// (78.0,78.001) == true
+			runString = "(78.0,78.001)";
+			if (true != jtt.bytecode.BC_dcmp01.test(78.0, 78.001)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp02() {
+		begin("jtt.bytecode.BC_dcmp02");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_dcmp02.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_dcmp02.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp02.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (-0.0) == false
+			runString = "(-0.0)";
+			if (false != jtt.bytecode.BC_dcmp02.test(-0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp03() {
+		begin("jtt.bytecode.BC_dcmp03");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_dcmp03.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_dcmp03.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp03.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (-0.0) == false
+			runString = "(-0.0)";
+			if (false != jtt.bytecode.BC_dcmp03.test(-0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp04() {
+		begin("jtt.bytecode.BC_dcmp04");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_dcmp04.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_dcmp04.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp04.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (-0.0) == false
+			runString = "(-0.0)";
+			if (false != jtt.bytecode.BC_dcmp04.test(-0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp05() {
+		begin("jtt.bytecode.BC_dcmp05");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_dcmp05.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_dcmp05.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp05.test(0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp06() {
+		begin("jtt.bytecode.BC_dcmp06");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_dcmp06.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_dcmp06.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp06.test(0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp07() {
+		begin("jtt.bytecode.BC_dcmp07");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_dcmp07.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_dcmp07.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp07.test(0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp08() {
+		begin("jtt.bytecode.BC_dcmp08");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_dcmp08.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_dcmp08.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp08.test(0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp09() {
+		begin("jtt.bytecode.BC_dcmp09");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_dcmp09.test(-1.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_dcmp09.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_dcmp09.test(0.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dcmp10() {
+		begin("jtt.bytecode.BC_dcmp10");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.bytecode.BC_dcmp10.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.bytecode.BC_dcmp10.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.bytecode.BC_dcmp10.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.bytecode.BC_dcmp10.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.bytecode.BC_dcmp10.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.bytecode.BC_dcmp10.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.bytecode.BC_dcmp10.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.bytecode.BC_dcmp10.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.bytecode.BC_dcmp10.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ddiv() {
+		begin("jtt.bytecode.BC_ddiv");
+		String runString = null;
+		try {
+			// (311.0,10.0) == 31.1
+			runString = "(311.0,10.0)";
+			if (31.1 != jtt.bytecode.BC_ddiv.test(311.0, 10.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dmul() {
+		begin("jtt.bytecode.BC_dmul");
+		String runString = null;
+		try {
+			// (311.0,10.0) == 3110.0
+			runString = "(311.0,10.0)";
+			if (3110.0 != jtt.bytecode.BC_dmul.test(311.0, 10.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dneg() {
+		begin("jtt.bytecode.BC_dneg");
+		String runString = null;
+		try {
+			// (0.0) == -0.0
+			runString = "(0.0)";
+			if (-0.0 != jtt.bytecode.BC_dneg.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (-1.01) == 1.01
+			runString = "(-1.01)";
+			if (1.01 != jtt.bytecode.BC_dneg.test(-1.01)) {
+				fail(runString);
+				return;
+			}
+			// (7263.8734) == -7263.8734
+			runString = "(7263.8734)";
+			if (-7263.8734 != jtt.bytecode.BC_dneg.test(7263.8734)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_drem() {
+		begin("jtt.bytecode.BC_drem");
+		String runString = null;
+		try {
+			// (311.0,10.0) == 1.0
+			runString = "(311.0,10.0)";
+			if (1.0 != jtt.bytecode.BC_drem.test(311.0, 10.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dreturn() {
+		begin("jtt.bytecode.BC_dreturn");
+		String runString = null;
+		try {
+			// (0.0) == 0.0
+			runString = "(0.0)";
+			if (0.0 != jtt.bytecode.BC_dreturn.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.1) == 1.1
+			runString = "(1.1)";
+			if (1.1 != jtt.bytecode.BC_dreturn.test(1.1)) {
+				fail(runString);
+				return;
+			}
+			// (-1.4) == -1.4
+			runString = "(-1.4)";
+			if (-1.4 != jtt.bytecode.BC_dreturn.test(-1.4)) {
+				fail(runString);
+				return;
+			}
+			// (256.33) == 256.33
+			runString = "(256.33)";
+			if (256.33 != jtt.bytecode.BC_dreturn.test(256.33)) {
+				fail(runString);
+				return;
+			}
+			// (1000.001) == 1000.001
+			runString = "(1000.001)";
+			if (1000.001 != jtt.bytecode.BC_dreturn.test(1000.001)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_dsub() {
+		begin("jtt.bytecode.BC_dsub");
+		String runString = null;
+		try {
+			// (0.0,0.0) == 0.0
+			runString = "(0.0,0.0)";
+			if (0.0 != jtt.bytecode.BC_dsub.test(0.0, 0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0,1.0) == 0.0
+			runString = "(1.0,1.0)";
+			if (0.0 != jtt.bytecode.BC_dsub.test(1.0, 1.0)) {
+				fail(runString);
+				return;
+			}
+			// (253.11,54.43) == 198.68
+			runString = "(253.11,54.43)";
+			if (198.68 != jtt.bytecode.BC_dsub.test(253.11, 54.43)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_f2d() {
+		begin("jtt.bytecode.BC_f2d");
+		String runString = null;
+		try {
+			// (0.0) == 0.0
+			runString = "(0.0)";
+			if (0.0 != jtt.bytecode.BC_f2d.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 1.0
+			runString = "(1.0)";
+			if (1.0 != jtt.bytecode.BC_f2d.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (-2.0) == -2.0
+			runString = "(-2.0)";
+			if (-2.0 != jtt.bytecode.BC_f2d.test(-2.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_f2i01() {
+		begin("jtt.bytecode.BC_f2i01");
+		String runString = null;
+		try {
+			// (0.0) == 0
+			runString = "(0.0)";
+			if (0 != jtt.bytecode.BC_f2i01.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 1
+			runString = "(1.0)";
+			if (1 != jtt.bytecode.BC_f2i01.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (-1.06) == -1
+			runString = "(-1.06)";
+			if (-1 != jtt.bytecode.BC_f2i01.test(-1.06f)) {
+				fail(runString);
+				return;
+			}
+			// (-156.82742) == -156
+			runString = "(-156.82742)";
+			if (-156 != jtt.bytecode.BC_f2i01.test(-156.82742f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_f2i02() {
+		begin("jtt.bytecode.BC_f2i02");
+		String runString = null;
+		try {
+			// (0) == -2147483648
+			runString = "(0)";
+			if (-2147483648 != jtt.bytecode.BC_f2i02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_f2l01() {
+		begin("jtt.bytecode.BC_f2l01");
+		String runString = null;
+		try {
+			// (0.0) == 0
+			runString = "(0.0)";
+			if (0L != jtt.bytecode.BC_f2l01.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 1
+			runString = "(1.0)";
+			if (1L != jtt.bytecode.BC_f2l01.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (-1.06) == -1
+			runString = "(-1.06)";
+			if (-1L != jtt.bytecode.BC_f2l01.test(-1.06f)) {
+				fail(runString);
+				return;
+			}
+			// (-156.82742) == -156
+			runString = "(-156.82742)";
+			if (-156L != jtt.bytecode.BC_f2l01.test(-156.82742f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_f2l02() {
+		begin("jtt.bytecode.BC_f2l02");
+		String runString = null;
+		try {
+			// (0) == -9223372036854775808
+			runString = "(0)";
+			if (-9223372036854775808L != jtt.bytecode.BC_f2l02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fadd() {
+		begin("jtt.bytecode.BC_fadd");
+		String runString = null;
+		try {
+			// (0.0,0.0) == 0.0
+			runString = "(0.0,0.0)";
+			if (0.0f != jtt.bytecode.BC_fadd.test(0.0f, 0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0,1.0) == 2.0
+			runString = "(1.0,1.0)";
+			if (2.0f != jtt.bytecode.BC_fadd.test(1.0f, 1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (253.11,54.43) == 307.54
+			runString = "(253.11,54.43)";
+			if (307.54f != jtt.bytecode.BC_fadd.test(253.11f, 54.43f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_faload() {
+		begin("jtt.bytecode.BC_faload");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0f != jtt.bytecode.BC_faload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1.1
+			runString = "(1)";
+			if (-1.1f != jtt.bytecode.BC_faload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4.32
+			runString = "(2)";
+			if (4.32f != jtt.bytecode.BC_faload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 6.06
+			runString = "(3)";
+			if (6.06f != jtt.bytecode.BC_faload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fastore() {
+		begin("jtt.bytecode.BC_fastore");
+		String runString = null;
+		try {
+			// (0,0.01) == 0.01
+			runString = "(0,0.01)";
+			if (0.01f != jtt.bytecode.BC_fastore.test(0, 0.01f)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1.4) == -1.4
+			runString = "(1,-1.4)";
+			if (-1.4f != jtt.bytecode.BC_fastore.test(1, -1.4f)) {
+				fail(runString);
+				return;
+			}
+			// (2,0.01) == 0.01
+			runString = "(2,0.01)";
+			if (0.01f != jtt.bytecode.BC_fastore.test(2, 0.01f)) {
+				fail(runString);
+				return;
+			}
+			// (3,-1.4) == -1.4
+			runString = "(3,-1.4)";
+			if (-1.4f != jtt.bytecode.BC_fastore.test(3, -1.4f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp01() {
+		begin("jtt.bytecode.BC_fcmp01");
+		String runString = null;
+		try {
+			// (0.0,-0.1) == false
+			runString = "(0.0,-0.1)";
+			if (false != jtt.bytecode.BC_fcmp01.test(0.0f, -0.1f)) {
+				fail(runString);
+				return;
+			}
+			// (78.0,78.001) == true
+			runString = "(78.0,78.001)";
+			if (true != jtt.bytecode.BC_fcmp01.test(78.0f, 78.001f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp02() {
+		begin("jtt.bytecode.BC_fcmp02");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_fcmp02.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_fcmp02.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp02.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp03() {
+		begin("jtt.bytecode.BC_fcmp03");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_fcmp03.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_fcmp03.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp03.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp04() {
+		begin("jtt.bytecode.BC_fcmp04");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_fcmp04.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_fcmp04.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp04.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp05() {
+		begin("jtt.bytecode.BC_fcmp05");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_fcmp05.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_fcmp05.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp05.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp06() {
+		begin("jtt.bytecode.BC_fcmp06");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_fcmp06.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_fcmp06.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp06.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp07() {
+		begin("jtt.bytecode.BC_fcmp07");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_fcmp07.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_fcmp07.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp07.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp08() {
+		begin("jtt.bytecode.BC_fcmp08");
+		String runString = null;
+		try {
+			// (-1.0) == true
+			runString = "(-1.0)";
+			if (true != jtt.bytecode.BC_fcmp08.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == true
+			runString = "(1.0)";
+			if (true != jtt.bytecode.BC_fcmp08.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp08.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp09() {
+		begin("jtt.bytecode.BC_fcmp09");
+		String runString = null;
+		try {
+			// (-1.0) == false
+			runString = "(-1.0)";
+			if (false != jtt.bytecode.BC_fcmp09.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.bytecode.BC_fcmp09.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0) == false
+			runString = "(0.0)";
+			if (false != jtt.bytecode.BC_fcmp09.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fcmp10() {
+		begin("jtt.bytecode.BC_fcmp10");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.bytecode.BC_fcmp10.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.bytecode.BC_fcmp10.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.bytecode.BC_fcmp10.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.bytecode.BC_fcmp10.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.bytecode.BC_fcmp10.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.bytecode.BC_fcmp10.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.bytecode.BC_fcmp10.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.bytecode.BC_fcmp10.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.bytecode.BC_fcmp10.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fdiv() {
+		begin("jtt.bytecode.BC_fdiv");
+		String runString = null;
+		try {
+			// (311.0,10.0) == 31.1
+			runString = "(311.0,10.0)";
+			if (31.1f != jtt.bytecode.BC_fdiv.test(311.0f, 10.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fload() {
+		begin("jtt.bytecode.BC_fload");
+		String runString = null;
+		try {
+			// (-1.0) == -1.0
+			runString = "(-1.0)";
+			if (-1.0f != jtt.bytecode.BC_fload.test(-1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (-1.01) == -1.01
+			runString = "(-1.01)";
+			if (-1.01f != jtt.bytecode.BC_fload.test(-1.01f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fload_2() {
+		begin("jtt.bytecode.BC_fload_2");
+		String runString = null;
+		try {
+			// (0.0,-1.0) == -1.0
+			runString = "(0.0,-1.0)";
+			if (-1.0f != jtt.bytecode.BC_fload_2.test(0.0f, -1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.0,-1.01) == -1.01
+			runString = "(0.0,-1.01)";
+			if (-1.01f != jtt.bytecode.BC_fload_2.test(0.0f, -1.01f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fmul() {
+		begin("jtt.bytecode.BC_fmul");
+		String runString = null;
+		try {
+			// (311.0,10.0) == 3110.0
+			runString = "(311.0,10.0)";
+			if (3110.0f != jtt.bytecode.BC_fmul.test(311.0f, 10.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fneg() {
+		begin("jtt.bytecode.BC_fneg");
+		String runString = null;
+		try {
+			// (0.0) == -0.0
+			runString = "(0.0)";
+			if (-0.0f != jtt.bytecode.BC_fneg.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (-1.01) == 1.01
+			runString = "(-1.01)";
+			if (1.01f != jtt.bytecode.BC_fneg.test(-1.01f)) {
+				fail(runString);
+				return;
+			}
+			// (7263.8735) == -7263.8735
+			runString = "(7263.8735)";
+			if (-7263.8735f != jtt.bytecode.BC_fneg.test(7263.8735f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_frem() {
+		begin("jtt.bytecode.BC_frem");
+		String runString = null;
+		try {
+			// (311.0,10.0) == 1.0
+			runString = "(311.0,10.0)";
+			if (1.0f != jtt.bytecode.BC_frem.test(311.0f, 10.0f)) {
+				fail(runString);
+				return;
+			}
+			// (12.5,6.0) == 0.5
+			runString = "(12.5,6.0)";
+			if (0.5f != jtt.bytecode.BC_frem.test(12.5f, 6.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_freturn() {
+		begin("jtt.bytecode.BC_freturn");
+		String runString = null;
+		try {
+			// (0.0) == 0.0
+			runString = "(0.0)";
+			if (0.0f != jtt.bytecode.BC_freturn.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.1) == 1.1
+			runString = "(1.1)";
+			if (1.1f != jtt.bytecode.BC_freturn.test(1.1f)) {
+				fail(runString);
+				return;
+			}
+			// (-1.4) == -1.4
+			runString = "(-1.4)";
+			if (-1.4f != jtt.bytecode.BC_freturn.test(-1.4f)) {
+				fail(runString);
+				return;
+			}
+			// (256.33) == 256.33
+			runString = "(256.33)";
+			if (256.33f != jtt.bytecode.BC_freturn.test(256.33f)) {
+				fail(runString);
+				return;
+			}
+			// (1000.001) == 1000.001
+			runString = "(1000.001)";
+			if (1000.001f != jtt.bytecode.BC_freturn.test(1000.001f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_fsub() {
+		begin("jtt.bytecode.BC_fsub");
+		String runString = null;
+		try {
+			// (0.0,0.0) == 0.0
+			runString = "(0.0,0.0)";
+			if (0.0f != jtt.bytecode.BC_fsub.test(0.0f, 0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0,1.0) == 0.0
+			runString = "(1.0,1.0)";
+			if (0.0f != jtt.bytecode.BC_fsub.test(1.0f, 1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (253.11,54.43) == 198.68
+			runString = "(253.11,54.43)";
+			if (198.68f != jtt.bytecode.BC_fsub.test(253.11f, 54.43f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getfield() {
+		begin("jtt.bytecode.BC_getfield");
+		String runString = null;
+		try {
+			// (0) == 13
+			runString = "(0)";
+			if (13 != jtt.bytecode.BC_getfield.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_b() {
+		begin("jtt.bytecode.BC_getstatic_b");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if ((byte) 11 != jtt.bytecode.BC_getstatic_b.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if ((byte) 11 != jtt.bytecode.BC_getstatic_b.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 11
+			runString = "(2)";
+			if ((byte) 11 != jtt.bytecode.BC_getstatic_b.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_c() {
+		begin("jtt.bytecode.BC_getstatic_c");
+		String runString = null;
+		try {
+			// (0) == '\13'
+			runString = "(0)";
+			if ((char) 11 != jtt.bytecode.BC_getstatic_c.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == '\13'
+			runString = "(1)";
+			if ((char) 11 != jtt.bytecode.BC_getstatic_c.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_d() {
+		begin("jtt.bytecode.BC_getstatic_d");
+		String runString = null;
+		try {
+			// (0) == 11.0
+			runString = "(0)";
+			if (11.0 != jtt.bytecode.BC_getstatic_d.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11.0
+			runString = "(1)";
+			if (11.0 != jtt.bytecode.BC_getstatic_d.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_f() {
+		begin("jtt.bytecode.BC_getstatic_f");
+		String runString = null;
+		try {
+			// (0) == 11.0
+			runString = "(0)";
+			if (11.0f != jtt.bytecode.BC_getstatic_f.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11.0
+			runString = "(1)";
+			if (11.0f != jtt.bytecode.BC_getstatic_f.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_i() {
+		begin("jtt.bytecode.BC_getstatic_i");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.bytecode.BC_getstatic_i.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.bytecode.BC_getstatic_i.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 11
+			runString = "(2)";
+			if (11 != jtt.bytecode.BC_getstatic_i.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 11
+			runString = "(3)";
+			if (11 != jtt.bytecode.BC_getstatic_i.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == 11
+			runString = "(-4)";
+			if (11 != jtt.bytecode.BC_getstatic_i.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_l() {
+		begin("jtt.bytecode.BC_getstatic_l");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11L != jtt.bytecode.BC_getstatic_l.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.bytecode.BC_getstatic_l.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_s() {
+		begin("jtt.bytecode.BC_getstatic_s");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if ((short) 11 != jtt.bytecode.BC_getstatic_s.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if ((short) 11 != jtt.bytecode.BC_getstatic_s.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_getstatic_z() {
+		begin("jtt.bytecode.BC_getstatic_z");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.bytecode.BC_getstatic_z.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.bytecode.BC_getstatic_z.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_i2b() {
+		begin("jtt.bytecode.BC_i2b");
+		String runString = null;
+		try {
+			// (-1) == -1
+			runString = "(-1)";
+			if ((byte) -1 != jtt.bytecode.BC_i2b.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if ((byte) 2 != jtt.bytecode.BC_i2b.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (255) == -1
+			runString = "(255)";
+			if ((byte) -1 != jtt.bytecode.BC_i2b.test(255)) {
+				fail(runString);
+				return;
+			}
+			// (128) == -128
+			runString = "(128)";
+			if ((byte) -128 != jtt.bytecode.BC_i2b.test(128)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_i2c() {
+		begin("jtt.bytecode.BC_i2c");
+		String runString = null;
+		try {
+			// (-1) == '\177777'
+			runString = "(-1)";
+			if ((char) 65535 != jtt.bytecode.BC_i2c.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (645) == '\1205'
+			runString = "(645)";
+			if ((char) 645 != jtt.bytecode.BC_i2c.test(645)) {
+				fail(runString);
+				return;
+			}
+			// (65535) == '\177777'
+			runString = "(65535)";
+			if ((char) 65535 != jtt.bytecode.BC_i2c.test(65535)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_i2d() {
+		begin("jtt.bytecode.BC_i2d");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0 != jtt.bytecode.BC_i2d.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1.0
+			runString = "(1)";
+			if (1.0 != jtt.bytecode.BC_i2d.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-34) == -34.0
+			runString = "(-34)";
+			if (-34.0 != jtt.bytecode.BC_i2d.test(-34)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_i2f() {
+		begin("jtt.bytecode.BC_i2f");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0f != jtt.bytecode.BC_i2f.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1.0
+			runString = "(1)";
+			if (1.0f != jtt.bytecode.BC_i2f.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-34) == -34.0
+			runString = "(-34)";
+			if (-34.0f != jtt.bytecode.BC_i2f.test(-34)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_i2l() {
+		begin("jtt.bytecode.BC_i2l");
+		String runString = null;
+		try {
+			// (1) == 1
+			runString = "(1)";
+			if (1L != jtt.bytecode.BC_i2l.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2L != jtt.bytecode.BC_i2l.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3L != jtt.bytecode.BC_i2l.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1L != jtt.bytecode.BC_i2l.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483647) == -2147483647
+			runString = "(-2147483647)";
+			if (-2147483647L != jtt.bytecode.BC_i2l.test(-2147483647)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648) == -2147483648
+			runString = "(-2147483648)";
+			if (-2147483648L != jtt.bytecode.BC_i2l.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == 2147483647
+			runString = "(2147483647)";
+			if (2147483647L != jtt.bytecode.BC_i2l.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_i2s() {
+		begin("jtt.bytecode.BC_i2s");
+		String runString = null;
+		try {
+			// (-1) == -1
+			runString = "(-1)";
+			if ((short) -1 != jtt.bytecode.BC_i2s.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (34) == 34
+			runString = "(34)";
+			if ((short) 34 != jtt.bytecode.BC_i2s.test(34)) {
+				fail(runString);
+				return;
+			}
+			// (65535) == -1
+			runString = "(65535)";
+			if ((short) -1 != jtt.bytecode.BC_i2s.test(65535)) {
+				fail(runString);
+				return;
+			}
+			// (32768) == -32768
+			runString = "(32768)";
+			if ((short) -32768 != jtt.bytecode.BC_i2s.test(32768)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iadd() {
+		begin("jtt.bytecode.BC_iadd");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3 != jtt.bytecode.BC_iadd.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1 != jtt.bytecode.BC_iadd.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 100
+			runString = "(33,67)";
+			if (100 != jtt.bytecode.BC_iadd.test(33, 67)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == 0
+			runString = "(1,-1)";
+			if (0 != jtt.bytecode.BC_iadd.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647 != jtt.bytecode.BC_iadd.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,1) == -2147483648
+			runString = "(2147483647,1)";
+			if (-2147483648 != jtt.bytecode.BC_iadd.test(2147483647, 1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483647,-2) == 2147483647
+			runString = "(-2147483647,-2)";
+			if (2147483647 != jtt.bytecode.BC_iadd.test(-2147483647, -2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iadd2() {
+		begin("jtt.bytecode.BC_iadd2");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3 != jtt.bytecode.BC_iadd2.test((byte) 1, (byte) 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1 != jtt.bytecode.BC_iadd2.test((byte) 0, (byte) -1)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 100
+			runString = "(33,67)";
+			if (100 != jtt.bytecode.BC_iadd2.test((byte) 33, (byte) 67)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == 0
+			runString = "(1,-1)";
+			if (0 != jtt.bytecode.BC_iadd2.test((byte) 1, (byte) -1)) {
+				fail(runString);
+				return;
+			}
+			// (-128,1) == -127
+			runString = "(-128,1)";
+			if (-127 != jtt.bytecode.BC_iadd2.test((byte) -128, (byte) 1)) {
+				fail(runString);
+				return;
+			}
+			// (127,1) == 128
+			runString = "(127,1)";
+			if (128 != jtt.bytecode.BC_iadd2.test((byte) 127, (byte) 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iadd3() {
+		begin("jtt.bytecode.BC_iadd3");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3 != jtt.bytecode.BC_iadd3.test((short) 1, (short) 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1 != jtt.bytecode.BC_iadd3.test((short) 0, (short) -1)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 100
+			runString = "(33,67)";
+			if (100 != jtt.bytecode.BC_iadd3.test((short) 33, (short) 67)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == 0
+			runString = "(1,-1)";
+			if (0 != jtt.bytecode.BC_iadd3.test((short) 1, (short) -1)) {
+				fail(runString);
+				return;
+			}
+			// (-128,1) == -127
+			runString = "(-128,1)";
+			if (-127 != jtt.bytecode.BC_iadd3.test((short) -128, (short) 1)) {
+				fail(runString);
+				return;
+			}
+			// (127,1) == 128
+			runString = "(127,1)";
+			if (128 != jtt.bytecode.BC_iadd3.test((short) 127, (short) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-32768,1) == -32767
+			runString = "(-32768,1)";
+			if (-32767 != jtt.bytecode.BC_iadd3.test((short) -32768, (short) 1)) {
+				fail(runString);
+				return;
+			}
+			// (32767,1) == 32768
+			runString = "(32767,1)";
+			if (32768 != jtt.bytecode.BC_iadd3.test((short) 32767, (short) 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iaload() {
+		begin("jtt.bytecode.BC_iaload");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_iaload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.bytecode.BC_iaload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4
+			runString = "(2)";
+			if (4 != jtt.bytecode.BC_iaload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1000000000
+			runString = "(3)";
+			if (1000000000 != jtt.bytecode.BC_iaload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iand() {
+		begin("jtt.bytecode.BC_iand");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0 != jtt.bytecode.BC_iand.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0 != jtt.bytecode.BC_iand.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (31,63) == 31
+			runString = "(31,63)";
+			if (31 != jtt.bytecode.BC_iand.test(31, 63)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 4
+			runString = "(6,4)";
+			if (4 != jtt.bytecode.BC_iand.test(6, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == 0
+			runString = "(-2147483648,1)";
+			if (0 != jtt.bytecode.BC_iand.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iastore() {
+		begin("jtt.bytecode.BC_iastore");
+		String runString = null;
+		try {
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0 != jtt.bytecode.BC_iastore.test(0, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -1
+			runString = "(1,-1)";
+			if (-1 != jtt.bytecode.BC_iastore.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (2,11) == 11
+			runString = "(2,11)";
+			if (11 != jtt.bytecode.BC_iastore.test(2, 11)) {
+				fail(runString);
+				return;
+			}
+			// (3,-14) == -14
+			runString = "(3,-14)";
+			if (-14 != jtt.bytecode.BC_iastore.test(3, -14)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iconst() {
+		begin("jtt.bytecode.BC_iconst");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_iconst.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_iconst.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_iconst.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_iconst.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.bytecode.BC_iconst.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 5
+			runString = "(5)";
+			if (5 != jtt.bytecode.BC_iconst.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 375
+			runString = "(6)";
+			if (375 != jtt.bytecode.BC_iconst.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_idiv() {
+		begin("jtt.bytecode.BC_idiv");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0 != jtt.bytecode.BC_idiv.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (2,-1) == -2
+			runString = "(2,-1)";
+			if (-2 != jtt.bytecode.BC_idiv.test(2, -1)) {
+				fail(runString);
+				return;
+			}
+			// (256,4) == 64
+			runString = "(256,4)";
+			if (64 != jtt.bytecode.BC_idiv.test(256, 4)) {
+				fail(runString);
+				return;
+			}
+			// (135,7) == 19
+			runString = "(135,7)";
+			if (19 != jtt.bytecode.BC_idiv.test(135, 7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_idiv2() {
+		begin("jtt.bytecode.BC_idiv2");
+		String runString = null;
+		try {
+			// (-2147483648,-1) == -2147483648
+			runString = "(-2147483648,-1)";
+			if (-2147483648 != jtt.bytecode.BC_idiv2.test(-2147483648, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483648
+			runString = "(-2147483648,1)";
+			if (-2147483648 != jtt.bytecode.BC_idiv2.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifeq() {
+		begin("jtt.bytecode.BC_ifeq");
+		String runString = null;
+		try {
+			// (0) == 2
+			runString = "(0)";
+			if (2 != jtt.bytecode.BC_ifeq.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -2
+			runString = "(1)";
+			if (-2 != jtt.bytecode.BC_ifeq.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifeq_2() {
+		begin("jtt.bytecode.BC_ifeq_2");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.bytecode.BC_ifeq_2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.bytecode.BC_ifeq_2.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifeq_3() {
+		begin("jtt.bytecode.BC_ifeq_3");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.bytecode.BC_ifeq_3.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.bytecode.BC_ifeq_3.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifge() {
+		begin("jtt.bytecode.BC_ifge");
+		String runString = null;
+		try {
+			// (0) == 2
+			runString = "(0)";
+			if (2 != jtt.bytecode.BC_ifge.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.bytecode.BC_ifge.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifge_2() {
+		begin("jtt.bytecode.BC_ifge_2");
+		String runString = null;
+		try {
+			// (0,1) == false
+			runString = "(0,1)";
+			if (false != jtt.bytecode.BC_ifge_2.test(0, 1)) {
+				fail(runString);
+				return;
+			}
+			// (1,0) == true
+			runString = "(1,0)";
+			if (true != jtt.bytecode.BC_ifge_2.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,1) == true
+			runString = "(1,1)";
+			if (true != jtt.bytecode.BC_ifge_2.test(1, 1)) {
+				fail(runString);
+				return;
+			}
+			// (0,-100) == true
+			runString = "(0,-100)";
+			if (true != jtt.bytecode.BC_ifge_2.test(0, -100)) {
+				fail(runString);
+				return;
+			}
+			// (-1,0) == false
+			runString = "(-1,0)";
+			if (false != jtt.bytecode.BC_ifge_2.test(-1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (-12,-12) == true
+			runString = "(-12,-12)";
+			if (true != jtt.bytecode.BC_ifge_2.test(-12, -12)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifge_3() {
+		begin("jtt.bytecode.BC_ifge_3");
+		String runString = null;
+		try {
+			// (0,1) == true
+			runString = "(0,1)";
+			if (true != jtt.bytecode.BC_ifge_3.test(0, 1)) {
+				fail(runString);
+				return;
+			}
+			// (1,0) == false
+			runString = "(1,0)";
+			if (false != jtt.bytecode.BC_ifge_3.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,1) == false
+			runString = "(1,1)";
+			if (false != jtt.bytecode.BC_ifge_3.test(1, 1)) {
+				fail(runString);
+				return;
+			}
+			// (0,-100) == false
+			runString = "(0,-100)";
+			if (false != jtt.bytecode.BC_ifge_3.test(0, -100)) {
+				fail(runString);
+				return;
+			}
+			// (-1,0) == true
+			runString = "(-1,0)";
+			if (true != jtt.bytecode.BC_ifge_3.test(-1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (-12,-12) == false
+			runString = "(-12,-12)";
+			if (false != jtt.bytecode.BC_ifge_3.test(-12, -12)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifgt() {
+		begin("jtt.bytecode.BC_ifgt");
+		String runString = null;
+		try {
+			// (0) == -2
+			runString = "(0)";
+			if (-2 != jtt.bytecode.BC_ifgt.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.bytecode.BC_ifgt.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ificmplt1() {
+		begin("jtt.bytecode.BC_ificmplt1");
+		String runString = null;
+		try {
+			// (0) == 12
+			runString = "(0)";
+			if (12 != jtt.bytecode.BC_ificmplt1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 13
+			runString = "(1)";
+			if (13 != jtt.bytecode.BC_ificmplt1.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 13
+			runString = "(2)";
+			if (13 != jtt.bytecode.BC_ificmplt1.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ificmplt2() {
+		begin("jtt.bytecode.BC_ificmplt2");
+		String runString = null;
+		try {
+			// (0) == 12
+			runString = "(0)";
+			if (12 != jtt.bytecode.BC_ificmplt2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 12
+			runString = "(1)";
+			if (12 != jtt.bytecode.BC_ificmplt2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 13
+			runString = "(2)";
+			if (13 != jtt.bytecode.BC_ificmplt2.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ificmpne1() {
+		begin("jtt.bytecode.BC_ificmpne1");
+		String runString = null;
+		try {
+			// (0) == 13
+			runString = "(0)";
+			if (13 != jtt.bytecode.BC_ificmpne1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 12
+			runString = "(1)";
+			if (12 != jtt.bytecode.BC_ificmpne1.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 13
+			runString = "(2)";
+			if (13 != jtt.bytecode.BC_ificmpne1.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ificmpne2() {
+		begin("jtt.bytecode.BC_ificmpne2");
+		String runString = null;
+		try {
+			// (0) == 13
+			runString = "(0)";
+			if (13 != jtt.bytecode.BC_ificmpne2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 12
+			runString = "(1)";
+			if (12 != jtt.bytecode.BC_ificmpne2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 13
+			runString = "(2)";
+			if (13 != jtt.bytecode.BC_ificmpne2.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifle() {
+		begin("jtt.bytecode.BC_ifle");
+		String runString = null;
+		try {
+			// (0) == 2
+			runString = "(0)";
+			if (2 != jtt.bytecode.BC_ifle.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -2
+			runString = "(1)";
+			if (-2 != jtt.bytecode.BC_ifle.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iflt() {
+		begin("jtt.bytecode.BC_iflt");
+		String runString = null;
+		try {
+			// (0) == -2
+			runString = "(0)";
+			if (-2 != jtt.bytecode.BC_iflt.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -2
+			runString = "(1)";
+			if (-2 != jtt.bytecode.BC_iflt.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 2
+			runString = "(-1)";
+			if (2 != jtt.bytecode.BC_iflt.test(-1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifne() {
+		begin("jtt.bytecode.BC_ifne");
+		String runString = null;
+		try {
+			// (0) == -2
+			runString = "(0)";
+			if (-2 != jtt.bytecode.BC_ifne.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.bytecode.BC_ifne.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifnonnull() {
+		begin("jtt.bytecode.BC_ifnonnull");
+		String runString = null;
+		try {
+			// (null) == 2
+			runString = "(null)";
+			if (2 != jtt.bytecode.BC_ifnonnull.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == -2
+			runString = "(\"\")";
+			if (-2 != jtt.bytecode.BC_ifnonnull.test("")) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifnonnull_2() {
+		begin("jtt.bytecode.BC_ifnonnull_2");
+		String runString = null;
+		try {
+			// (null) == false
+			runString = "(null)";
+			if (false != jtt.bytecode.BC_ifnonnull_2.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == true
+			runString = "(\"\")";
+			if (true != jtt.bytecode.BC_ifnonnull_2.test("")) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifnonnull_3() {
+		begin("jtt.bytecode.BC_ifnonnull_3");
+		String runString = null;
+		try {
+			// (null) == 2
+			runString = "(null)";
+			if (2 != jtt.bytecode.BC_ifnonnull_3.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == 1
+			runString = "(\"\")";
+			if (1 != jtt.bytecode.BC_ifnonnull_3.test("")) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifnull() {
+		begin("jtt.bytecode.BC_ifnull");
+		String runString = null;
+		try {
+			// (null) == -2
+			runString = "(null)";
+			if (-2 != jtt.bytecode.BC_ifnull.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == 2
+			runString = "(\"\")";
+			if (2 != jtt.bytecode.BC_ifnull.test("")) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifnull_2() {
+		begin("jtt.bytecode.BC_ifnull_2");
+		String runString = null;
+		try {
+			// (null) == true
+			runString = "(null)";
+			if (true != jtt.bytecode.BC_ifnull_2.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == false
+			runString = "(\"\")";
+			if (false != jtt.bytecode.BC_ifnull_2.test("")) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ifnull_3() {
+		begin("jtt.bytecode.BC_ifnull_3");
+		String runString = null;
+		try {
+			// (null) == 1
+			runString = "(null)";
+			if (1 != jtt.bytecode.BC_ifnull_3.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("") == 2
+			runString = "(\"\")";
+			if (2 != jtt.bytecode.BC_ifnull_3.test("")) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iinc_1() {
+		begin("jtt.bytecode.BC_iinc_1");
+		String runString = null;
+		try {
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.bytecode.BC_iinc_1.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 3
+			runString = "(2)";
+			if (3 != jtt.bytecode.BC_iinc_1.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 5
+			runString = "(4)";
+			if (5 != jtt.bytecode.BC_iinc_1.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 0
+			runString = "(-1)";
+			if (0 != jtt.bytecode.BC_iinc_1.test(-1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iinc_2() {
+		begin("jtt.bytecode.BC_iinc_2");
+		String runString = null;
+		try {
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.bytecode.BC_iinc_2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4
+			runString = "(2)";
+			if (4 != jtt.bytecode.BC_iinc_2.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 6
+			runString = "(4)";
+			if (6 != jtt.bytecode.BC_iinc_2.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == 0
+			runString = "(-2)";
+			if (0 != jtt.bytecode.BC_iinc_2.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iinc_3() {
+		begin("jtt.bytecode.BC_iinc_3");
+		String runString = null;
+		try {
+			// (1) == 52
+			runString = "(1)";
+			if (52 != jtt.bytecode.BC_iinc_3.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 53
+			runString = "(2)";
+			if (53 != jtt.bytecode.BC_iinc_3.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 55
+			runString = "(4)";
+			if (55 != jtt.bytecode.BC_iinc_3.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 50
+			runString = "(-1)";
+			if (50 != jtt.bytecode.BC_iinc_3.test(-1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iinc_4() {
+		begin("jtt.bytecode.BC_iinc_4");
+		String runString = null;
+		try {
+			// (1) == 513
+			runString = "(1)";
+			if (513 != jtt.bytecode.BC_iinc_4.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 514
+			runString = "(2)";
+			if (514 != jtt.bytecode.BC_iinc_4.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 516
+			runString = "(4)";
+			if (516 != jtt.bytecode.BC_iinc_4.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 511
+			runString = "(-1)";
+			if (511 != jtt.bytecode.BC_iinc_4.test(-1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_0() {
+		begin("jtt.bytecode.BC_iload_0");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_iload_0.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1 != jtt.bytecode.BC_iload_0.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_iload_0.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (1000345) == 1000345
+			runString = "(1000345)";
+			if (1000345 != jtt.bytecode.BC_iload_0.test(1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_0_1() {
+		begin("jtt.bytecode.BC_iload_0_1");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.bytecode.BC_iload_0_1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 0
+			runString = "(-1)";
+			if (0 != jtt.bytecode.BC_iload_0_1.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 3
+			runString = "(2)";
+			if (3 != jtt.bytecode.BC_iload_0_1.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (1000345) == 1000346
+			runString = "(1000345)";
+			if (1000346 != jtt.bytecode.BC_iload_0_1.test(1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_0_2() {
+		begin("jtt.bytecode.BC_iload_0_2");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_iload_0_2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1 != jtt.bytecode.BC_iload_0_2.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_iload_0_2.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (1000345) == 1000345
+			runString = "(1000345)";
+			if (1000345 != jtt.bytecode.BC_iload_0_2.test(1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_1() {
+		begin("jtt.bytecode.BC_iload_1");
+		String runString = null;
+		try {
+			// (1,0) == 0
+			runString = "(1,0)";
+			if (0 != jtt.bytecode.BC_iload_1.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -1
+			runString = "(1,-1)";
+			if (-1 != jtt.bytecode.BC_iload_1.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (1,2) == 2
+			runString = "(1,2)";
+			if (2 != jtt.bytecode.BC_iload_1.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (1,1000345) == 1000345
+			runString = "(1,1000345)";
+			if (1000345 != jtt.bytecode.BC_iload_1.test(1, 1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_1_1() {
+		begin("jtt.bytecode.BC_iload_1_1");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_iload_1_1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1 != jtt.bytecode.BC_iload_1_1.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_iload_1_1.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (1000345) == 1000345
+			runString = "(1000345)";
+			if (1000345 != jtt.bytecode.BC_iload_1_1.test(1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_2() {
+		begin("jtt.bytecode.BC_iload_2");
+		String runString = null;
+		try {
+			// (1,1,0) == 0
+			runString = "(1,1,0)";
+			if (0 != jtt.bytecode.BC_iload_2.test(1, 1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,-1) == -1
+			runString = "(1,1,-1)";
+			if (-1 != jtt.bytecode.BC_iload_2.test(1, 1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,2) == 2
+			runString = "(1,1,2)";
+			if (2 != jtt.bytecode.BC_iload_2.test(1, 1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1000345) == 1000345
+			runString = "(1,1,1000345)";
+			if (1000345 != jtt.bytecode.BC_iload_2.test(1, 1, 1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iload_3() {
+		begin("jtt.bytecode.BC_iload_3");
+		String runString = null;
+		try {
+			// (1,1,1,0) == 0
+			runString = "(1,1,1,0)";
+			if (0 != jtt.bytecode.BC_iload_3.test(1, 1, 1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1,-1) == -1
+			runString = "(1,1,1,-1)";
+			if (-1 != jtt.bytecode.BC_iload_3.test(1, 1, 1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1,2) == 2
+			runString = "(1,1,1,2)";
+			if (2 != jtt.bytecode.BC_iload_3.test(1, 1, 1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1,1000345) == 1000345
+			runString = "(1,1,1,1000345)";
+			if (1000345 != jtt.bytecode.BC_iload_3.test(1, 1, 1, 1000345)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_imul() {
+		begin("jtt.bytecode.BC_imul");
+		String runString = null;
+		try {
+			// (1,2) == 2
+			runString = "(1,2)";
+			if (2 != jtt.bytecode.BC_imul.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0 != jtt.bytecode.BC_imul.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 2211
+			runString = "(33,67)";
+			if (2211 != jtt.bytecode.BC_imul.test(33, 67)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -1
+			runString = "(1,-1)";
+			if (-1 != jtt.bytecode.BC_imul.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483648
+			runString = "(-2147483648,1)";
+			if (-2147483648 != jtt.bytecode.BC_imul.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,-1) == -2147483647
+			runString = "(2147483647,-1)";
+			if (-2147483647 != jtt.bytecode.BC_imul.test(2147483647, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,-1) == -2147483648
+			runString = "(-2147483648,-1)";
+			if (-2147483648 != jtt.bytecode.BC_imul.test(-2147483648, -1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ineg() {
+		begin("jtt.bytecode.BC_ineg");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_ineg.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 1
+			runString = "(-1)";
+			if (1 != jtt.bytecode.BC_ineg.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (7263) == -7263
+			runString = "(7263)";
+			if (-7263 != jtt.bytecode.BC_ineg.test(7263)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648) == -2147483648
+			runString = "(-2147483648)";
+			if (-2147483648 != jtt.bytecode.BC_ineg.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_instanceof() {
+		begin("jtt.bytecode.BC_instanceof");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.bytecode.BC_instanceof.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.bytecode.BC_instanceof.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.bytecode.BC_instanceof.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.bytecode.BC_instanceof.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.bytecode.BC_instanceof.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_invokeinterface() {
+		begin("jtt.bytecode.BC_invokeinterface");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_invokeinterface.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_invokeinterface.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_invokeinterface.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_invokeinterface.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.bytecode.BC_invokeinterface.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_invokespecial() {
+		begin("jtt.bytecode.BC_invokespecial");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_invokespecial.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_invokespecial.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_invokespecial.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_invokespecial.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.bytecode.BC_invokespecial.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_invokespecial2() {
+		begin("jtt.bytecode.BC_invokespecial2");
+		String runString = null;
+		try {
+			// (0) == 7
+			runString = "(0)";
+			if (7 != jtt.bytecode.BC_invokespecial2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 8
+			runString = "(1)";
+			if (8 != jtt.bytecode.BC_invokespecial2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 9
+			runString = "(2)";
+			if (9 != jtt.bytecode.BC_invokespecial2.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 10
+			runString = "(3)";
+			if (10 != jtt.bytecode.BC_invokespecial2.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == 3
+			runString = "(-4)";
+			if (3 != jtt.bytecode.BC_invokespecial2.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_invokestatic() {
+		begin("jtt.bytecode.BC_invokestatic");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_invokestatic.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_invokestatic.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_invokestatic.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_invokestatic.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.bytecode.BC_invokestatic.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_invokevirtual() {
+		begin("jtt.bytecode.BC_invokevirtual");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_invokevirtual.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_invokevirtual.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_invokevirtual.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_invokevirtual.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.bytecode.BC_invokevirtual.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ior() {
+		begin("jtt.bytecode.BC_ior");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3 != jtt.bytecode.BC_ior.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1 != jtt.bytecode.BC_ior.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (31,63) == 63
+			runString = "(31,63)";
+			if (63 != jtt.bytecode.BC_ior.test(31, 63)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 6
+			runString = "(6,4)";
+			if (6 != jtt.bytecode.BC_ior.test(6, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647 != jtt.bytecode.BC_ior.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_irem() {
+		begin("jtt.bytecode.BC_irem");
+		String runString = null;
+		try {
+			// (1,2) == 1
+			runString = "(1,2)";
+			if (1 != jtt.bytecode.BC_irem.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (2,-1) == 0
+			runString = "(2,-1)";
+			if (0 != jtt.bytecode.BC_irem.test(2, -1)) {
+				fail(runString);
+				return;
+			}
+			// (256,4) == 0
+			runString = "(256,4)";
+			if (0 != jtt.bytecode.BC_irem.test(256, 4)) {
+				fail(runString);
+				return;
+			}
+			// (135,7) == 2
+			runString = "(135,7)";
+			if (2 != jtt.bytecode.BC_irem.test(135, 7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_irem2() {
+		begin("jtt.bytecode.BC_irem2");
+		String runString = null;
+		try {
+			// (-2147483648,-1) == 0
+			runString = "(-2147483648,-1)";
+			if (0 != jtt.bytecode.BC_irem2.test(-2147483648, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == 0
+			runString = "(-2147483648,1)";
+			if (0 != jtt.bytecode.BC_irem2.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ireturn() {
+		begin("jtt.bytecode.BC_ireturn");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_ireturn.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_ireturn.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1 != jtt.bytecode.BC_ireturn.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (256) == 256
+			runString = "(256)";
+			if (256 != jtt.bytecode.BC_ireturn.test(256)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ishl() {
+		begin("jtt.bytecode.BC_ishl");
+		String runString = null;
+		try {
+			// (1,2) == 4
+			runString = "(1,2)";
+			if (4 != jtt.bytecode.BC_ishl.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0 != jtt.bytecode.BC_ishl.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (31,1) == 62
+			runString = "(31,1)";
+			if (62 != jtt.bytecode.BC_ishl.test(31, 1)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 96
+			runString = "(6,4)";
+			if (96 != jtt.bytecode.BC_ishl.test(6, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == 0
+			runString = "(-2147483648,1)";
+			if (0 != jtt.bytecode.BC_ishl.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ishr() {
+		begin("jtt.bytecode.BC_ishr");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0 != jtt.bytecode.BC_ishr.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (67,2) == 16
+			runString = "(67,2)";
+			if (16 != jtt.bytecode.BC_ishr.test(67, 2)) {
+				fail(runString);
+				return;
+			}
+			// (31,1) == 15
+			runString = "(31,1)";
+			if (15 != jtt.bytecode.BC_ishr.test(31, 1)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 0
+			runString = "(6,4)";
+			if (0 != jtt.bytecode.BC_ishr.test(6, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,16) == -32768
+			runString = "(-2147483648,16)";
+			if (-32768 != jtt.bytecode.BC_ishr.test(-2147483648, 16)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_isub() {
+		begin("jtt.bytecode.BC_isub");
+		String runString = null;
+		try {
+			// (1,-2) == 3
+			runString = "(1,-2)";
+			if (3 != jtt.bytecode.BC_isub.test(1, -2)) {
+				fail(runString);
+				return;
+			}
+			// (0,1) == -1
+			runString = "(0,1)";
+			if (-1 != jtt.bytecode.BC_isub.test(0, 1)) {
+				fail(runString);
+				return;
+			}
+			// (33,-67) == 100
+			runString = "(33,-67)";
+			if (100 != jtt.bytecode.BC_isub.test(33, -67)) {
+				fail(runString);
+				return;
+			}
+			// (1,1) == 0
+			runString = "(1,1)";
+			if (0 != jtt.bytecode.BC_isub.test(1, 1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,-1) == -2147483647
+			runString = "(-2147483648,-1)";
+			if (-2147483647 != jtt.bytecode.BC_isub.test(-2147483648, -1)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,-1) == -2147483648
+			runString = "(2147483647,-1)";
+			if (-2147483648 != jtt.bytecode.BC_isub.test(2147483647, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483647,2) == 2147483647
+			runString = "(-2147483647,2)";
+			if (2147483647 != jtt.bytecode.BC_isub.test(-2147483647, 2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_iushr() {
+		begin("jtt.bytecode.BC_iushr");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0 != jtt.bytecode.BC_iushr.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (67,2) == 16
+			runString = "(67,2)";
+			if (16 != jtt.bytecode.BC_iushr.test(67, 2)) {
+				fail(runString);
+				return;
+			}
+			// (31,1) == 15
+			runString = "(31,1)";
+			if (15 != jtt.bytecode.BC_iushr.test(31, 1)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 0
+			runString = "(6,4)";
+			if (0 != jtt.bytecode.BC_iushr.test(6, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,16) == 32768
+			runString = "(-2147483648,16)";
+			if (32768 != jtt.bytecode.BC_iushr.test(-2147483648, 16)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ixor() {
+		begin("jtt.bytecode.BC_ixor");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3 != jtt.bytecode.BC_ixor.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1 != jtt.bytecode.BC_ixor.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (31,63) == 32
+			runString = "(31,63)";
+			if (32 != jtt.bytecode.BC_ixor.test(31, 63)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 2
+			runString = "(6,4)";
+			if (2 != jtt.bytecode.BC_ixor.test(6, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647 != jtt.bytecode.BC_ixor.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_l2d() {
+		begin("jtt.bytecode.BC_l2d");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0 != jtt.bytecode.BC_l2d.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1.0
+			runString = "(1)";
+			if (1.0 != jtt.bytecode.BC_l2d.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (-74652389) == -7.4652389E7
+			runString = "(-74652389)";
+			if (-7.4652389E7 != jtt.bytecode.BC_l2d.test(-74652389L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_l2f() {
+		begin("jtt.bytecode.BC_l2f");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0f != jtt.bytecode.BC_l2f.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1.0
+			runString = "(1)";
+			if (1.0f != jtt.bytecode.BC_l2f.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (-74652389) == -7.4652392E7
+			runString = "(-74652389)";
+			if (-7.4652392E7f != jtt.bytecode.BC_l2f.test(-74652389L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_l2i() {
+		begin("jtt.bytecode.BC_l2i");
+		String runString = null;
+		try {
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_l2i.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_l2i.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_l2i.test(3L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1 != jtt.bytecode.BC_l2i.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483647) == -2147483647
+			runString = "(-2147483647)";
+			if (-2147483647 != jtt.bytecode.BC_l2i.test(-2147483647L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648) == -2147483648
+			runString = "(-2147483648)";
+			if (-2147483648 != jtt.bytecode.BC_l2i.test(-2147483648L)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == 2147483647
+			runString = "(2147483647)";
+			if (2147483647 != jtt.bytecode.BC_l2i.test(2147483647L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ladd() {
+		begin("jtt.bytecode.BC_ladd");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3L != jtt.bytecode.BC_ladd.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1L != jtt.bytecode.BC_ladd.test(0L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 100
+			runString = "(33,67)";
+			if (100L != jtt.bytecode.BC_ladd.test(33L, 67L)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == 0
+			runString = "(1,-1)";
+			if (0L != jtt.bytecode.BC_ladd.test(1L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647L != jtt.bytecode.BC_ladd.test(-2147483648L, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,1) == 2147483648
+			runString = "(2147483647,1)";
+			if (2147483648L != jtt.bytecode.BC_ladd.test(2147483647L, 1L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ladd2() {
+		begin("jtt.bytecode.BC_ladd2");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3L != jtt.bytecode.BC_ladd2.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1L != jtt.bytecode.BC_ladd2.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 100
+			runString = "(33,67)";
+			if (100L != jtt.bytecode.BC_ladd2.test(33, 67)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == 0
+			runString = "(1,-1)";
+			if (0L != jtt.bytecode.BC_ladd2.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647L != jtt.bytecode.BC_ladd2.test(-2147483648, 1)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,1) == 2147483648
+			runString = "(2147483647,1)";
+			if (2147483648L != jtt.bytecode.BC_ladd2.test(2147483647, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_laload() {
+		begin("jtt.bytecode.BC_laload");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.bytecode.BC_laload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1L != jtt.bytecode.BC_laload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4
+			runString = "(2)";
+			if (4L != jtt.bytecode.BC_laload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1000000000000
+			runString = "(3)";
+			if (1000000000000L != jtt.bytecode.BC_laload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_land() {
+		begin("jtt.bytecode.BC_land");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0L != jtt.bytecode.BC_land.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0L != jtt.bytecode.BC_land.test(0L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (31,63) == 31
+			runString = "(31,63)";
+			if (31L != jtt.bytecode.BC_land.test(31L, 63L)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 4
+			runString = "(6,4)";
+			if (4L != jtt.bytecode.BC_land.test(6L, 4L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == 0
+			runString = "(-2147483648,1)";
+			if (0L != jtt.bytecode.BC_land.test(-2147483648L, 1L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lastore() {
+		begin("jtt.bytecode.BC_lastore");
+		String runString = null;
+		try {
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0L != jtt.bytecode.BC_lastore.test(0, 0L)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -1
+			runString = "(1,-1)";
+			if (-1L != jtt.bytecode.BC_lastore.test(1, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (2,11) == 11
+			runString = "(2,11)";
+			if (11L != jtt.bytecode.BC_lastore.test(2, 11L)) {
+				fail(runString);
+				return;
+			}
+			// (3,-14) == -14
+			runString = "(3,-14)";
+			if (-14L != jtt.bytecode.BC_lastore.test(3, -14L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lcmp() {
+		begin("jtt.bytecode.BC_lcmp");
+		String runString = null;
+		try {
+			// (0,-1) == false
+			runString = "(0,-1)";
+			if (false != jtt.bytecode.BC_lcmp.test(0L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (77,78) == true
+			runString = "(77,78)";
+			if (true != jtt.bytecode.BC_lcmp.test(77L, 78L)) {
+				fail(runString);
+				return;
+			}
+			// (-1,0) == true
+			runString = "(-1,0)";
+			if (true != jtt.bytecode.BC_lcmp.test(-1L, 0L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldc_01() {
+		begin("jtt.bytecode.BC_ldc_01");
+		String runString = null;
+		try {
+			// (0) == -123
+			runString = "(0)";
+			if (-123 != jtt.bytecode.BC_ldc_01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldc_02() {
+		begin("jtt.bytecode.BC_ldc_02");
+		String runString = null;
+		try {
+			// (0) == -2.4
+			runString = "(0)";
+			if (-2.4f != jtt.bytecode.BC_ldc_02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldc_03() {
+		begin("jtt.bytecode.BC_ldc_03");
+		String runString = null;
+		try {
+			// (0) == -123
+			runString = "(0)";
+			if (-123L != jtt.bytecode.BC_ldc_03.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldc_04() {
+		begin("jtt.bytecode.BC_ldc_04");
+		String runString = null;
+		try {
+			// (0) == "xyz"
+			runString = "(0)";
+			if (!"xyz".equals(jtt.bytecode.BC_ldc_04.test(0))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldc_05() {
+		begin("jtt.bytecode.BC_ldc_05");
+		String runString = null;
+		try {
+			// (0) == -2.33
+			runString = "(0)";
+			if (-2.33 != jtt.bytecode.BC_ldc_05.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldc_06() {
+		begin("jtt.bytecode.BC_ldc_06");
+		String runString = null;
+		try {
+			// (0) == "jtt.bytecode.BC_ldc_06"
+			runString = "(0)";
+			if (!"jtt.bytecode.BC_ldc_06"
+					.equals(jtt.bytecode.BC_ldc_06.test(0))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldiv() {
+		begin("jtt.bytecode.BC_ldiv");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0L != jtt.bytecode.BC_ldiv.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (2,-1) == -2
+			runString = "(2,-1)";
+			if (-2L != jtt.bytecode.BC_ldiv.test(2L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (256,4) == 64
+			runString = "(256,4)";
+			if (64L != jtt.bytecode.BC_ldiv.test(256L, 4L)) {
+				fail(runString);
+				return;
+			}
+			// (135,7) == 19
+			runString = "(135,7)";
+			if (19L != jtt.bytecode.BC_ldiv.test(135L, 7L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_ldiv2() {
+		begin("jtt.bytecode.BC_ldiv2");
+		String runString = null;
+		try {
+			// (-9223372036854775808,-1) == -9223372036854775808
+			runString = "(-9223372036854775808,-1)";
+			if (-9223372036854775808L != jtt.bytecode.BC_ldiv2.test(
+					-9223372036854775808L, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-9223372036854775808,1) == -9223372036854775808
+			runString = "(-9223372036854775808,1)";
+			if (-9223372036854775808L != jtt.bytecode.BC_ldiv2.test(
+					-9223372036854775808L, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lload_0() {
+		begin("jtt.bytecode.BC_lload_0");
+		String runString = null;
+		try {
+			// (1) == 1
+			runString = "(1)";
+			if (1L != jtt.bytecode.BC_lload_0.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (-3) == -3
+			runString = "(-3)";
+			if (-3L != jtt.bytecode.BC_lload_0.test(-3L)) {
+				fail(runString);
+				return;
+			}
+			// (10000) == 10000
+			runString = "(10000)";
+			if (10000L != jtt.bytecode.BC_lload_0.test(10000L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lload_01() {
+		begin("jtt.bytecode.BC_lload_01");
+		String runString = null;
+		try {
+			// (1) == 0
+			runString = "(1)";
+			if (0L != jtt.bytecode.BC_lload_01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-3) == 0
+			runString = "(-3)";
+			if (0L != jtt.bytecode.BC_lload_01.test(-3)) {
+				fail(runString);
+				return;
+			}
+			// (100) == 0
+			runString = "(100)";
+			if (0L != jtt.bytecode.BC_lload_01.test(100)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lload_1() {
+		begin("jtt.bytecode.BC_lload_1");
+		String runString = null;
+		try {
+			// (1,1) == 1
+			runString = "(1,1)";
+			if (1L != jtt.bytecode.BC_lload_1.test(1, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (1,-3) == -3
+			runString = "(1,-3)";
+			if (-3L != jtt.bytecode.BC_lload_1.test(1, -3L)) {
+				fail(runString);
+				return;
+			}
+			// (1,10000) == 10000
+			runString = "(1,10000)";
+			if (10000L != jtt.bytecode.BC_lload_1.test(1, 10000L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lload_2() {
+		begin("jtt.bytecode.BC_lload_2");
+		String runString = null;
+		try {
+			// (1,1,1) == 1
+			runString = "(1,1,1)";
+			if (1L != jtt.bytecode.BC_lload_2.test(1, 1, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,-3) == -3
+			runString = "(1,1,-3)";
+			if (-3L != jtt.bytecode.BC_lload_2.test(1, 1, -3L)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,10000) == 10000
+			runString = "(1,1,10000)";
+			if (10000L != jtt.bytecode.BC_lload_2.test(1, 1, 10000L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lload_3() {
+		begin("jtt.bytecode.BC_lload_3");
+		String runString = null;
+		try {
+			// (1,1,1,1) == 1
+			runString = "(1,1,1,1)";
+			if (1L != jtt.bytecode.BC_lload_3.test(1, 1, 1, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1,-3) == -3
+			runString = "(1,1,1,-3)";
+			if (-3L != jtt.bytecode.BC_lload_3.test(1, 1, 1, -3L)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,1,10000) == 10000
+			runString = "(1,1,1,10000)";
+			if (10000L != jtt.bytecode.BC_lload_3.test(1, 1, 1, 10000L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lmul() {
+		begin("jtt.bytecode.BC_lmul");
+		String runString = null;
+		try {
+			// (1,2) == 2
+			runString = "(1,2)";
+			if (2L != jtt.bytecode.BC_lmul.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0L != jtt.bytecode.BC_lmul.test(0L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (33,67) == 2211
+			runString = "(33,67)";
+			if (2211L != jtt.bytecode.BC_lmul.test(33L, 67L)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -1
+			runString = "(1,-1)";
+			if (-1L != jtt.bytecode.BC_lmul.test(1L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483648
+			runString = "(-2147483648,1)";
+			if (-2147483648L != jtt.bytecode.BC_lmul.test(-2147483648L, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,-1) == -2147483647
+			runString = "(2147483647,-1)";
+			if (-2147483647L != jtt.bytecode.BC_lmul.test(2147483647L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,-1) == 2147483648
+			runString = "(-2147483648,-1)";
+			if (2147483648L != jtt.bytecode.BC_lmul.test(-2147483648L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (1000000,1000000) == 1000000000000
+			runString = "(1000000,1000000)";
+			if (1000000000000L != jtt.bytecode.BC_lmul.test(1000000L, 1000000L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lneg() {
+		begin("jtt.bytecode.BC_lneg");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.bytecode.BC_lneg.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 1
+			runString = "(-1)";
+			if (1L != jtt.bytecode.BC_lneg.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (7263) == -7263
+			runString = "(7263)";
+			if (-7263L != jtt.bytecode.BC_lneg.test(7263L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648) == 2147483648
+			runString = "(-2147483648)";
+			if (2147483648L != jtt.bytecode.BC_lneg.test(-2147483648L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lookupswitch01() {
+		begin("jtt.bytecode.BC_lookupswitch01");
+		String runString = null;
+		try {
+			// (0) == 42
+			runString = "(0)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 42
+			runString = "(1)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (66) == 42
+			runString = "(66)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(66)) {
+				fail(runString);
+				return;
+			}
+			// (67) == 0
+			runString = "(67)";
+			if (0 != jtt.bytecode.BC_lookupswitch01.test(67)) {
+				fail(runString);
+				return;
+			}
+			// (68) == 42
+			runString = "(68)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(68)) {
+				fail(runString);
+				return;
+			}
+			// (96) == 42
+			runString = "(96)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(96)) {
+				fail(runString);
+				return;
+			}
+			// (97) == 1
+			runString = "(97)";
+			if (1 != jtt.bytecode.BC_lookupswitch01.test(97)) {
+				fail(runString);
+				return;
+			}
+			// (98) == 42
+			runString = "(98)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(98)) {
+				fail(runString);
+				return;
+			}
+			// (106) == 42
+			runString = "(106)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(106)) {
+				fail(runString);
+				return;
+			}
+			// (107) == 2
+			runString = "(107)";
+			if (2 != jtt.bytecode.BC_lookupswitch01.test(107)) {
+				fail(runString);
+				return;
+			}
+			// (108) == 42
+			runString = "(108)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(108)) {
+				fail(runString);
+				return;
+			}
+			// (132) == 42
+			runString = "(132)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(132)) {
+				fail(runString);
+				return;
+			}
+			// (133) == 3
+			runString = "(133)";
+			if (3 != jtt.bytecode.BC_lookupswitch01.test(133)) {
+				fail(runString);
+				return;
+			}
+			// (134) == 42
+			runString = "(134)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(134)) {
+				fail(runString);
+				return;
+			}
+			// (211) == 42
+			runString = "(211)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(211)) {
+				fail(runString);
+				return;
+			}
+			// (212) == 4
+			runString = "(212)";
+			if (4 != jtt.bytecode.BC_lookupswitch01.test(212)) {
+				fail(runString);
+				return;
+			}
+			// (213) == 42
+			runString = "(213)";
+			if (42 != jtt.bytecode.BC_lookupswitch01.test(213)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lookupswitch02() {
+		begin("jtt.bytecode.BC_lookupswitch02");
+		String runString = null;
+		try {
+			// (0) == 42
+			runString = "(0)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 42
+			runString = "(1)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (66) == 42
+			runString = "(66)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(66)) {
+				fail(runString);
+				return;
+			}
+			// (67) == 0
+			runString = "(67)";
+			if (0 != jtt.bytecode.BC_lookupswitch02.test(67)) {
+				fail(runString);
+				return;
+			}
+			// (68) == 42
+			runString = "(68)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(68)) {
+				fail(runString);
+				return;
+			}
+			// (96) == 42
+			runString = "(96)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(96)) {
+				fail(runString);
+				return;
+			}
+			// (97) == 1
+			runString = "(97)";
+			if (1 != jtt.bytecode.BC_lookupswitch02.test(97)) {
+				fail(runString);
+				return;
+			}
+			// (98) == 42
+			runString = "(98)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(98)) {
+				fail(runString);
+				return;
+			}
+			// (106) == 42
+			runString = "(106)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(106)) {
+				fail(runString);
+				return;
+			}
+			// (107) == 2
+			runString = "(107)";
+			if (2 != jtt.bytecode.BC_lookupswitch02.test(107)) {
+				fail(runString);
+				return;
+			}
+			// (108) == 42
+			runString = "(108)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(108)) {
+				fail(runString);
+				return;
+			}
+			// (132) == 42
+			runString = "(132)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(132)) {
+				fail(runString);
+				return;
+			}
+			// (133) == 3
+			runString = "(133)";
+			if (3 != jtt.bytecode.BC_lookupswitch02.test(133)) {
+				fail(runString);
+				return;
+			}
+			// (134) == 42
+			runString = "(134)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(134)) {
+				fail(runString);
+				return;
+			}
+			// (211) == 42
+			runString = "(211)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(211)) {
+				fail(runString);
+				return;
+			}
+			// (212) == 4
+			runString = "(212)";
+			if (4 != jtt.bytecode.BC_lookupswitch02.test(212)) {
+				fail(runString);
+				return;
+			}
+			// (213) == 42
+			runString = "(213)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(213)) {
+				fail(runString);
+				return;
+			}
+			// (-121) == 42
+			runString = "(-121)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(-121)) {
+				fail(runString);
+				return;
+			}
+			// (-122) == 5
+			runString = "(-122)";
+			if (5 != jtt.bytecode.BC_lookupswitch02.test(-122)) {
+				fail(runString);
+				return;
+			}
+			// (-123) == 42
+			runString = "(-123)";
+			if (42 != jtt.bytecode.BC_lookupswitch02.test(-123)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lookupswitch03() {
+		begin("jtt.bytecode.BC_lookupswitch03");
+		String runString = null;
+		try {
+			// (0) == 42
+			runString = "(0)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 42
+			runString = "(1)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (66) == 42
+			runString = "(66)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(66)) {
+				fail(runString);
+				return;
+			}
+			// (67) == 0
+			runString = "(67)";
+			if (0 != jtt.bytecode.BC_lookupswitch03.test(67)) {
+				fail(runString);
+				return;
+			}
+			// (68) == 42
+			runString = "(68)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(68)) {
+				fail(runString);
+				return;
+			}
+			// (96) == 42
+			runString = "(96)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(96)) {
+				fail(runString);
+				return;
+			}
+			// (97) == 1
+			runString = "(97)";
+			if (1 != jtt.bytecode.BC_lookupswitch03.test(97)) {
+				fail(runString);
+				return;
+			}
+			// (98) == 42
+			runString = "(98)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(98)) {
+				fail(runString);
+				return;
+			}
+			// (106) == 42
+			runString = "(106)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(106)) {
+				fail(runString);
+				return;
+			}
+			// (107) == 2
+			runString = "(107)";
+			if (2 != jtt.bytecode.BC_lookupswitch03.test(107)) {
+				fail(runString);
+				return;
+			}
+			// (108) == 42
+			runString = "(108)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(108)) {
+				fail(runString);
+				return;
+			}
+			// (132) == 42
+			runString = "(132)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(132)) {
+				fail(runString);
+				return;
+			}
+			// (133) == 3
+			runString = "(133)";
+			if (3 != jtt.bytecode.BC_lookupswitch03.test(133)) {
+				fail(runString);
+				return;
+			}
+			// (134) == 42
+			runString = "(134)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(134)) {
+				fail(runString);
+				return;
+			}
+			// (211) == 42
+			runString = "(211)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(211)) {
+				fail(runString);
+				return;
+			}
+			// (212) == 4
+			runString = "(212)";
+			if (4 != jtt.bytecode.BC_lookupswitch03.test(212)) {
+				fail(runString);
+				return;
+			}
+			// (213) == 42
+			runString = "(213)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(213)) {
+				fail(runString);
+				return;
+			}
+			// (-121) == 42
+			runString = "(-121)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(-121)) {
+				fail(runString);
+				return;
+			}
+			// (-122) == 5
+			runString = "(-122)";
+			if (5 != jtt.bytecode.BC_lookupswitch03.test(-122)) {
+				fail(runString);
+				return;
+			}
+			// (-123) == 42
+			runString = "(-123)";
+			if (42 != jtt.bytecode.BC_lookupswitch03.test(-123)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lookupswitch04() {
+		begin("jtt.bytecode.BC_lookupswitch04");
+		String runString = null;
+		try {
+			// (0) == 42
+			runString = "(0)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 42
+			runString = "(1)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (66) == 42
+			runString = "(66)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(66)) {
+				fail(runString);
+				return;
+			}
+			// (67) == 0
+			runString = "(67)";
+			if (0 != jtt.bytecode.BC_lookupswitch04.test(67)) {
+				fail(runString);
+				return;
+			}
+			// (68) == 42
+			runString = "(68)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(68)) {
+				fail(runString);
+				return;
+			}
+			// (96) == 42
+			runString = "(96)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(96)) {
+				fail(runString);
+				return;
+			}
+			// (97) == 1
+			runString = "(97)";
+			if (1 != jtt.bytecode.BC_lookupswitch04.test(97)) {
+				fail(runString);
+				return;
+			}
+			// (98) == 42
+			runString = "(98)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(98)) {
+				fail(runString);
+				return;
+			}
+			// (106) == 42
+			runString = "(106)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(106)) {
+				fail(runString);
+				return;
+			}
+			// (107) == 2
+			runString = "(107)";
+			if (2 != jtt.bytecode.BC_lookupswitch04.test(107)) {
+				fail(runString);
+				return;
+			}
+			// (108) == 42
+			runString = "(108)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(108)) {
+				fail(runString);
+				return;
+			}
+			// (132) == 42
+			runString = "(132)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(132)) {
+				fail(runString);
+				return;
+			}
+			// (133) == 3
+			runString = "(133)";
+			if (3 != jtt.bytecode.BC_lookupswitch04.test(133)) {
+				fail(runString);
+				return;
+			}
+			// (134) == 42
+			runString = "(134)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(134)) {
+				fail(runString);
+				return;
+			}
+			// (211) == 42
+			runString = "(211)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(211)) {
+				fail(runString);
+				return;
+			}
+			// (212) == 4
+			runString = "(212)";
+			if (4 != jtt.bytecode.BC_lookupswitch04.test(212)) {
+				fail(runString);
+				return;
+			}
+			// (213) == 42
+			runString = "(213)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(213)) {
+				fail(runString);
+				return;
+			}
+			// (-121) == 42
+			runString = "(-121)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(-121)) {
+				fail(runString);
+				return;
+			}
+			// (-122) == 5
+			runString = "(-122)";
+			if (5 != jtt.bytecode.BC_lookupswitch04.test(-122)) {
+				fail(runString);
+				return;
+			}
+			// (-123) == 42
+			runString = "(-123)";
+			if (42 != jtt.bytecode.BC_lookupswitch04.test(-123)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lor() {
+		begin("jtt.bytecode.BC_lor");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3L != jtt.bytecode.BC_lor.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1L != jtt.bytecode.BC_lor.test(0L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (31,63) == 63
+			runString = "(31,63)";
+			if (63L != jtt.bytecode.BC_lor.test(31L, 63L)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 6
+			runString = "(6,4)";
+			if (6L != jtt.bytecode.BC_lor.test(6L, 4L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647L != jtt.bytecode.BC_lor.test(-2147483648L, 1L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lrem() {
+		begin("jtt.bytecode.BC_lrem");
+		String runString = null;
+		try {
+			// (1,2) == 1
+			runString = "(1,2)";
+			if (1L != jtt.bytecode.BC_lrem.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (2,-1) == 0
+			runString = "(2,-1)";
+			if (0L != jtt.bytecode.BC_lrem.test(2L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (256,4) == 0
+			runString = "(256,4)";
+			if (0L != jtt.bytecode.BC_lrem.test(256L, 4L)) {
+				fail(runString);
+				return;
+			}
+			// (135,7) == 2
+			runString = "(135,7)";
+			if (2L != jtt.bytecode.BC_lrem.test(135L, 7L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lrem2() {
+		begin("jtt.bytecode.BC_lrem2");
+		String runString = null;
+		try {
+			// (-9223372036854775808,-1) == 0
+			runString = "(-9223372036854775808,-1)";
+			if (0L != jtt.bytecode.BC_lrem2.test(-9223372036854775808L, -1)) {
+				fail(runString);
+				return;
+			}
+			// (-9223372036854775808,1) == 0
+			runString = "(-9223372036854775808,1)";
+			if (0L != jtt.bytecode.BC_lrem2.test(-9223372036854775808L, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lreturn() {
+		begin("jtt.bytecode.BC_lreturn");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.bytecode.BC_lreturn.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1L != jtt.bytecode.BC_lreturn.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if (-1L != jtt.bytecode.BC_lreturn.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (256) == 256
+			runString = "(256)";
+			if (256L != jtt.bytecode.BC_lreturn.test(256L)) {
+				fail(runString);
+				return;
+			}
+			// (1000000000000) == 1000000000000
+			runString = "(1000000000000)";
+			if (1000000000000L != jtt.bytecode.BC_lreturn.test(1000000000000L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lshl() {
+		begin("jtt.bytecode.BC_lshl");
+		String runString = null;
+		try {
+			// (1,2) == 4
+			runString = "(1,2)";
+			if (4L != jtt.bytecode.BC_lshl.test(1L, 2)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0L != jtt.bytecode.BC_lshl.test(0L, -1)) {
+				fail(runString);
+				return;
+			}
+			// (31,1) == 62
+			runString = "(31,1)";
+			if (62L != jtt.bytecode.BC_lshl.test(31L, 1)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 96
+			runString = "(6,4)";
+			if (96L != jtt.bytecode.BC_lshl.test(6L, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -4294967296
+			runString = "(-2147483648,1)";
+			if (-4294967296L != jtt.bytecode.BC_lshl.test(-2147483648L, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lshr() {
+		begin("jtt.bytecode.BC_lshr");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0L != jtt.bytecode.BC_lshr.test(1L, 2)) {
+				fail(runString);
+				return;
+			}
+			// (67,2) == 16
+			runString = "(67,2)";
+			if (16L != jtt.bytecode.BC_lshr.test(67L, 2)) {
+				fail(runString);
+				return;
+			}
+			// (31,1) == 15
+			runString = "(31,1)";
+			if (15L != jtt.bytecode.BC_lshr.test(31L, 1)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 0
+			runString = "(6,4)";
+			if (0L != jtt.bytecode.BC_lshr.test(6L, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,16) == -32768
+			runString = "(-2147483648,16)";
+			if (-32768L != jtt.bytecode.BC_lshr.test(-2147483648L, 16)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lsub() {
+		begin("jtt.bytecode.BC_lsub");
+		String runString = null;
+		try {
+			// (1,-2) == 3
+			runString = "(1,-2)";
+			if (3L != jtt.bytecode.BC_lsub.test(1L, -2L)) {
+				fail(runString);
+				return;
+			}
+			// (0,1) == -1
+			runString = "(0,1)";
+			if (-1L != jtt.bytecode.BC_lsub.test(0L, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (33,-67) == 100
+			runString = "(33,-67)";
+			if (100L != jtt.bytecode.BC_lsub.test(33L, -67L)) {
+				fail(runString);
+				return;
+			}
+			// (1,1) == 0
+			runString = "(1,1)";
+			if (0L != jtt.bytecode.BC_lsub.test(1L, 1L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,-1) == -2147483647
+			runString = "(-2147483648,-1)";
+			if (-2147483647L != jtt.bytecode.BC_lsub.test(-2147483648L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647,-1) == 2147483648
+			runString = "(2147483647,-1)";
+			if (2147483648L != jtt.bytecode.BC_lsub.test(2147483647L, -1L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lushr() {
+		begin("jtt.bytecode.BC_lushr");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0L != jtt.bytecode.BC_lushr.test(1L, 2)) {
+				fail(runString);
+				return;
+			}
+			// (67,2) == 16
+			runString = "(67,2)";
+			if (16L != jtt.bytecode.BC_lushr.test(67L, 2)) {
+				fail(runString);
+				return;
+			}
+			// (31,1) == 15
+			runString = "(31,1)";
+			if (15L != jtt.bytecode.BC_lushr.test(31L, 1)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 0
+			runString = "(6,4)";
+			if (0L != jtt.bytecode.BC_lushr.test(6L, 4)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,16) == 281474976677888
+			runString = "(-2147483648,16)";
+			if (281474976677888L != jtt.bytecode.BC_lushr
+					.test(-2147483648L, 16)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_lxor() {
+		begin("jtt.bytecode.BC_lxor");
+		String runString = null;
+		try {
+			// (1,2) == 3
+			runString = "(1,2)";
+			if (3L != jtt.bytecode.BC_lxor.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -1
+			runString = "(0,-1)";
+			if (-1L != jtt.bytecode.BC_lxor.test(0L, -1L)) {
+				fail(runString);
+				return;
+			}
+			// (31,63) == 32
+			runString = "(31,63)";
+			if (32L != jtt.bytecode.BC_lxor.test(31L, 63L)) {
+				fail(runString);
+				return;
+			}
+			// (6,4) == 2
+			runString = "(6,4)";
+			if (2L != jtt.bytecode.BC_lxor.test(6L, 4L)) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648,1) == -2147483647
+			runString = "(-2147483648,1)";
+			if (-2147483647L != jtt.bytecode.BC_lxor.test(-2147483648L, 1L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_monitorenter() {
+		begin("jtt.bytecode.BC_monitorenter");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_monitorenter.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_monitorenter.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -2
+			runString = "(-2)";
+			if (-2 != jtt.bytecode.BC_monitorenter.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_monitorenter02() {
+		begin("jtt.bytecode.BC_monitorenter02");
+		String runString = null;
+		try {
+			// (0,1) == 0
+			runString = "(0,1)";
+			if (0 != jtt.bytecode.BC_monitorenter02.test(0, 1)) {
+				fail(runString);
+				return;
+			}
+			// (1,1) == 1
+			runString = "(1,1)";
+			if (1 != jtt.bytecode.BC_monitorenter02.test(1, 1)) {
+				fail(runString);
+				return;
+			}
+			// (-2,1) == -2
+			runString = "(-2,1)";
+			if (-2 != jtt.bytecode.BC_monitorenter02.test(-2, 1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_multianewarray01() {
+		begin("jtt.bytecode.BC_multianewarray01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_multianewarray01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_multianewarray01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_multianewarray02() {
+		begin("jtt.bytecode.BC_multianewarray02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_multianewarray02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_multianewarray02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_multianewarray03() {
+		begin("jtt.bytecode.BC_multianewarray03");
+		String runString = null;
+		try {
+			// (1) == 4
+			runString = "(1)";
+			if (4 != jtt.bytecode.BC_multianewarray03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 8
+			runString = "(2)";
+			if (8 != jtt.bytecode.BC_multianewarray03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 12
+			runString = "(3)";
+			if (12 != jtt.bytecode.BC_multianewarray03.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_multianewarray04() {
+		begin("jtt.bytecode.BC_multianewarray04");
+		String runString = null;
+		try {
+			// (1) == 41
+			runString = "(1)";
+			if (41 != jtt.bytecode.BC_multianewarray04.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 81
+			runString = "(2)";
+			if (81 != jtt.bytecode.BC_multianewarray04.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_new() {
+		begin("jtt.bytecode.BC_new");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_new.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_newarray() {
+		begin("jtt.bytecode.BC_newarray");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_newarray.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_newarray.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_putfield() {
+		begin("jtt.bytecode.BC_putfield");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_putfield.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_putfield.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_putfield.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.bytecode.BC_putfield.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_putstatic() {
+		begin("jtt.bytecode.BC_putstatic");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.bytecode.BC_putstatic.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.bytecode.BC_putstatic.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.bytecode.BC_putstatic.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.bytecode.BC_putstatic.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.bytecode.BC_putstatic.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_saload() {
+		begin("jtt.bytecode.BC_saload");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((short) 0 != jtt.bytecode.BC_saload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if ((short) -1 != jtt.bytecode.BC_saload.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4
+			runString = "(2)";
+			if ((short) 4 != jtt.bytecode.BC_saload.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 10000
+			runString = "(3)";
+			if ((short) 10000 != jtt.bytecode.BC_saload.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_sastore() {
+		begin("jtt.bytecode.BC_sastore");
+		String runString = null;
+		try {
+			// (0,0) == 0
+			runString = "(0,0)";
+			if ((short) 0 != jtt.bytecode.BC_sastore.test(0, (short) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -1
+			runString = "(1,-1)";
+			if ((short) -1 != jtt.bytecode.BC_sastore.test(1, (short) -1)) {
+				fail(runString);
+				return;
+			}
+			// (2,11) == 11
+			runString = "(2,11)";
+			if ((short) 11 != jtt.bytecode.BC_sastore.test(2, (short) 11)) {
+				fail(runString);
+				return;
+			}
+			// (3,-14) == -14
+			runString = "(3,-14)";
+			if ((short) -14 != jtt.bytecode.BC_sastore.test(3, (short) -14)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_tableswitch() {
+		begin("jtt.bytecode.BC_tableswitch");
+		String runString = null;
+		try {
+			// (-1) == 42
+			runString = "(-1)";
+			if (42 != jtt.bytecode.BC_tableswitch.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.bytecode.BC_tableswitch.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 20
+			runString = "(1)";
+			if (20 != jtt.bytecode.BC_tableswitch.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 30
+			runString = "(2)";
+			if (30 != jtt.bytecode.BC_tableswitch.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 42
+			runString = "(3)";
+			if (42 != jtt.bytecode.BC_tableswitch.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 40
+			runString = "(4)";
+			if (40 != jtt.bytecode.BC_tableswitch.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 50
+			runString = "(5)";
+			if (50 != jtt.bytecode.BC_tableswitch.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 42
+			runString = "(6)";
+			if (42 != jtt.bytecode.BC_tableswitch.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_tableswitch2() {
+		begin("jtt.bytecode.BC_tableswitch2");
+		String runString = null;
+		try {
+			// (-1) == 11
+			runString = "(-1)";
+			if (11 != jtt.bytecode.BC_tableswitch2.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.bytecode.BC_tableswitch2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.bytecode.BC_tableswitch2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 55
+			runString = "(5)";
+			if (55 != jtt.bytecode.BC_tableswitch2.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 66
+			runString = "(6)";
+			if (66 != jtt.bytecode.BC_tableswitch2.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 77
+			runString = "(7)";
+			if (77 != jtt.bytecode.BC_tableswitch2.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == 11
+			runString = "(8)";
+			if (11 != jtt.bytecode.BC_tableswitch2.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_tableswitch3() {
+		begin("jtt.bytecode.BC_tableswitch3");
+		String runString = null;
+		try {
+			// (-1) == 11
+			runString = "(-1)";
+			if (11 != jtt.bytecode.BC_tableswitch3.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == 22
+			runString = "(-2)";
+			if (22 != jtt.bytecode.BC_tableswitch3.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-3) == 99
+			runString = "(-3)";
+			if (99 != jtt.bytecode.BC_tableswitch3.test(-3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == 99
+			runString = "(-4)";
+			if (99 != jtt.bytecode.BC_tableswitch3.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 77
+			runString = "(1)";
+			if (77 != jtt.bytecode.BC_tableswitch3.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 99
+			runString = "(2)";
+			if (99 != jtt.bytecode.BC_tableswitch3.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (10) == 99
+			runString = "(10)";
+			if (99 != jtt.bytecode.BC_tableswitch3.test(10)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_tableswitch4() {
+		begin("jtt.bytecode.BC_tableswitch4");
+		String runString = null;
+		try {
+			// (-1) == 11
+			runString = "(-1)";
+			if (11 != jtt.bytecode.BC_tableswitch4.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.bytecode.BC_tableswitch4.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.bytecode.BC_tableswitch4.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == 55
+			runString = "(-5)";
+			if (55 != jtt.bytecode.BC_tableswitch4.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == 44
+			runString = "(-4)";
+			if (44 != jtt.bytecode.BC_tableswitch4.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-3) == 33
+			runString = "(-3)";
+			if (33 != jtt.bytecode.BC_tableswitch4.test(-3)) {
+				fail(runString);
+				return;
+			}
+			// (-8) == 11
+			runString = "(-8)";
+			if (11 != jtt.bytecode.BC_tableswitch4.test(-8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_wide01() {
+		begin("jtt.bytecode.BC_wide01");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.bytecode.BC_wide01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 12
+			runString = "(1)";
+			if (12 != jtt.bytecode.BC_wide01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_bytecode_BC_wide02() {
+		begin("jtt.bytecode.BC_wide02");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.bytecode.BC_wide02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 12
+			runString = "(1)";
+			if (12 != jtt.bytecode.BC_wide02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_ArrayLength01() {
+		begin("jtt.optimize.ArrayLength01");
+		String runString = null;
+		try {
+			// (0) == 5
+			runString = "(0)";
+			if (5 != jtt.optimize.ArrayLength01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 6
+			runString = "(1)";
+			if (6 != jtt.optimize.ArrayLength01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 7
+			runString = "(2)";
+			if (7 != jtt.optimize.ArrayLength01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 8
+			runString = "(3)";
+			if (8 != jtt.optimize.ArrayLength01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.optimize.ArrayLength01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_idiv_16() {
+		begin("jtt.optimize.BC_idiv_16");
+		String runString = null;
+		try {
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0 != jtt.optimize.BC_idiv_16.test(0, 0)) {
+				fail(runString);
+				return;
+			}
+			// (0,16) == 1
+			runString = "(0,16)";
+			if (1 != jtt.optimize.BC_idiv_16.test(0, 16)) {
+				fail(runString);
+				return;
+			}
+			// (0,17) == 1
+			runString = "(0,17)";
+			if (1 != jtt.optimize.BC_idiv_16.test(0, 17)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == 0
+			runString = "(0,-1)";
+			if (0 != jtt.optimize.BC_idiv_16.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (0,-16) == -1
+			runString = "(0,-16)";
+			if (-1 != jtt.optimize.BC_idiv_16.test(0, -16)) {
+				fail(runString);
+				return;
+			}
+			// (0,-17) == -1
+			runString = "(0,-17)";
+			if (-1 != jtt.optimize.BC_idiv_16.test(0, -17)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1024) == -64
+			runString = "(0,-1024)";
+			if (-64 != jtt.optimize.BC_idiv_16.test(0, -1024)) {
+				fail(runString);
+				return;
+			}
+			// (1,0) == 0
+			runString = "(1,0)";
+			if (0 != jtt.optimize.BC_idiv_16.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,16) == 1
+			runString = "(1,16)";
+			if (1 != jtt.optimize.BC_idiv_16.test(1, 16)) {
+				fail(runString);
+				return;
+			}
+			// (1,17) == 1
+			runString = "(1,17)";
+			if (1 != jtt.optimize.BC_idiv_16.test(1, 17)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == 0
+			runString = "(1,-1)";
+			if (0 != jtt.optimize.BC_idiv_16.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (1,-16) == -1
+			runString = "(1,-16)";
+			if (-1 != jtt.optimize.BC_idiv_16.test(1, -16)) {
+				fail(runString);
+				return;
+			}
+			// (1,-17) == -1
+			runString = "(1,-17)";
+			if (-1 != jtt.optimize.BC_idiv_16.test(1, -17)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1024) == -64
+			runString = "(1,-1024)";
+			if (-64 != jtt.optimize.BC_idiv_16.test(1, -1024)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_idiv_4() {
+		begin("jtt.optimize.BC_idiv_4");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.optimize.BC_idiv_4.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 1
+			runString = "(4)";
+			if (1 != jtt.optimize.BC_idiv_4.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 1
+			runString = "(5)";
+			if (1 != jtt.optimize.BC_idiv_4.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 0
+			runString = "(-1)";
+			if (0 != jtt.optimize.BC_idiv_4.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -1
+			runString = "(-4)";
+			if (-1 != jtt.optimize.BC_idiv_4.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == -1
+			runString = "(-5)";
+			if (-1 != jtt.optimize.BC_idiv_4.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-256) == -64
+			runString = "(-256)";
+			if (-64 != jtt.optimize.BC_idiv_4.test(-256)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_imul_16() {
+		begin("jtt.optimize.BC_imul_16");
+		String runString = null;
+		try {
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0 != jtt.optimize.BC_imul_16.test(0, 0)) {
+				fail(runString);
+				return;
+			}
+			// (0,16) == 256
+			runString = "(0,16)";
+			if (256 != jtt.optimize.BC_imul_16.test(0, 16)) {
+				fail(runString);
+				return;
+			}
+			// (0,17) == 272
+			runString = "(0,17)";
+			if (272 != jtt.optimize.BC_imul_16.test(0, 17)) {
+				fail(runString);
+				return;
+			}
+			// (0,-1) == -16
+			runString = "(0,-1)";
+			if (-16 != jtt.optimize.BC_imul_16.test(0, -1)) {
+				fail(runString);
+				return;
+			}
+			// (0,-16) == -256
+			runString = "(0,-16)";
+			if (-256 != jtt.optimize.BC_imul_16.test(0, -16)) {
+				fail(runString);
+				return;
+			}
+			// (0,-17) == -272
+			runString = "(0,-17)";
+			if (-272 != jtt.optimize.BC_imul_16.test(0, -17)) {
+				fail(runString);
+				return;
+			}
+			// (0,2147483647) == -16
+			runString = "(0,2147483647)";
+			if (-16 != jtt.optimize.BC_imul_16.test(0, 2147483647)) {
+				fail(runString);
+				return;
+			}
+			// (0,-2147483648) == 0
+			runString = "(0,-2147483648)";
+			if (0 != jtt.optimize.BC_imul_16.test(0, -2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (1,0) == 0
+			runString = "(1,0)";
+			if (0 != jtt.optimize.BC_imul_16.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,16) == 256
+			runString = "(1,16)";
+			if (256 != jtt.optimize.BC_imul_16.test(1, 16)) {
+				fail(runString);
+				return;
+			}
+			// (1,17) == 272
+			runString = "(1,17)";
+			if (272 != jtt.optimize.BC_imul_16.test(1, 17)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1) == -16
+			runString = "(1,-1)";
+			if (-16 != jtt.optimize.BC_imul_16.test(1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (1,-16) == -256
+			runString = "(1,-16)";
+			if (-256 != jtt.optimize.BC_imul_16.test(1, -16)) {
+				fail(runString);
+				return;
+			}
+			// (1,-17) == -272
+			runString = "(1,-17)";
+			if (-272 != jtt.optimize.BC_imul_16.test(1, -17)) {
+				fail(runString);
+				return;
+			}
+			// (1,2147483647) == -16
+			runString = "(1,2147483647)";
+			if (-16 != jtt.optimize.BC_imul_16.test(1, 2147483647)) {
+				fail(runString);
+				return;
+			}
+			// (1,-2147483648) == 0
+			runString = "(1,-2147483648)";
+			if (0 != jtt.optimize.BC_imul_16.test(1, -2147483648)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_imul_4() {
+		begin("jtt.optimize.BC_imul_4");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.optimize.BC_imul_4.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 16
+			runString = "(4)";
+			if (16 != jtt.optimize.BC_imul_4.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 20
+			runString = "(5)";
+			if (20 != jtt.optimize.BC_imul_4.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -4
+			runString = "(-1)";
+			if (-4 != jtt.optimize.BC_imul_4.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -16
+			runString = "(-4)";
+			if (-16 != jtt.optimize.BC_imul_4.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == -20
+			runString = "(-5)";
+			if (-20 != jtt.optimize.BC_imul_4.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-256) == -1024
+			runString = "(-256)";
+			if (-1024 != jtt.optimize.BC_imul_4.test(-256)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_ldiv_16() {
+		begin("jtt.optimize.BC_ldiv_16");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.optimize.BC_ldiv_16.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (16) == 1
+			runString = "(16)";
+			if (1L != jtt.optimize.BC_ldiv_16.test(16L)) {
+				fail(runString);
+				return;
+			}
+			// (17) == 1
+			runString = "(17)";
+			if (1L != jtt.optimize.BC_ldiv_16.test(17L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 0
+			runString = "(-1)";
+			if (0L != jtt.optimize.BC_ldiv_16.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (-16) == -1
+			runString = "(-16)";
+			if (-1L != jtt.optimize.BC_ldiv_16.test(-16L)) {
+				fail(runString);
+				return;
+			}
+			// (-17) == -1
+			runString = "(-17)";
+			if (-1L != jtt.optimize.BC_ldiv_16.test(-17L)) {
+				fail(runString);
+				return;
+			}
+			// (-1024) == -64
+			runString = "(-1024)";
+			if (-64L != jtt.optimize.BC_ldiv_16.test(-1024L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_ldiv_4() {
+		begin("jtt.optimize.BC_ldiv_4");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.optimize.BC_ldiv_4.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 1
+			runString = "(4)";
+			if (1L != jtt.optimize.BC_ldiv_4.test(4L)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 1
+			runString = "(5)";
+			if (1L != jtt.optimize.BC_ldiv_4.test(5L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == 0
+			runString = "(-1)";
+			if (0L != jtt.optimize.BC_ldiv_4.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -1
+			runString = "(-4)";
+			if (-1L != jtt.optimize.BC_ldiv_4.test(-4L)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == -1
+			runString = "(-5)";
+			if (-1L != jtt.optimize.BC_ldiv_4.test(-5L)) {
+				fail(runString);
+				return;
+			}
+			// (-256) == -64
+			runString = "(-256)";
+			if (-64L != jtt.optimize.BC_ldiv_4.test(-256L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_lmul_16() {
+		begin("jtt.optimize.BC_lmul_16");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.optimize.BC_lmul_16.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (16) == 256
+			runString = "(16)";
+			if (256L != jtt.optimize.BC_lmul_16.test(16L)) {
+				fail(runString);
+				return;
+			}
+			// (17) == 272
+			runString = "(17)";
+			if (272L != jtt.optimize.BC_lmul_16.test(17L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -16
+			runString = "(-1)";
+			if (-16L != jtt.optimize.BC_lmul_16.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (-16) == -256
+			runString = "(-16)";
+			if (-256L != jtt.optimize.BC_lmul_16.test(-16L)) {
+				fail(runString);
+				return;
+			}
+			// (-17) == -272
+			runString = "(-17)";
+			if (-272L != jtt.optimize.BC_lmul_16.test(-17L)) {
+				fail(runString);
+				return;
+			}
+			// (-1024) == -16384
+			runString = "(-1024)";
+			if (-16384L != jtt.optimize.BC_lmul_16.test(-1024L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_lmul_4() {
+		begin("jtt.optimize.BC_lmul_4");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.optimize.BC_lmul_4.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 16
+			runString = "(4)";
+			if (16L != jtt.optimize.BC_lmul_4.test(4L)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 20
+			runString = "(5)";
+			if (20L != jtt.optimize.BC_lmul_4.test(5L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -4
+			runString = "(-1)";
+			if (-4L != jtt.optimize.BC_lmul_4.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -16
+			runString = "(-4)";
+			if (-16L != jtt.optimize.BC_lmul_4.test(-4L)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == -20
+			runString = "(-5)";
+			if (-20L != jtt.optimize.BC_lmul_4.test(-5L)) {
+				fail(runString);
+				return;
+			}
+			// (-256) == -1024
+			runString = "(-256)";
+			if (-1024L != jtt.optimize.BC_lmul_4.test(-256L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_lshr_C16() {
+		begin("jtt.optimize.BC_lshr_C16");
+		String runString = null;
+		try {
+			// (87224824140) == 1330945
+			runString = "(87224824140)";
+			if (1330945L != jtt.optimize.BC_lshr_C16.test(87224824140L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_lshr_C24() {
+		begin("jtt.optimize.BC_lshr_C24");
+		String runString = null;
+		try {
+			// (87224824140) == 5199
+			runString = "(87224824140)";
+			if (5199L != jtt.optimize.BC_lshr_C24.test(87224824140L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BC_lshr_C32() {
+		begin("jtt.optimize.BC_lshr_C32");
+		String runString = null;
+		try {
+			// (87224824140) == 20
+			runString = "(87224824140)";
+			if (20L != jtt.optimize.BC_lshr_C32.test(87224824140L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_BlockSkip01() {
+		begin("jtt.optimize.BlockSkip01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.BlockSkip01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.BlockSkip01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.optimize.BlockSkip01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.optimize.BlockSkip01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.optimize.BlockSkip01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Cmov01() {
+		begin("jtt.optimize.Cmov01");
+		String runString = null;
+		try {
+			// (-1,-1) == true
+			runString = "(-1,-1)";
+			if (true != jtt.optimize.Cmov01.test(-1, -1)) {
+				fail(runString);
+				return;
+			}
+			// (1,10) == true
+			runString = "(1,10)";
+			if (true != jtt.optimize.Cmov01.test(1, 10)) {
+				fail(runString);
+				return;
+			}
+			// (1,0) == false
+			runString = "(1,0)";
+			if (false != jtt.optimize.Cmov01.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_DeadCode01() {
+		begin("jtt.optimize.DeadCode01");
+		String runString = null;
+		try {
+			// (0) == 4
+			runString = "(0)";
+			if (4 != jtt.optimize.DeadCode01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 5
+			runString = "(1)";
+			if (5 != jtt.optimize.DeadCode01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 6
+			runString = "(2)";
+			if (6 != jtt.optimize.DeadCode01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 4
+			runString = "(3)";
+			if (4 != jtt.optimize.DeadCode01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 5
+			runString = "(4)";
+			if (5 != jtt.optimize.DeadCode01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 7
+			runString = "(6)";
+			if (7 != jtt.optimize.DeadCode01.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Cast01() {
+		begin("jtt.optimize.Fold_Cast01");
+		String runString = null;
+		try {
+			// (0) == 9
+			runString = "(0)";
+			if (9 != jtt.optimize.Fold_Cast01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 9
+			runString = "(1)";
+			if (9 != jtt.optimize.Fold_Cast01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NullPointerException
+			try {
+				runString = "(2)";
+				jtt.optimize.Fold_Cast01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Convert01() {
+		begin("jtt.optimize.Fold_Convert01");
+		String runString = null;
+		try {
+			// (0) == -128
+			runString = "(0)";
+			if (-128 != jtt.optimize.Fold_Convert01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -32768
+			runString = "(1)";
+			if (-32768 != jtt.optimize.Fold_Convert01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 65535
+			runString = "(2)";
+			if (65535 != jtt.optimize.Fold_Convert01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Convert02() {
+		begin("jtt.optimize.Fold_Convert02");
+		String runString = null;
+		try {
+			// (0) == -2147483648
+			runString = "(0)";
+			if (-2147483648L != jtt.optimize.Fold_Convert02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -33
+			runString = "(1)";
+			if (-33L != jtt.optimize.Fold_Convert02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -78
+			runString = "(2)";
+			if (-78L != jtt.optimize.Fold_Convert02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Convert03() {
+		begin("jtt.optimize.Fold_Convert03");
+		String runString = null;
+		try {
+			// (0) == 1024.0
+			runString = "(0)";
+			if (1024.0f != jtt.optimize.Fold_Convert03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -33.0
+			runString = "(1)";
+			if (-33.0f != jtt.optimize.Fold_Convert03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -78.1
+			runString = "(2)";
+			if (-78.1f != jtt.optimize.Fold_Convert03.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Convert04() {
+		begin("jtt.optimize.Fold_Convert04");
+		String runString = null;
+		try {
+			// (0) == 1024.0
+			runString = "(0)";
+			if (1024.0 != jtt.optimize.Fold_Convert04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1.25
+			runString = "(1)";
+			if (-1.25 != jtt.optimize.Fold_Convert04.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Double01() {
+		begin("jtt.optimize.Fold_Double01");
+		String runString = null;
+		try {
+			// (0.0) == 10.0
+			runString = "(0.0)";
+			if (10.0 != jtt.optimize.Fold_Double01.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 11.0
+			runString = "(1.0)";
+			if (11.0 != jtt.optimize.Fold_Double01.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 12.0
+			runString = "(2.0)";
+			if (12.0 != jtt.optimize.Fold_Double01.test(2.0)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 13.0
+			runString = "(3.0)";
+			if (13.0 != jtt.optimize.Fold_Double01.test(3.0)) {
+				fail(runString);
+				return;
+			}
+			// (4.0) == 14.0
+			runString = "(4.0)";
+			if (14.0 != jtt.optimize.Fold_Double01.test(4.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Double02() {
+		begin("jtt.optimize.Fold_Double02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.Fold_Double02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.Fold_Double02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.optimize.Fold_Double02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.optimize.Fold_Double02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.optimize.Fold_Double02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.optimize.Fold_Double02.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Float01() {
+		begin("jtt.optimize.Fold_Float01");
+		String runString = null;
+		try {
+			// (0.0) == 10.0
+			runString = "(0.0)";
+			if (10.0f != jtt.optimize.Fold_Float01.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 11.0
+			runString = "(1.0)";
+			if (11.0f != jtt.optimize.Fold_Float01.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 12.0
+			runString = "(2.0)";
+			if (12.0f != jtt.optimize.Fold_Float01.test(2.0f)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 13.0
+			runString = "(3.0)";
+			if (13.0f != jtt.optimize.Fold_Float01.test(3.0f)) {
+				fail(runString);
+				return;
+			}
+			// (4.0) == 14.0
+			runString = "(4.0)";
+			if (14.0f != jtt.optimize.Fold_Float01.test(4.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Float02() {
+		begin("jtt.optimize.Fold_Float02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.Fold_Float02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.Fold_Float02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.optimize.Fold_Float02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.optimize.Fold_Float02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.optimize.Fold_Float02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.optimize.Fold_Float02.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_InstanceOf01() {
+		begin("jtt.optimize.Fold_InstanceOf01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.Fold_InstanceOf01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.Fold_InstanceOf01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.optimize.Fold_InstanceOf01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Int01() {
+		begin("jtt.optimize.Fold_Int01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.Fold_Int01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.optimize.Fold_Int01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Fold_Int01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13 != jtt.optimize.Fold_Int01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14 != jtt.optimize.Fold_Int01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15 != jtt.optimize.Fold_Int01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16 != jtt.optimize.Fold_Int01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 17
+			runString = "(7)";
+			if (17 != jtt.optimize.Fold_Int01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Int02() {
+		begin("jtt.optimize.Fold_Int02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.Fold_Int02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.Fold_Int02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.optimize.Fold_Int02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.optimize.Fold_Int02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.optimize.Fold_Int02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.optimize.Fold_Int02.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Long01() {
+		begin("jtt.optimize.Fold_Long01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10L != jtt.optimize.Fold_Long01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.optimize.Fold_Long01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12L != jtt.optimize.Fold_Long01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13L != jtt.optimize.Fold_Long01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14L != jtt.optimize.Fold_Long01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15L != jtt.optimize.Fold_Long01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16L != jtt.optimize.Fold_Long01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 17
+			runString = "(7)";
+			if (17L != jtt.optimize.Fold_Long01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Long02() {
+		begin("jtt.optimize.Fold_Long02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.Fold_Long02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.Fold_Long02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.optimize.Fold_Long02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.optimize.Fold_Long02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.optimize.Fold_Long02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.optimize.Fold_Long02.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Fold_Math01() {
+		begin("jtt.optimize.Fold_Math01");
+		String runString = null;
+		try {
+			// (0) == 10.0
+			runString = "(0)";
+			if (10.0 != jtt.optimize.Fold_Math01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0.14943813247359922
+			runString = "(1)";
+			if (0.14943813247359922 != jtt.optimize.Fold_Math01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 0.9887710779360422
+			runString = "(2)";
+			if (0.9887710779360422 != jtt.optimize.Fold_Math01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 0.15113521805829508
+			runString = "(3)";
+			if (0.15113521805829508 != jtt.optimize.Fold_Math01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0.04834938665190287
+			runString = "(4)";
+			if (0.04834938665190287 != jtt.optimize.Fold_Math01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 12.0
+			runString = "(5)";
+			if (12.0 != jtt.optimize.Fold_Math01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 1.1474024528375417
+			runString = "(6)";
+			if (1.1474024528375417 != jtt.optimize.Fold_Math01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == -0.8239087409443188
+			runString = "(7)";
+			if (-0.8239087409443188 != jtt.optimize.Fold_Math01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == 106.62882057436371
+			runString = "(8)";
+			if (106.62882057436371 != jtt.optimize.Fold_Math01.test(8)) {
+				fail(runString);
+				return;
+			}
+			// (9) == 1.1474024528375417
+			runString = "(9)";
+			if (1.1474024528375417 != jtt.optimize.Fold_Math01.test(9)) {
+				fail(runString);
+				return;
+			}
+			// (10) == -1.0
+			runString = "(10)";
+			if (-1.0 != jtt.optimize.Fold_Math01.test(10)) {
+				fail(runString);
+				return;
+			}
+			// (11) == 2.0
+			runString = "(11)";
+			if (2.0 != jtt.optimize.Fold_Math01.test(11)) {
+				fail(runString);
+				return;
+			}
+			// (12) == 42.0
+			runString = "(12)";
+			if (42.0 != jtt.optimize.Fold_Math01.test(12)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Inline01() {
+		begin("jtt.optimize.Inline01");
+		String runString = null;
+		try {
+			// (0) == 2
+			runString = "(0)";
+			if (2 != jtt.optimize.Inline01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.optimize.Inline01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Inline02() {
+		begin("jtt.optimize.Inline02");
+		String runString = null;
+		try {
+			// (0) == 2
+			runString = "(0)";
+			if (2 != jtt.optimize.Inline02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 5
+			runString = "(1)";
+			if (5 != jtt.optimize.Inline02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 8
+			runString = "(2)";
+			if (8 != jtt.optimize.Inline02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_List_reorder_bug() {
+		begin("jtt.optimize.List_reorder_bug");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.List_reorder_bug.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_01() {
+		begin("jtt.optimize.NCE_01");
+		String runString = null;
+		try {
+			// (0) == 45
+			runString = "(0)";
+			if (45 != jtt.optimize.NCE_01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_02() {
+		begin("jtt.optimize.NCE_02");
+		String runString = null;
+		try {
+			// (0) == 23
+			runString = "(0)";
+			if (23 != jtt.optimize.NCE_02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_03() {
+		begin("jtt.optimize.NCE_03");
+		String runString = null;
+		try {
+			// (0) == 23
+			runString = "(0)";
+			if (23 != jtt.optimize.NCE_03.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_04() {
+		begin("jtt.optimize.NCE_04");
+		String runString = null;
+		try {
+			// (0) == 23
+			runString = "(0)";
+			if (23 != jtt.optimize.NCE_04.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_FlowSensitive01() {
+		begin("jtt.optimize.NCE_FlowSensitive01");
+		String runString = null;
+		try {
+			// (null) == null
+			runString = "(null)";
+			if (null != jtt.optimize.NCE_FlowSensitive01.test(null)) {
+				fail(runString);
+				return;
+			}
+			// ("x") == "x"
+			runString = "(\"x\")";
+			if (!"x".equals(jtt.optimize.NCE_FlowSensitive01.test("x"))) {
+				fail(runString);
+				return;
+			}
+			// ("yay") == "yay"
+			runString = "(\"yay\")";
+			if (!"yay".equals(jtt.optimize.NCE_FlowSensitive01.test("yay"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_FlowSensitive02() {
+		begin("jtt.optimize.NCE_FlowSensitive02");
+		String runString = null;
+		try {
+			// (null) == !java.lang.NullPointerException
+			try {
+				runString = "(null)";
+				jtt.optimize.NCE_FlowSensitive02.test(null);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("x") == "x"
+			runString = "(\"x\")";
+			if (!"x".equals(jtt.optimize.NCE_FlowSensitive02.test("x"))) {
+				fail(runString);
+				return;
+			}
+			// ("yay") == "yay"
+			runString = "(\"yay\")";
+			if (!"yay".equals(jtt.optimize.NCE_FlowSensitive02.test("yay"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_FlowSensitive03() {
+		begin("jtt.optimize.NCE_FlowSensitive03");
+		String runString = null;
+		try {
+			// (null) == "null"
+			runString = "(null)";
+			if (!"null".equals(jtt.optimize.NCE_FlowSensitive03.test(null))) {
+				fail(runString);
+				return;
+			}
+			// ("x") == "x"
+			runString = "(\"x\")";
+			if (!"x".equals(jtt.optimize.NCE_FlowSensitive03.test("x"))) {
+				fail(runString);
+				return;
+			}
+			// ("yay") == "yay"
+			runString = "(\"yay\")";
+			if (!"yay".equals(jtt.optimize.NCE_FlowSensitive03.test("yay"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_NCE_FlowSensitive04() {
+		begin("jtt.optimize.NCE_FlowSensitive04");
+		String runString = null;
+		try {
+			// (null) == "null"
+			runString = "(null)";
+			if (!"null".equals(jtt.optimize.NCE_FlowSensitive04.test(null))) {
+				fail(runString);
+				return;
+			}
+			// ("x") == "x"
+			runString = "(\"x\")";
+			if (!"x".equals(jtt.optimize.NCE_FlowSensitive04.test("x"))) {
+				fail(runString);
+				return;
+			}
+			// ("yay") == "yay"
+			runString = "(\"yay\")";
+			if (!"yay".equals(jtt.optimize.NCE_FlowSensitive04.test("yay"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_byte01() {
+		begin("jtt.optimize.Narrow_byte01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((byte) 0 != jtt.optimize.Narrow_byte01.test((byte) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((byte) 1 != jtt.optimize.Narrow_byte01.test((byte) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if ((byte) -1 != jtt.optimize.Narrow_byte01.test((byte) -1)) {
+				fail(runString);
+				return;
+			}
+			// (110) == 110
+			runString = "(110)";
+			if ((byte) 110 != jtt.optimize.Narrow_byte01.test((byte) 110)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_byte02() {
+		begin("jtt.optimize.Narrow_byte02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((byte) 0 != jtt.optimize.Narrow_byte02.test((byte) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((byte) 1 != jtt.optimize.Narrow_byte02.test((byte) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if ((byte) -1 != jtt.optimize.Narrow_byte02.test((byte) -1)) {
+				fail(runString);
+				return;
+			}
+			// (110) == 110
+			runString = "(110)";
+			if ((byte) 110 != jtt.optimize.Narrow_byte02.test((byte) 110)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_byte03() {
+		begin("jtt.optimize.Narrow_byte03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((byte) 0 != jtt.optimize.Narrow_byte03.test((byte) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((byte) 1 != jtt.optimize.Narrow_byte03.test((byte) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if ((byte) -1 != jtt.optimize.Narrow_byte03.test((byte) -1)) {
+				fail(runString);
+				return;
+			}
+			// (110) == 110
+			runString = "(110)";
+			if ((byte) 110 != jtt.optimize.Narrow_byte03.test((byte) 110)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_char01() {
+		begin("jtt.optimize.Narrow_char01");
+		String runString = null;
+		try {
+			// ('\0') == '\0'
+			runString = "('\0')";
+			if ((char) 0 != jtt.optimize.Narrow_char01.test((char) 0)) {
+				fail(runString);
+				return;
+			}
+			// ('\1') == '\1'
+			runString = "('\1')";
+			if ((char) 1 != jtt.optimize.Narrow_char01.test((char) 1)) {
+				fail(runString);
+				return;
+			}
+			// ('\377') == '\377'
+			runString = "('\377')";
+			if ((char) 255 != jtt.optimize.Narrow_char01.test((char) 255)) {
+				fail(runString);
+				return;
+			}
+			// ('\176750') == '\176750'
+			runString = "('\176750')";
+			if ((char) 65000 != jtt.optimize.Narrow_char01.test((char) 65000)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_char02() {
+		begin("jtt.optimize.Narrow_char02");
+		String runString = null;
+		try {
+			// ('\0') == '\0'
+			runString = "('\0')";
+			if ((char) 0 != jtt.optimize.Narrow_char02.test((char) 0)) {
+				fail(runString);
+				return;
+			}
+			// ('\1') == '\1'
+			runString = "('\1')";
+			if ((char) 1 != jtt.optimize.Narrow_char02.test((char) 1)) {
+				fail(runString);
+				return;
+			}
+			// ('\377') == '\377'
+			runString = "('\377')";
+			if ((char) 255 != jtt.optimize.Narrow_char02.test((char) 255)) {
+				fail(runString);
+				return;
+			}
+			// ('\176750') == '\176750'
+			runString = "('\176750')";
+			if ((char) 65000 != jtt.optimize.Narrow_char02.test((char) 65000)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_char03() {
+		begin("jtt.optimize.Narrow_char03");
+		String runString = null;
+		try {
+			// ('\0') == '\0'
+			runString = "('\0')";
+			if ((char) 0 != jtt.optimize.Narrow_char03.test((char) 0)) {
+				fail(runString);
+				return;
+			}
+			// ('\1') == '\1'
+			runString = "('\1')";
+			if ((char) 1 != jtt.optimize.Narrow_char03.test((char) 1)) {
+				fail(runString);
+				return;
+			}
+			// ('\377') == '\377'
+			runString = "('\377')";
+			if ((char) 255 != jtt.optimize.Narrow_char03.test((char) 255)) {
+				fail(runString);
+				return;
+			}
+			// ('\176750') == '\176750'
+			runString = "('\176750')";
+			if ((char) 65000 != jtt.optimize.Narrow_char03.test((char) 65000)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_short01() {
+		begin("jtt.optimize.Narrow_short01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((short) 0 != jtt.optimize.Narrow_short01.test((short) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((short) 1 != jtt.optimize.Narrow_short01.test((short) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if ((short) -1 != jtt.optimize.Narrow_short01.test((short) -1)) {
+				fail(runString);
+				return;
+			}
+			// (23110) == 23110
+			runString = "(23110)";
+			if ((short) 23110 != jtt.optimize.Narrow_short01
+					.test((short) 23110)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_short02() {
+		begin("jtt.optimize.Narrow_short02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((short) 0 != jtt.optimize.Narrow_short02.test((short) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((short) 1 != jtt.optimize.Narrow_short02.test((short) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if ((short) -1 != jtt.optimize.Narrow_short02.test((short) -1)) {
+				fail(runString);
+				return;
+			}
+			// (23110) == 23110
+			runString = "(23110)";
+			if ((short) 23110 != jtt.optimize.Narrow_short02
+					.test((short) 23110)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Narrow_short03() {
+		begin("jtt.optimize.Narrow_short03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((short) 0 != jtt.optimize.Narrow_short03.test((short) 0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((short) 1 != jtt.optimize.Narrow_short03.test((short) 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == -1
+			runString = "(-1)";
+			if ((short) -1 != jtt.optimize.Narrow_short03.test((short) -1)) {
+				fail(runString);
+				return;
+			}
+			// (23110) == 23110
+			runString = "(23110)";
+			if ((short) 23110 != jtt.optimize.Narrow_short03
+					.test((short) 23110)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Phi01() {
+		begin("jtt.optimize.Phi01");
+		String runString = null;
+		try {
+			// (0) == 8
+			runString = "(0)";
+			if (8 != jtt.optimize.Phi01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 10
+			runString = "(1)";
+			if (10 != jtt.optimize.Phi01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Phi01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 8
+			runString = "(3)";
+			if (8 != jtt.optimize.Phi01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 10
+			runString = "(4)";
+			if (10 != jtt.optimize.Phi01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 14
+			runString = "(6)";
+			if (14 != jtt.optimize.Phi01.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Phi02() {
+		begin("jtt.optimize.Phi02");
+		String runString = null;
+		try {
+			// (0) == 8
+			runString = "(0)";
+			if (8 != jtt.optimize.Phi02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 10
+			runString = "(1)";
+			if (10 != jtt.optimize.Phi02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Phi02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 8
+			runString = "(3)";
+			if (8 != jtt.optimize.Phi02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 10
+			runString = "(4)";
+			if (10 != jtt.optimize.Phi02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 14
+			runString = "(6)";
+			if (14 != jtt.optimize.Phi02.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Phi03() {
+		begin("jtt.optimize.Phi03");
+		String runString = null;
+		try {
+			// (0) == 4
+			runString = "(0)";
+			if (4 != jtt.optimize.Phi03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 5
+			runString = "(1)";
+			if (5 != jtt.optimize.Phi03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 6
+			runString = "(2)";
+			if (6 != jtt.optimize.Phi03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 4
+			runString = "(3)";
+			if (4 != jtt.optimize.Phi03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 5
+			runString = "(4)";
+			if (5 != jtt.optimize.Phi03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 7
+			runString = "(6)";
+			if (7 != jtt.optimize.Phi03.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Convert01() {
+		begin("jtt.optimize.Reduce_Convert01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.Reduce_Convert01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.optimize.Reduce_Convert01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Reduce_Convert01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Double01() {
+		begin("jtt.optimize.Reduce_Double01");
+		String runString = null;
+		try {
+			// (0.0) == 10.0
+			runString = "(0.0)";
+			if (10.0 != jtt.optimize.Reduce_Double01.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 11.0
+			runString = "(1.0)";
+			if (11.0 != jtt.optimize.Reduce_Double01.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 12.0
+			runString = "(2.0)";
+			if (12.0 != jtt.optimize.Reduce_Double01.test(2.0)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 13.0
+			runString = "(3.0)";
+			if (13.0 != jtt.optimize.Reduce_Double01.test(3.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Float01() {
+		begin("jtt.optimize.Reduce_Float01");
+		String runString = null;
+		try {
+			// (0.0) == 10.0
+			runString = "(0.0)";
+			if (10.0f != jtt.optimize.Reduce_Float01.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 11.0
+			runString = "(1.0)";
+			if (11.0f != jtt.optimize.Reduce_Float01.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 12.0
+			runString = "(2.0)";
+			if (12.0f != jtt.optimize.Reduce_Float01.test(2.0f)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 13.0
+			runString = "(3.0)";
+			if (13.0f != jtt.optimize.Reduce_Float01.test(3.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Int01() {
+		begin("jtt.optimize.Reduce_Int01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.Reduce_Int01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.optimize.Reduce_Int01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Reduce_Int01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13 != jtt.optimize.Reduce_Int01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14 != jtt.optimize.Reduce_Int01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15 != jtt.optimize.Reduce_Int01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16 != jtt.optimize.Reduce_Int01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 17
+			runString = "(7)";
+			if (17 != jtt.optimize.Reduce_Int01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Int02() {
+		begin("jtt.optimize.Reduce_Int02");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.Reduce_Int02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.optimize.Reduce_Int02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Reduce_Int02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13 != jtt.optimize.Reduce_Int02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14 != jtt.optimize.Reduce_Int02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15 != jtt.optimize.Reduce_Int02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16 != jtt.optimize.Reduce_Int02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 17
+			runString = "(7)";
+			if (17 != jtt.optimize.Reduce_Int02.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Int03() {
+		begin("jtt.optimize.Reduce_Int03");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.Reduce_Int03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.optimize.Reduce_Int03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 25
+			runString = "(2)";
+			if (25 != jtt.optimize.Reduce_Int03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1 != jtt.optimize.Reduce_Int03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.optimize.Reduce_Int03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15 != jtt.optimize.Reduce_Int03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16 != jtt.optimize.Reduce_Int03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 0
+			runString = "(7)";
+			if (0 != jtt.optimize.Reduce_Int03.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Int04() {
+		begin("jtt.optimize.Reduce_Int04");
+		String runString = null;
+		try {
+			// (0) == 40
+			runString = "(0)";
+			if (40 != jtt.optimize.Reduce_Int04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 655360
+			runString = "(1)";
+			if (655360 != jtt.optimize.Reduce_Int04.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_IntShift01() {
+		begin("jtt.optimize.Reduce_IntShift01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.Reduce_IntShift01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.optimize.Reduce_IntShift01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Reduce_IntShift01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13 != jtt.optimize.Reduce_IntShift01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14 != jtt.optimize.Reduce_IntShift01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15 != jtt.optimize.Reduce_IntShift01.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_IntShift02() {
+		begin("jtt.optimize.Reduce_IntShift02");
+		String runString = null;
+		try {
+			// (0) == 80
+			runString = "(0)";
+			if (80 != jtt.optimize.Reduce_IntShift02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.optimize.Reduce_IntShift02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12 != jtt.optimize.Reduce_IntShift02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13 != jtt.optimize.Reduce_IntShift02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 64
+			runString = "(4)";
+			if (64 != jtt.optimize.Reduce_IntShift02.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Long01() {
+		begin("jtt.optimize.Reduce_Long01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10L != jtt.optimize.Reduce_Long01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.optimize.Reduce_Long01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12L != jtt.optimize.Reduce_Long01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13L != jtt.optimize.Reduce_Long01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14L != jtt.optimize.Reduce_Long01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15L != jtt.optimize.Reduce_Long01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16L != jtt.optimize.Reduce_Long01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 17
+			runString = "(7)";
+			if (17L != jtt.optimize.Reduce_Long01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Long02() {
+		begin("jtt.optimize.Reduce_Long02");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10L != jtt.optimize.Reduce_Long02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.optimize.Reduce_Long02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12L != jtt.optimize.Reduce_Long02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13L != jtt.optimize.Reduce_Long02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14L != jtt.optimize.Reduce_Long02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15L != jtt.optimize.Reduce_Long02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16L != jtt.optimize.Reduce_Long02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 17
+			runString = "(7)";
+			if (17L != jtt.optimize.Reduce_Long02.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Long03() {
+		begin("jtt.optimize.Reduce_Long03");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10L != jtt.optimize.Reduce_Long03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0L != jtt.optimize.Reduce_Long03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 25
+			runString = "(2)";
+			if (25L != jtt.optimize.Reduce_Long03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1L != jtt.optimize.Reduce_Long03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0L != jtt.optimize.Reduce_Long03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15L != jtt.optimize.Reduce_Long03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 16
+			runString = "(6)";
+			if (16L != jtt.optimize.Reduce_Long03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 0
+			runString = "(7)";
+			if (0L != jtt.optimize.Reduce_Long03.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_Long04() {
+		begin("jtt.optimize.Reduce_Long04");
+		String runString = null;
+		try {
+			// (0) == 40
+			runString = "(0)";
+			if (40L != jtt.optimize.Reduce_Long04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 85899345920
+			runString = "(1)";
+			if (85899345920L != jtt.optimize.Reduce_Long04.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_LongShift01() {
+		begin("jtt.optimize.Reduce_LongShift01");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10L != jtt.optimize.Reduce_LongShift01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.optimize.Reduce_LongShift01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12L != jtt.optimize.Reduce_LongShift01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13L != jtt.optimize.Reduce_LongShift01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 14
+			runString = "(4)";
+			if (14L != jtt.optimize.Reduce_LongShift01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 15
+			runString = "(5)";
+			if (15L != jtt.optimize.Reduce_LongShift01.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Reduce_LongShift02() {
+		begin("jtt.optimize.Reduce_LongShift02");
+		String runString = null;
+		try {
+			// (0) == 80
+			runString = "(0)";
+			if (80L != jtt.optimize.Reduce_LongShift02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.optimize.Reduce_LongShift02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 12
+			runString = "(2)";
+			if (12L != jtt.optimize.Reduce_LongShift02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 13
+			runString = "(3)";
+			if (13L != jtt.optimize.Reduce_LongShift02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 64
+			runString = "(4)";
+			if (64L != jtt.optimize.Reduce_LongShift02.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Switch01() {
+		begin("jtt.optimize.Switch01");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.optimize.Switch01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_Switch02() {
+		begin("jtt.optimize.Switch02");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.optimize.Switch02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.optimize.Switch02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_TypeCastElem() {
+		begin("jtt.optimize.TypeCastElem");
+		String runString = null;
+		try {
+			// (10,13,25) == 27183
+			runString = "(10,13,25)";
+			if (27183 != jtt.optimize.TypeCastElem.test(10, 13, 25)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Cast01() {
+		begin("jtt.optimize.VN_Cast01");
+		String runString = null;
+		try {
+			// (0) == 18
+			runString = "(0)";
+			if (18 != jtt.optimize.VN_Cast01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 18
+			runString = "(1)";
+			if (18 != jtt.optimize.VN_Cast01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NullPointerException
+			try {
+				runString = "(2)";
+				jtt.optimize.VN_Cast01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Cast02() {
+		begin("jtt.optimize.VN_Cast02");
+		String runString = null;
+		try {
+			// (0) == 18
+			runString = "(0)";
+			if (18 != jtt.optimize.VN_Cast02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 18
+			runString = "(1)";
+			if (18 != jtt.optimize.VN_Cast02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NullPointerException
+			try {
+				runString = "(2)";
+				jtt.optimize.VN_Cast02.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Convert01() {
+		begin("jtt.optimize.VN_Convert01");
+		String runString = null;
+		try {
+			// (0) == 20
+			runString = "(0)";
+			if (20 != jtt.optimize.VN_Convert01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 22
+			runString = "(1)";
+			if (22 != jtt.optimize.VN_Convert01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 24
+			runString = "(2)";
+			if (24 != jtt.optimize.VN_Convert01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Convert02() {
+		begin("jtt.optimize.VN_Convert02");
+		String runString = null;
+		try {
+			// (0) == 20
+			runString = "(0)";
+			if (20 != jtt.optimize.VN_Convert02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 22
+			runString = "(1)";
+			if (22 != jtt.optimize.VN_Convert02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 24
+			runString = "(2)";
+			if (24 != jtt.optimize.VN_Convert02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Double01() {
+		begin("jtt.optimize.VN_Double01");
+		String runString = null;
+		try {
+			// (0.0) == 22.0
+			runString = "(0.0)";
+			if (22.0 != jtt.optimize.VN_Double01.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 0.0
+			runString = "(1.0)";
+			if (0.0 != jtt.optimize.VN_Double01.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 144.0
+			runString = "(2.0)";
+			if (144.0 != jtt.optimize.VN_Double01.test(2.0)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 1.0
+			runString = "(3.0)";
+			if (1.0 != jtt.optimize.VN_Double01.test(3.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Double02() {
+		begin("jtt.optimize.VN_Double02");
+		String runString = null;
+		try {
+			// (0.0) == 22.0
+			runString = "(0.0)";
+			if (22.0 != jtt.optimize.VN_Double02.test(0.0)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 0.0
+			runString = "(1.0)";
+			if (0.0 != jtt.optimize.VN_Double02.test(1.0)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 144.0
+			runString = "(2.0)";
+			if (144.0 != jtt.optimize.VN_Double02.test(2.0)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 1.0
+			runString = "(3.0)";
+			if (1.0 != jtt.optimize.VN_Double02.test(3.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Field01() {
+		begin("jtt.optimize.VN_Field01");
+		String runString = null;
+		try {
+			// (0) == 18
+			runString = "(0)";
+			if (18 != jtt.optimize.VN_Field01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 18
+			runString = "(1)";
+			if (18 != jtt.optimize.VN_Field01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NullPointerException
+			try {
+				runString = "(2)";
+				jtt.optimize.VN_Field01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Field02() {
+		begin("jtt.optimize.VN_Field02");
+		String runString = null;
+		try {
+			// (0) == 18
+			runString = "(0)";
+			if (18 != jtt.optimize.VN_Field02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 18
+			runString = "(1)";
+			if (18 != jtt.optimize.VN_Field02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NullPointerException
+			try {
+				runString = "(2)";
+				jtt.optimize.VN_Field02.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Float01() {
+		begin("jtt.optimize.VN_Float01");
+		String runString = null;
+		try {
+			// (0.0) == 22.0
+			runString = "(0.0)";
+			if (22.0f != jtt.optimize.VN_Float01.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 0.0
+			runString = "(1.0)";
+			if (0.0f != jtt.optimize.VN_Float01.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 144.0
+			runString = "(2.0)";
+			if (144.0f != jtt.optimize.VN_Float01.test(2.0f)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 1.0
+			runString = "(3.0)";
+			if (1.0f != jtt.optimize.VN_Float01.test(3.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Float02() {
+		begin("jtt.optimize.VN_Float02");
+		String runString = null;
+		try {
+			// (0.0) == 22.0
+			runString = "(0.0)";
+			if (22.0f != jtt.optimize.VN_Float02.test(0.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1.0) == 0.0
+			runString = "(1.0)";
+			if (0.0f != jtt.optimize.VN_Float02.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == 144.0
+			runString = "(2.0)";
+			if (144.0f != jtt.optimize.VN_Float02.test(2.0f)) {
+				fail(runString);
+				return;
+			}
+			// (3.0) == 1.0
+			runString = "(3.0)";
+			if (1.0f != jtt.optimize.VN_Float02.test(3.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_InstanceOf01() {
+		begin("jtt.optimize.VN_InstanceOf01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.VN_InstanceOf01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.VN_InstanceOf01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.optimize.VN_InstanceOf01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_InstanceOf02() {
+		begin("jtt.optimize.VN_InstanceOf02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.VN_InstanceOf02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.VN_InstanceOf02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.optimize.VN_InstanceOf02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_InstanceOf03() {
+		begin("jtt.optimize.VN_InstanceOf03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.optimize.VN_InstanceOf03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.optimize.VN_InstanceOf03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.optimize.VN_InstanceOf03.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Int01() {
+		begin("jtt.optimize.VN_Int01");
+		String runString = null;
+		try {
+			// (0) == 6
+			runString = "(0)";
+			if (6 != jtt.optimize.VN_Int01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.optimize.VN_Int01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 36
+			runString = "(2)";
+			if (36 != jtt.optimize.VN_Int01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1 != jtt.optimize.VN_Int01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.optimize.VN_Int01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 5
+			runString = "(5)";
+			if (5 != jtt.optimize.VN_Int01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 7
+			runString = "(6)";
+			if (7 != jtt.optimize.VN_Int01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 0
+			runString = "(7)";
+			if (0 != jtt.optimize.VN_Int01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Int02() {
+		begin("jtt.optimize.VN_Int02");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.optimize.VN_Int02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 10
+			runString = "(1)";
+			if (10 != jtt.optimize.VN_Int02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 48
+			runString = "(2)";
+			if (48 != jtt.optimize.VN_Int02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Int03() {
+		begin("jtt.optimize.VN_Int03");
+		String runString = null;
+		try {
+			// (0) == 6
+			runString = "(0)";
+			if (6 != jtt.optimize.VN_Int03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.optimize.VN_Int03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 36
+			runString = "(2)";
+			if (36 != jtt.optimize.VN_Int03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1 != jtt.optimize.VN_Int03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.optimize.VN_Int03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 5
+			runString = "(5)";
+			if (5 != jtt.optimize.VN_Int03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 7
+			runString = "(6)";
+			if (7 != jtt.optimize.VN_Int03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 0
+			runString = "(7)";
+			if (0 != jtt.optimize.VN_Int03.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Long01() {
+		begin("jtt.optimize.VN_Long01");
+		String runString = null;
+		try {
+			// (0) == 6
+			runString = "(0)";
+			if (6L != jtt.optimize.VN_Long01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0L != jtt.optimize.VN_Long01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 36
+			runString = "(2)";
+			if (36L != jtt.optimize.VN_Long01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1L != jtt.optimize.VN_Long01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0L != jtt.optimize.VN_Long01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 5
+			runString = "(5)";
+			if (5L != jtt.optimize.VN_Long01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 7
+			runString = "(6)";
+			if (7L != jtt.optimize.VN_Long01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 0
+			runString = "(7)";
+			if (0L != jtt.optimize.VN_Long01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Long02() {
+		begin("jtt.optimize.VN_Long02");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10L != jtt.optimize.VN_Long02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 10
+			runString = "(1)";
+			if (10L != jtt.optimize.VN_Long02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 48
+			runString = "(2)";
+			if (48L != jtt.optimize.VN_Long02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Long03() {
+		begin("jtt.optimize.VN_Long03");
+		String runString = null;
+		try {
+			// (0) == 6
+			runString = "(0)";
+			if (6L != jtt.optimize.VN_Long03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0L != jtt.optimize.VN_Long03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 36
+			runString = "(2)";
+			if (36L != jtt.optimize.VN_Long03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1L != jtt.optimize.VN_Long03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0L != jtt.optimize.VN_Long03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 5
+			runString = "(5)";
+			if (5L != jtt.optimize.VN_Long03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 7
+			runString = "(6)";
+			if (7L != jtt.optimize.VN_Long03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 0
+			runString = "(7)";
+			if (0L != jtt.optimize.VN_Long03.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_optimize_VN_Loop01() {
+		begin("jtt.optimize.VN_Loop01");
+		String runString = null;
+		try {
+			// (0) == 6
+			runString = "(0)";
+			if (6 != jtt.optimize.VN_Loop01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 8
+			runString = "(1)";
+			if (8 != jtt.optimize.VN_Loop01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 10
+			runString = "(2)";
+			if (10 != jtt.optimize.VN_Loop01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 12
+			runString = "(3)";
+			if (12 != jtt.optimize.VN_Loop01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.optimize.VN_Loop01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_aaload0() {
+		begin("jtt.except.BC_aaload0");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_aaload0.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_aaload0.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == null
+			runString = "(0)";
+			if (null != jtt.except.BC_aaload0.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_aaload1() {
+		begin("jtt.except.BC_aaload1");
+		String runString = null;
+		try {
+			// (-2) == null
+			runString = "(-2)";
+			if (null != jtt.except.BC_aaload1.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_aaload1.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == null
+			runString = "(0)";
+			if (null != jtt.except.BC_aaload1.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_aastore0() {
+		begin("jtt.except.BC_aastore0");
+		String runString = null;
+		try {
+			// (true,-2) == !java.lang.NullPointerException
+			try {
+				runString = "(true,-2)";
+				jtt.except.BC_aastore0.test(true, -2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (true,-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(true,-1)";
+				jtt.except.BC_aastore0.test(true, -1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (true,0) == 0
+			runString = "(true,0)";
+			if (0 != jtt.except.BC_aastore0.test(true, 0)) {
+				fail(runString);
+				return;
+			}
+			// (true,1) == 1
+			runString = "(true,1)";
+			if (1 != jtt.except.BC_aastore0.test(true, 1)) {
+				fail(runString);
+				return;
+			}
+			// (true,2) == 2
+			runString = "(true,2)";
+			if (2 != jtt.except.BC_aastore0.test(true, 2)) {
+				fail(runString);
+				return;
+			}
+			// (true,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(true,3)";
+				jtt.except.BC_aastore0.test(true, 3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (false,0) == !java.lang.ArrayStoreException
+			try {
+				runString = "(false,0)";
+				jtt.except.BC_aastore0.test(false, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayStoreException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (false,1) == 1
+			runString = "(false,1)";
+			if (1 != jtt.except.BC_aastore0.test(false, 1)) {
+				fail(runString);
+				return;
+			}
+			// (false,2) == 2
+			runString = "(false,2)";
+			if (2 != jtt.except.BC_aastore0.test(false, 2)) {
+				fail(runString);
+				return;
+			}
+			// (false,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(false,3)";
+				jtt.except.BC_aastore0.test(false, 3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_aastore1() {
+		begin("jtt.except.BC_aastore1");
+		String runString = null;
+		try {
+			// (true,-2) == 5
+			runString = "(true,-2)";
+			if (5 != jtt.except.BC_aastore1.test(true, -2)) {
+				fail(runString);
+				return;
+			}
+			// (true,-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(true,-1)";
+				jtt.except.BC_aastore1.test(true, -1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (true,0) == 0
+			runString = "(true,0)";
+			if (0 != jtt.except.BC_aastore1.test(true, 0)) {
+				fail(runString);
+				return;
+			}
+			// (true,1) == 1
+			runString = "(true,1)";
+			if (1 != jtt.except.BC_aastore1.test(true, 1)) {
+				fail(runString);
+				return;
+			}
+			// (true,2) == 2
+			runString = "(true,2)";
+			if (2 != jtt.except.BC_aastore1.test(true, 2)) {
+				fail(runString);
+				return;
+			}
+			// (true,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(true,3)";
+				jtt.except.BC_aastore1.test(true, 3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (false,0) == !java.lang.ArrayStoreException
+			try {
+				runString = "(false,0)";
+				jtt.except.BC_aastore1.test(false, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayStoreException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (false,1) == 1
+			runString = "(false,1)";
+			if (1 != jtt.except.BC_aastore1.test(false, 1)) {
+				fail(runString);
+				return;
+			}
+			// (false,2) == 2
+			runString = "(false,2)";
+			if (2 != jtt.except.BC_aastore1.test(false, 2)) {
+				fail(runString);
+				return;
+			}
+			// (false,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(false,3)";
+				jtt.except.BC_aastore1.test(false, 3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_anewarray() {
+		begin("jtt.except.BC_anewarray");
+		String runString = null;
+		try {
+			// (-1) == !java.lang.NegativeArraySizeException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_anewarray.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NegativeArraySizeException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.BC_anewarray.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_arraylength() {
+		begin("jtt.except.BC_arraylength");
+		String runString = null;
+		try {
+			// (0) == !java.lang.NullPointerException
+			try {
+				runString = "(0)";
+				jtt.except.BC_arraylength.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.except.BC_arraylength.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 4
+			runString = "(2)";
+			if (4 != jtt.except.BC_arraylength.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 5
+			runString = "(3)";
+			if (5 != jtt.except.BC_arraylength.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 42
+			runString = "(4)";
+			if (42 != jtt.except.BC_arraylength.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_athrow0() {
+		begin("jtt.except.BC_athrow0");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_athrow0.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.Throwable
+			try {
+				runString = "(2)";
+				jtt.except.BC_athrow0.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Throwable.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_athrow1() {
+		begin("jtt.except.BC_athrow1");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_athrow1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.BC_athrow1.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.Throwable
+			try {
+				runString = "(2)";
+				jtt.except.BC_athrow1.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Throwable.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.except.BC_athrow1.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_athrow2() {
+		begin("jtt.except.BC_athrow2");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_athrow2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.Throwable
+			try {
+				runString = "(2)";
+				jtt.except.BC_athrow2.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Throwable.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.NullPointerException
+			try {
+				runString = "(3)";
+				jtt.except.BC_athrow2.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_athrow3() {
+		begin("jtt.except.BC_athrow3");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_athrow3.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.Throwable
+			try {
+				runString = "(2)";
+				jtt.except.BC_athrow3.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Throwable.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.NullPointerException
+			try {
+				runString = "(3)";
+				jtt.except.BC_athrow3.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_baload() {
+		begin("jtt.except.BC_baload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_baload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_baload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.BC_baload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_baload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_bastore() {
+		begin("jtt.except.BC_bastore");
+		String runString = null;
+		try {
+			// (-2,true) == !java.lang.NullPointerException
+			try {
+				runString = "(-2,true)";
+				jtt.except.BC_bastore.test(-2, true);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,false) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,false)";
+				jtt.except.BC_bastore.test(-1, false);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,true) == true
+			runString = "(0,true)";
+			if (true != jtt.except.BC_bastore.test(0, true)) {
+				fail(runString);
+				return;
+			}
+			// (4,true) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,true)";
+				jtt.except.BC_bastore.test(4, true);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_caload() {
+		begin("jtt.except.BC_caload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_caload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_caload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == '\0'
+			runString = "(0)";
+			if ((char) 0 != jtt.except.BC_caload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_caload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_castore() {
+		begin("jtt.except.BC_castore");
+		String runString = null;
+		try {
+			// (-2,'a') == !java.lang.NullPointerException
+			try {
+				runString = "(-2,'a')";
+				jtt.except.BC_castore.test(-2, (char) 97);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,'c') == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,'c')";
+				jtt.except.BC_castore.test(-1, (char) 99);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,'a') == 'a'
+			runString = "(0,'a')";
+			if ((char) 97 != jtt.except.BC_castore.test(0, (char) 97)) {
+				fail(runString);
+				return;
+			}
+			// (4,'a') == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,'a')";
+				jtt.except.BC_castore.test(4, (char) 97);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast() {
+		begin("jtt.except.BC_checkcast");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_checkcast.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassCastException
+			try {
+				runString = "(2)";
+				jtt.except.BC_checkcast.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.ClassCastException
+			try {
+				runString = "(3)";
+				jtt.except.BC_checkcast.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.BC_checkcast.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast1() {
+		begin("jtt.except.BC_checkcast1");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_checkcast1.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassCastException
+			try {
+				runString = "(2)";
+				jtt.except.BC_checkcast1.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.ClassCastException
+			try {
+				runString = "(3)";
+				jtt.except.BC_checkcast1.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.BC_checkcast1.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast2() {
+		begin("jtt.except.BC_checkcast2");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.BC_checkcast2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.except.BC_checkcast2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassCastException
+			try {
+				runString = "(2)";
+				jtt.except.BC_checkcast2.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.ClassCastException
+			try {
+				runString = "(3)";
+				jtt.except.BC_checkcast2.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.BC_checkcast2.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast3() {
+		begin("jtt.except.BC_checkcast3");
+		String runString = null;
+		try {
+			// (0) == !java.lang.ClassCastException
+			try {
+				runString = "(0)";
+				jtt.except.BC_checkcast3.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == !java.lang.ClassCastException
+			try {
+				runString = "(1)";
+				jtt.except.BC_checkcast3.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (2) == -1
+			runString = "(2)";
+			if (-1 != jtt.except.BC_checkcast3.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -1
+			runString = "(3)";
+			if (-1 != jtt.except.BC_checkcast3.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast4() {
+		begin("jtt.except.BC_checkcast4");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.BC_checkcast4.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.except.BC_checkcast4.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassCastException
+			try {
+				runString = "(2)";
+				jtt.except.BC_checkcast4.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.ClassCastException
+			try {
+				runString = "(3)";
+				jtt.except.BC_checkcast4.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.BC_checkcast4.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast5() {
+		begin("jtt.except.BC_checkcast5");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.BC_checkcast5.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.except.BC_checkcast5.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -5
+			runString = "(2)";
+			if (-5 != jtt.except.BC_checkcast5.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -5
+			runString = "(3)";
+			if (-5 != jtt.except.BC_checkcast5.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.BC_checkcast5.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_checkcast6() {
+		begin("jtt.except.BC_checkcast6");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.BC_checkcast6.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.except.BC_checkcast6.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -5
+			runString = "(2)";
+			if (-5 != jtt.except.BC_checkcast6.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -5
+			runString = "(3)";
+			if (-5 != jtt.except.BC_checkcast6.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.BC_checkcast6.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_daload() {
+		begin("jtt.except.BC_daload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_daload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_daload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0 != jtt.except.BC_daload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_daload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_dastore() {
+		begin("jtt.except.BC_dastore");
+		String runString = null;
+		try {
+			// (-2,0.01) == !java.lang.NullPointerException
+			try {
+				runString = "(-2,0.01)";
+				jtt.except.BC_dastore.test(-2, 0.01);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,-1.4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,-1.4)";
+				jtt.except.BC_dastore.test(-1, -1.4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,0.01) == 0.01
+			runString = "(0,0.01)";
+			if (0.01 != jtt.except.BC_dastore.test(0, 0.01)) {
+				fail(runString);
+				return;
+			}
+			// (4,0.01) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,0.01)";
+				jtt.except.BC_dastore.test(4, 0.01);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_faload() {
+		begin("jtt.except.BC_faload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_faload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_faload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0f != jtt.except.BC_faload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_faload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_fastore() {
+		begin("jtt.except.BC_fastore");
+		String runString = null;
+		try {
+			// (-2,0.01) == !java.lang.NullPointerException
+			try {
+				runString = "(-2,0.01)";
+				jtt.except.BC_fastore.test(-2, 0.01f);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,-1.4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,-1.4)";
+				jtt.except.BC_fastore.test(-1, -1.4f);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,0.01) == 0.01
+			runString = "(0,0.01)";
+			if (0.01f != jtt.except.BC_fastore.test(0, 0.01f)) {
+				fail(runString);
+				return;
+			}
+			// (4,0.01) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,0.01)";
+				jtt.except.BC_fastore.test(4, 0.01f);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_getfield() {
+		begin("jtt.except.BC_getfield");
+		String runString = null;
+		try {
+			// (0) == 13
+			runString = "(0)";
+			if (13 != jtt.except.BC_getfield.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.NullPointerException
+			try {
+				runString = "(3)";
+				jtt.except.BC_getfield.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_iaload() {
+		begin("jtt.except.BC_iaload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_iaload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_iaload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_iaload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_iaload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_iastore() {
+		begin("jtt.except.BC_iastore");
+		String runString = null;
+		try {
+			// (-2,0) == !java.lang.NullPointerException
+			try {
+				runString = "(-2,0)";
+				jtt.except.BC_iastore.test(-2, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,3)";
+				jtt.except.BC_iastore.test(-1, 3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0 != jtt.except.BC_iastore.test(0, 0)) {
+				fail(runString);
+				return;
+			}
+			// (4,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,0)";
+				jtt.except.BC_iastore.test(4, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_idiv() {
+		begin("jtt.except.BC_idiv");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0 != jtt.except.BC_idiv.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (11,0) == !java.lang.ArithmeticException
+			try {
+				runString = "(11,0)";
+				jtt.except.BC_idiv.test(11, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArithmeticException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_idiv2() {
+		begin("jtt.except.BC_idiv2");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0 != jtt.except.BC_idiv2.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (11,0) == -11
+			runString = "(11,0)";
+			if (-11 != jtt.except.BC_idiv2.test(11, 0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_invokespecial01() {
+		begin("jtt.except.BC_invokespecial01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.BC_invokespecial01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.NullPointerException
+			try {
+				runString = "(1)";
+				jtt.except.BC_invokespecial01.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_invokevirtual01() {
+		begin("jtt.except.BC_invokevirtual01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.BC_invokevirtual01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.NullPointerException
+			try {
+				runString = "(1)";
+				jtt.except.BC_invokevirtual01.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_invokevirtual02() {
+		begin("jtt.except.BC_invokevirtual02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.BC_invokevirtual02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.NullPointerException
+			try {
+				runString = "(1)";
+				jtt.except.BC_invokevirtual02.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_irem() {
+		begin("jtt.except.BC_irem");
+		String runString = null;
+		try {
+			// (1,2) == 1
+			runString = "(1,2)";
+			if (1 != jtt.except.BC_irem.test(1, 2)) {
+				fail(runString);
+				return;
+			}
+			// (11,0) == !java.lang.ArithmeticException
+			try {
+				runString = "(11,0)";
+				jtt.except.BC_irem.test(11, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArithmeticException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_laload() {
+		begin("jtt.except.BC_laload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_laload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_laload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.except.BC_laload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_laload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_lastore() {
+		begin("jtt.except.BC_lastore");
+		String runString = null;
+		try {
+			// (-2,0) == !java.lang.NullPointerException
+			try {
+				runString = "(-2,0)";
+				jtt.except.BC_lastore.test(-2, 0L);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,3)";
+				jtt.except.BC_lastore.test(-1, 3L);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0L != jtt.except.BC_lastore.test(0, 0L)) {
+				fail(runString);
+				return;
+			}
+			// (4,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,0)";
+				jtt.except.BC_lastore.test(4, 0L);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_ldiv() {
+		begin("jtt.except.BC_ldiv");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0L != jtt.except.BC_ldiv.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (11,0) == !java.lang.ArithmeticException
+			try {
+				runString = "(11,0)";
+				jtt.except.BC_ldiv.test(11L, 0L);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArithmeticException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_ldiv2() {
+		begin("jtt.except.BC_ldiv2");
+		String runString = null;
+		try {
+			// (1,2) == 0
+			runString = "(1,2)";
+			if (0L != jtt.except.BC_ldiv2.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (11,0) == -11
+			runString = "(11,0)";
+			if (-11L != jtt.except.BC_ldiv2.test(11L, 0L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_lrem() {
+		begin("jtt.except.BC_lrem");
+		String runString = null;
+		try {
+			// (1,2) == 1
+			runString = "(1,2)";
+			if (1L != jtt.except.BC_lrem.test(1L, 2L)) {
+				fail(runString);
+				return;
+			}
+			// (11,0) == !java.lang.ArithmeticException
+			try {
+				runString = "(11,0)";
+				jtt.except.BC_lrem.test(11L, 0L);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArithmeticException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_monitorenter() {
+		begin("jtt.except.BC_monitorenter");
+		String runString = null;
+		try {
+			// (true) == true
+			runString = "(true)";
+			if (true != jtt.except.BC_monitorenter.test(true)) {
+				fail(runString);
+				return;
+			}
+			// (false) == !java.lang.NullPointerException
+			try {
+				runString = "(false)";
+				jtt.except.BC_monitorenter.test(false);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_multianewarray() {
+		begin("jtt.except.BC_multianewarray");
+		String runString = null;
+		try {
+			// (0,0) == 0
+			runString = "(0,0)";
+			if (0 != jtt.except.BC_multianewarray.test(0, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,1) == 1
+			runString = "(1,1)";
+			if (1 != jtt.except.BC_multianewarray.test(1, 1)) {
+				fail(runString);
+				return;
+			}
+			// (-1,0) == !java.lang.NegativeArraySizeException
+			try {
+				runString = "(-1,0)";
+				jtt.except.BC_multianewarray.test(-1, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NegativeArraySizeException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,-1) == !java.lang.NegativeArraySizeException
+			try {
+				runString = "(0,-1)";
+				jtt.except.BC_multianewarray.test(0, -1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NegativeArraySizeException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_newarray() {
+		begin("jtt.except.BC_newarray");
+		String runString = null;
+		try {
+			// (-1) == !java.lang.NegativeArraySizeException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_newarray.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NegativeArraySizeException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_newarray.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.BC_newarray.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_putfield() {
+		begin("jtt.except.BC_putfield");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.BC_putfield.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.NullPointerException
+			try {
+				runString = "(3)";
+				jtt.except.BC_putfield.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.except.BC_putfield.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_saload() {
+		begin("jtt.except.BC_saload");
+		String runString = null;
+		try {
+			// (-2) == !java.lang.NullPointerException
+			try {
+				runString = "(-2)";
+				jtt.except.BC_saload.test(-2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1)";
+				jtt.except.BC_saload.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0
+			runString = "(0)";
+			if ((short) 0 != jtt.except.BC_saload.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.except.BC_saload.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_BC_sastore() {
+		begin("jtt.except.BC_sastore");
+		String runString = null;
+		try {
+			// (-2,0) == !java.lang.NullPointerException
+			try {
+				runString = "(-2,0)";
+				jtt.except.BC_sastore.test(-2, (short) 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (-1,3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(-1,3)";
+				jtt.except.BC_sastore.test(-1, (short) 3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0,0) == 0
+			runString = "(0,0)";
+			if ((short) 0 != jtt.except.BC_sastore.test(0, (short) 0)) {
+				fail(runString);
+				return;
+			}
+			// (4,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4,0)";
+				jtt.except.BC_sastore.test(4, (short) 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_Loop01() {
+		begin("jtt.except.Catch_Loop01");
+		String runString = null;
+		try {
+			// (4) == -170
+			runString = "(4)";
+			if (-170 != jtt.except.Catch_Loop01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == -150
+			runString = "(5)";
+			if (-150 != jtt.except.Catch_Loop01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == -140
+			runString = "(6)";
+			if (-140 != jtt.except.Catch_Loop01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == -240
+			runString = "(7)";
+			if (-240 != jtt.except.Catch_Loop01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (30) == -700
+			runString = "(30)";
+			if (-700 != jtt.except.Catch_Loop01.test(30)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_Loop02() {
+		begin("jtt.except.Catch_Loop02");
+		String runString = null;
+		try {
+			// (4) == -170
+			runString = "(4)";
+			if (-170 != jtt.except.Catch_Loop02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == -150
+			runString = "(5)";
+			if (-150 != jtt.except.Catch_Loop02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == -140
+			runString = "(6)";
+			if (-140 != jtt.except.Catch_Loop02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == -240
+			runString = "(7)";
+			if (-240 != jtt.except.Catch_Loop02.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (30) == -700
+			runString = "(30)";
+			if (-700 != jtt.except.Catch_Loop02.test(30)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NASE_1() {
+		begin("jtt.except.Catch_NASE_1");
+		String runString = null;
+		try {
+			// (-1) == 100
+			runString = "(-1)";
+			if (100 != jtt.except.Catch_NASE_1.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (-34) == 100
+			runString = "(-34)";
+			if (100 != jtt.except.Catch_NASE_1.test(-34)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NASE_2() {
+		begin("jtt.except.Catch_NASE_2");
+		String runString = null;
+		try {
+			// (-1) == 100
+			runString = "(-1)";
+			if (100 != jtt.except.Catch_NASE_2.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (-34) == 100
+			runString = "(-34)";
+			if (100 != jtt.except.Catch_NASE_2.test(-34)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_00() {
+		begin("jtt.except.Catch_NPE_00");
+		String runString = null;
+		try {
+			// (-3) == -1
+			runString = "(-3)";
+			if (-1 != jtt.except.Catch_NPE_00.test(-3)) {
+				fail(runString);
+				return;
+			}
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.Catch_NPE_00.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.except.Catch_NPE_00.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 3
+			runString = "(2)";
+			if (3 != jtt.except.Catch_NPE_00.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_01() {
+		begin("jtt.except.Catch_NPE_01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.Catch_NPE_01.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_02() {
+		begin("jtt.except.Catch_NPE_02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.Catch_NPE_02.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_03() {
+		begin("jtt.except.Catch_NPE_03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.Catch_NPE_03.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_04() {
+		begin("jtt.except.Catch_NPE_04");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_04.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.Catch_NPE_04.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_05() {
+		begin("jtt.except.Catch_NPE_05");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_05.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_05.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.Catch_NPE_05.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_06() {
+		begin("jtt.except.Catch_NPE_06");
+		String runString = null;
+		try {
+			// ("") == 0
+			runString = "(\"\")";
+			if (0 != jtt.except.Catch_NPE_06.test("")) {
+				fail(runString);
+				return;
+			}
+			// (null) == -1
+			runString = "(null)";
+			if (-1 != jtt.except.Catch_NPE_06.test(null)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_07() {
+		begin("jtt.except.Catch_NPE_07");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_07.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_07.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_08() {
+		begin("jtt.except.Catch_NPE_08");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_NPE_08.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.Catch_NPE_08.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -2
+			runString = "(-2)";
+			if (-2 != jtt.except.Catch_NPE_08.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_09() {
+		begin("jtt.except.Catch_NPE_09");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.except.Catch_NPE_09.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.except.Catch_NPE_09.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 1
+			runString = "(2)";
+			if (1 != jtt.except.Catch_NPE_09.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_10() {
+		begin("jtt.except.Catch_NPE_10");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.except.Catch_NPE_10.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.except.Catch_NPE_10.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 1
+			runString = "(2)";
+			if (1 != jtt.except.Catch_NPE_10.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_NPE_11() {
+		begin("jtt.except.Catch_NPE_11");
+		String runString = null;
+		try {
+			// (0) == 10
+			runString = "(0)";
+			if (10 != jtt.except.Catch_NPE_11.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.except.Catch_NPE_11.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 1
+			runString = "(2)";
+			if (1 != jtt.except.Catch_NPE_11.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_StackOverflowError_01() {
+		begin("jtt.except.Catch_StackOverflowError_01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.StackOverflowError
+			try {
+				runString = "(0)";
+				jtt.except.Catch_StackOverflowError_01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.StackOverflowError.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_StackOverflowError_02() {
+		begin("jtt.except.Catch_StackOverflowError_02");
+		String runString = null;
+		try {
+			// (0) == !java.lang.StackOverflowError
+			try {
+				runString = "(0)";
+				jtt.except.Catch_StackOverflowError_02.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.StackOverflowError.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_StackOverflowError_03() {
+		begin("jtt.except.Catch_StackOverflowError_03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Catch_StackOverflowError_03.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_Two01() {
+		begin("jtt.except.Catch_Two01");
+		String runString = null;
+		try {
+			// (0) == "java.lang.NullPointerException"
+			runString = "(0)";
+			if (!"java.lang.NullPointerException".equals(jtt.except.Catch_Two01
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "java.lang.ArithmeticException"
+			runString = "(1)";
+			if (!"java.lang.ArithmeticException".equals(jtt.except.Catch_Two01
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (3) == "none"
+			runString = "(3)";
+			if (!"none".equals(jtt.except.Catch_Two01.test(3))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_Two02() {
+		begin("jtt.except.Catch_Two02");
+		String runString = null;
+		try {
+			// (0) == "java.lang.NullPointerException"
+			runString = "(0)";
+			if (!"java.lang.NullPointerException".equals(jtt.except.Catch_Two02
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "java.lang.ArithmeticException"
+			runString = "(1)";
+			if (!"java.lang.ArithmeticException".equals(jtt.except.Catch_Two02
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (3) == "none13"
+			runString = "(3)";
+			if (!"none13".equals(jtt.except.Catch_Two02.test(3))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Catch_Two03() {
+		begin("jtt.except.Catch_Two03");
+		String runString = null;
+		try {
+			// (0) == "none4"
+			runString = "(0)";
+			if (!"none4".equals(jtt.except.Catch_Two03.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "none4"
+			runString = "(1)";
+			if (!"none4".equals(jtt.except.Catch_Two03.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "java.lang.NullPointerException3"
+			runString = "(2)";
+			if (!"java.lang.NullPointerException3"
+					.equals(jtt.except.Catch_Two03.test(2))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Except_Synchronized01() {
+		begin("jtt.except.Except_Synchronized01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Except_Synchronized01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.except.Except_Synchronized01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Except_Synchronized02() {
+		begin("jtt.except.Except_Synchronized02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Except_Synchronized02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.except.Except_Synchronized02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Except_Synchronized03() {
+		begin("jtt.except.Except_Synchronized03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Except_Synchronized03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.except.Except_Synchronized03.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Except_Synchronized04() {
+		begin("jtt.except.Except_Synchronized04");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Except_Synchronized04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.except.Except_Synchronized04.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Except_Synchronized05() {
+		begin("jtt.except.Except_Synchronized05");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.Except_Synchronized05.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.except.Except_Synchronized05.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Finally01() {
+		begin("jtt.except.Finally01");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.Finally01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.except.Finally01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Finally02() {
+		begin("jtt.except.Finally02");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.Finally02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.except.Finally02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_StackTrace_AIOOBE_00() {
+		begin("jtt.except.StackTrace_AIOOBE_00");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.StackTrace_AIOOBE_00.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.except.StackTrace_AIOOBE_00.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.StackTrace_AIOOBE_00.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -1
+			runString = "(3)";
+			if (-1 != jtt.except.StackTrace_AIOOBE_00.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_StackTrace_CCE_00() {
+		begin("jtt.except.StackTrace_CCE_00");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.StackTrace_CCE_00.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -100
+			runString = "(2)";
+			if (-100 != jtt.except.StackTrace_CCE_00.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -100
+			runString = "(3)";
+			if (-100 != jtt.except.StackTrace_CCE_00.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.except.StackTrace_CCE_00.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_StackTrace_NPE_00() {
+		begin("jtt.except.StackTrace_NPE_00");
+		String runString = null;
+		try {
+			// (-3) == -1
+			runString = "(-3)";
+			if (-1 != jtt.except.StackTrace_NPE_00.test(-3)) {
+				fail(runString);
+				return;
+			}
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.except.StackTrace_NPE_00.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.except.StackTrace_NPE_00.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 3
+			runString = "(2)";
+			if (3 != jtt.except.StackTrace_NPE_00.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_StackTrace_NPE_01() {
+		begin("jtt.except.StackTrace_NPE_01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.StackTrace_NPE_01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.except.StackTrace_NPE_01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.StackTrace_NPE_01.test(-2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_StackTrace_NPE_02() {
+		begin("jtt.except.StackTrace_NPE_02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.StackTrace_NPE_02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.except.StackTrace_NPE_02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.StackTrace_NPE_02.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 0
+			runString = "(3)";
+			if (0 != jtt.except.StackTrace_NPE_02.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_StackTrace_NPE_03() {
+		begin("jtt.except.StackTrace_NPE_03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.except.StackTrace_NPE_03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.except.StackTrace_NPE_03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == -1
+			runString = "(-2)";
+			if (-1 != jtt.except.StackTrace_NPE_03.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 0
+			runString = "(3)";
+			if (0 != jtt.except.StackTrace_NPE_03.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_InCatch01() {
+		begin("jtt.except.Throw_InCatch01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_InCatch01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_InCatch01.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_InCatch02() {
+		begin("jtt.except.Throw_InCatch02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_InCatch02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_InCatch02.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_InCatch03() {
+		begin("jtt.except.Throw_InCatch03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_InCatch03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_InCatch03.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_NPE_01() {
+		begin("jtt.except.Throw_NPE_01");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.except.Throw_NPE_01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if (2 != jtt.except.Throw_NPE_01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == !java.lang.NullPointerException
+			try {
+				runString = "(-1)";
+				jtt.except.Throw_NPE_01.test(-1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_Synchronized01() {
+		begin("jtt.except.Throw_Synchronized01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_Synchronized01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_Synchronized01.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_Synchronized02() {
+		begin("jtt.except.Throw_Synchronized02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_Synchronized02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_Synchronized02.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_Synchronized03() {
+		begin("jtt.except.Throw_Synchronized03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_Synchronized03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_Synchronized03.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_Synchronized04() {
+		begin("jtt.except.Throw_Synchronized04");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_Synchronized04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_Synchronized04.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_except_Throw_Synchronized05() {
+		begin("jtt.except.Throw_Synchronized05");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.except.Throw_Synchronized05.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.Exception
+			try {
+				runString = "(1)";
+				jtt.except.Throw_Synchronized05.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Boxed_TYPE_01() {
+		begin("jtt.lang.Boxed_TYPE_01");
+		String runString = null;
+		try {
+			// (0) == "boolean"
+			runString = "(0)";
+			if (!"boolean".equals(jtt.lang.Boxed_TYPE_01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "byte"
+			runString = "(1)";
+			if (!"byte".equals(jtt.lang.Boxed_TYPE_01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "char"
+			runString = "(2)";
+			if (!"char".equals(jtt.lang.Boxed_TYPE_01.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == "double"
+			runString = "(3)";
+			if (!"double".equals(jtt.lang.Boxed_TYPE_01.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == "float"
+			runString = "(4)";
+			if (!"float".equals(jtt.lang.Boxed_TYPE_01.test(4))) {
+				fail(runString);
+				return;
+			}
+			// (5) == "int"
+			runString = "(5)";
+			if (!"int".equals(jtt.lang.Boxed_TYPE_01.test(5))) {
+				fail(runString);
+				return;
+			}
+			// (6) == "long"
+			runString = "(6)";
+			if (!"long".equals(jtt.lang.Boxed_TYPE_01.test(6))) {
+				fail(runString);
+				return;
+			}
+			// (7) == "short"
+			runString = "(7)";
+			if (!"short".equals(jtt.lang.Boxed_TYPE_01.test(7))) {
+				fail(runString);
+				return;
+			}
+			// (8) == "void"
+			runString = "(8)";
+			if (!"void".equals(jtt.lang.Boxed_TYPE_01.test(8))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Bridge_method01() {
+		begin("jtt.lang.Bridge_method01");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.lang.Bridge_method01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.lang.Bridge_method01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_ClassLoader_loadClass01() {
+		begin("jtt.lang.ClassLoader_loadClass01");
+		String runString = null;
+		try {
+			// (0) == "class java.lang.String"
+			runString = "(0)";
+			if (!"class java.lang.String"
+					.equals(jtt.lang.ClassLoader_loadClass01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(1)";
+				jtt.lang.ClassLoader_loadClass01.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (2) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(2)";
+				jtt.lang.ClassLoader_loadClass01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_Literal01() {
+		begin("jtt.lang.Class_Literal01");
+		String runString = null;
+		try {
+			// (0) == "class java.lang.Object"
+			runString = "(0)";
+			if (!"class java.lang.Object".equals(jtt.lang.Class_Literal01
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "class java.lang.String"
+			runString = "(1)";
+			if (!"class java.lang.String".equals(jtt.lang.Class_Literal01
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "class java.lang.Class"
+			runString = "(2)";
+			if (!"class java.lang.Class".equals(jtt.lang.Class_Literal01
+					.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == "class jtt.lang.Class_Literal01"
+			runString = "(3)";
+			if (!"class jtt.lang.Class_Literal01"
+					.equals(jtt.lang.Class_Literal01.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == null
+			runString = "(4)";
+			if (null != jtt.lang.Class_Literal01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_asSubclass01() {
+		begin("jtt.lang.Class_asSubclass01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.ClassCastException
+			try {
+				runString = "(0)";
+				jtt.lang.Class_asSubclass01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.lang.Class_asSubclass01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassCastException
+			try {
+				runString = "(2)";
+				jtt.lang.Class_asSubclass01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.lang.Class_asSubclass01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.lang.Class_asSubclass01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_cast01() {
+		begin("jtt.lang.Class_cast01");
+		String runString = null;
+		try {
+			// (1) == !java.lang.ClassCastException
+			try {
+				runString = "(1)";
+				jtt.lang.Class_cast01.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.lang.Class_cast01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ClassCastException
+			try {
+				runString = "(3)";
+				jtt.lang.Class_cast01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassCastException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.lang.Class_cast01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.lang.Class_cast01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_cast02() {
+		begin("jtt.lang.Class_cast02");
+		String runString = null;
+		try {
+			// (0) == -1
+			runString = "(0)";
+			if (-1 != jtt.lang.Class_cast02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == -1
+			runString = "(1)";
+			if (-1 != jtt.lang.Class_cast02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == -1
+			runString = "(2)";
+			if (-1 != jtt.lang.Class_cast02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -1
+			runString = "(3)";
+			if (-1 != jtt.lang.Class_cast02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 4
+			runString = "(4)";
+			if (4 != jtt.lang.Class_cast02.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_forName01() {
+		begin("jtt.lang.Class_forName01");
+		String runString = null;
+		try {
+			// (0) == "class java.lang.Object"
+			runString = "(0)";
+			if (!"class java.lang.Object".equals(jtt.lang.Class_forName01
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "class java.lang.String"
+			runString = "(1)";
+			if (!"class java.lang.String".equals(jtt.lang.Class_forName01
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "class jtt.lang.Class_forName01"
+			runString = "(2)";
+			if (!"class jtt.lang.Class_forName01"
+					.equals(jtt.lang.Class_forName01.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(3)";
+				jtt.lang.Class_forName01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_forName02() {
+		begin("jtt.lang.Class_forName02");
+		String runString = null;
+		try {
+			// (0) == "class java.lang.Object"
+			runString = "(0)";
+			if (!"class java.lang.Object".equals(jtt.lang.Class_forName02
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "class java.lang.String"
+			runString = "(1)";
+			if (!"class java.lang.String".equals(jtt.lang.Class_forName02
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "class jtt.lang.Class_forName02"
+			runString = "(2)";
+			if (!"class jtt.lang.Class_forName02"
+					.equals(jtt.lang.Class_forName02.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(3)";
+				jtt.lang.Class_forName02.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_forName03() {
+		begin("jtt.lang.Class_forName03");
+		String runString = null;
+		try {
+			// (0) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(0)";
+				jtt.lang.Class_forName03.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == "class [Ljava.lang.String;"
+			runString = "(1)";
+			if (!"class [Ljava.lang.String;".equals(jtt.lang.Class_forName03
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(2)";
+				jtt.lang.Class_forName03.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == "class [I"
+			runString = "(3)";
+			if (!"class [I".equals(jtt.lang.Class_forName03.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(4)";
+				jtt.lang.Class_forName03.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (5) == null
+			runString = "(5)";
+			if (null != jtt.lang.Class_forName03.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_forName04() {
+		begin("jtt.lang.Class_forName04");
+		String runString = null;
+		try {
+			// (0) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(0)";
+				jtt.lang.Class_forName04.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == "class [Ljava.lang.String;"
+			runString = "(1)";
+			if (!"class [Ljava.lang.String;".equals(jtt.lang.Class_forName04
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(2)";
+				jtt.lang.Class_forName04.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == "class [I"
+			runString = "(3)";
+			if (!"class [I".equals(jtt.lang.Class_forName04.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.ClassNotFoundException
+			try {
+				runString = "(4)";
+				jtt.lang.Class_forName04.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ClassNotFoundException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (5) == null
+			runString = "(5)";
+			if (null != jtt.lang.Class_forName04.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_forName05() {
+		begin("jtt.lang.Class_forName05");
+		String runString = null;
+		try {
+			// (0) == "class java.lang.String"
+			runString = "(0)";
+			if (!"class java.lang.String".equals(jtt.lang.Class_forName05
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "class [Ljava.lang.String;"
+			runString = "(1)";
+			if (!"class [Ljava.lang.String;".equals(jtt.lang.Class_forName05
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (5) == null
+			runString = "(5)";
+			if (null != jtt.lang.Class_forName05.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getComponentType01() {
+		begin("jtt.lang.Class_getComponentType01");
+		String runString = null;
+		try {
+			// (0) == null
+			runString = "(0)";
+			if (null != jtt.lang.Class_getComponentType01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == "int"
+			runString = "(1)";
+			if (!"int".equals(jtt.lang.Class_getComponentType01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == null
+			runString = "(2)";
+			if (null != jtt.lang.Class_getComponentType01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == "java.lang.Object"
+			runString = "(3)";
+			if (!"java.lang.Object".equals(jtt.lang.Class_getComponentType01
+					.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == null
+			runString = "(4)";
+			if (null != jtt.lang.Class_getComponentType01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == null
+			runString = "(5)";
+			if (null != jtt.lang.Class_getComponentType01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == "[Ljava.lang.Object;"
+			runString = "(6)";
+			if (!"[Ljava.lang.Object;".equals(jtt.lang.Class_getComponentType01
+					.test(6))) {
+				fail(runString);
+				return;
+			}
+			// (7) == null
+			runString = "(7)";
+			if (null != jtt.lang.Class_getComponentType01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == null
+			runString = "(8)";
+			if (null != jtt.lang.Class_getComponentType01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getInterfaces01() {
+		begin("jtt.lang.Class_getInterfaces01");
+		String runString = null;
+		try {
+			// (0) == ""
+			runString = "(0)";
+			if (!"".equals(jtt.lang.Class_getInterfaces01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "jtt.lang.Class_getInterfaces01$I1"
+			runString = "(1)";
+			if (!"jtt.lang.Class_getInterfaces01$I1"
+					.equals(jtt.lang.Class_getInterfaces01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "jtt.lang.Class_getInterfaces01$I1"
+			runString = "(2)";
+			if (!"jtt.lang.Class_getInterfaces01$I1"
+					.equals(jtt.lang.Class_getInterfaces01.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == "jtt.lang.Class_getInterfaces01$I2"
+			runString = "(3)";
+			if (!"jtt.lang.Class_getInterfaces01$I2"
+					.equals(jtt.lang.Class_getInterfaces01.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) ==
+			// "jtt.lang.Class_getInterfaces01$I1 jtt.lang.Class_getInterfaces01$I2"
+			runString = "(4)";
+			if (!"jtt.lang.Class_getInterfaces01$I1 jtt.lang.Class_getInterfaces01$I2"
+					.equals(jtt.lang.Class_getInterfaces01.test(4))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getName01() {
+		begin("jtt.lang.Class_getName01");
+		String runString = null;
+		try {
+			// (0) == "java.lang.Object"
+			runString = "(0)";
+			if (!"java.lang.Object".equals(jtt.lang.Class_getName01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "java.lang.Class"
+			runString = "(1)";
+			if (!"java.lang.Class".equals(jtt.lang.Class_getName01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "jtt.lang.Class_getName01"
+			runString = "(2)";
+			if (!"jtt.lang.Class_getName01".equals(jtt.lang.Class_getName01
+					.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == "true"
+			runString = "(3)";
+			if (!"true".equals(jtt.lang.Class_getName01.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == null
+			runString = "(4)";
+			if (null != jtt.lang.Class_getName01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getName02() {
+		begin("jtt.lang.Class_getName02");
+		String runString = null;
+		try {
+			// (0) == "int"
+			runString = "(0)";
+			if (!"int".equals(jtt.lang.Class_getName02.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "[I"
+			runString = "(1)";
+			if (!"[I".equals(jtt.lang.Class_getName02.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "[[Ljava.lang.Object;"
+			runString = "(2)";
+			if (!"[[Ljava.lang.Object;"
+					.equals(jtt.lang.Class_getName02.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == null
+			runString = "(3)";
+			if (null != jtt.lang.Class_getName02.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getSimpleName01() {
+		begin("jtt.lang.Class_getSimpleName01");
+		String runString = null;
+		try {
+			// (0) == "Object"
+			runString = "(0)";
+			if (!"Object".equals(jtt.lang.Class_getSimpleName01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "Class"
+			runString = "(1)";
+			if (!"Class".equals(jtt.lang.Class_getSimpleName01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "Class_getSimpleName01"
+			runString = "(2)";
+			if (!"Class_getSimpleName01".equals(jtt.lang.Class_getSimpleName01
+					.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == null
+			runString = "(3)";
+			if (null != jtt.lang.Class_getSimpleName01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getSimpleName02() {
+		begin("jtt.lang.Class_getSimpleName02");
+		String runString = null;
+		try {
+			// (0) == "int"
+			runString = "(0)";
+			if (!"int".equals(jtt.lang.Class_getSimpleName02.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "int[]"
+			runString = "(1)";
+			if (!"int[]".equals(jtt.lang.Class_getSimpleName02.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "Object[][]"
+			runString = "(2)";
+			if (!"Object[][]".equals(jtt.lang.Class_getSimpleName02.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == null
+			runString = "(3)";
+			if (null != jtt.lang.Class_getSimpleName02.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_getSuperClass01() {
+		begin("jtt.lang.Class_getSuperClass01");
+		String runString = null;
+		try {
+			// (0) == null
+			runString = "(0)";
+			if (null != jtt.lang.Class_getSuperClass01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == null
+			runString = "(1)";
+			if (null != jtt.lang.Class_getSuperClass01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == "java.lang.Object"
+			runString = "(2)";
+			if (!"java.lang.Object".equals(jtt.lang.Class_getSuperClass01
+					.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == null
+			runString = "(3)";
+			if (null != jtt.lang.Class_getSuperClass01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == "java.lang.Number"
+			runString = "(4)";
+			if (!"java.lang.Number".equals(jtt.lang.Class_getSuperClass01
+					.test(4))) {
+				fail(runString);
+				return;
+			}
+			// (5) == "java.lang.Object"
+			runString = "(5)";
+			if (!"java.lang.Object".equals(jtt.lang.Class_getSuperClass01
+					.test(5))) {
+				fail(runString);
+				return;
+			}
+			// (6) == "java.lang.Object"
+			runString = "(6)";
+			if (!"java.lang.Object".equals(jtt.lang.Class_getSuperClass01
+					.test(6))) {
+				fail(runString);
+				return;
+			}
+			// (7) == null
+			runString = "(7)";
+			if (null != jtt.lang.Class_getSuperClass01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isArray01() {
+		begin("jtt.lang.Class_isArray01");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isArray01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Class_isArray01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isArray01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.lang.Class_isArray01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Class_isArray01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Class_isArray01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Class_isArray01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.lang.Class_isArray01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.lang.Class_isArray01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isAssignableFrom01() {
+		begin("jtt.lang.Class_isAssignableFrom01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Class_isAssignableFrom01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.lang.Class_isAssignableFrom01.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isAssignableFrom02() {
+		begin("jtt.lang.Class_isAssignableFrom02");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isAssignableFrom02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Class_isAssignableFrom02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isAssignableFrom02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isAssignableFrom02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.Class_isAssignableFrom02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Class_isAssignableFrom02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Class_isAssignableFrom02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.lang.Class_isAssignableFrom02.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isAssignableFrom03() {
+		begin("jtt.lang.Class_isAssignableFrom03");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isAssignableFrom03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Class_isAssignableFrom03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isAssignableFrom03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.lang.Class_isAssignableFrom03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Class_isAssignableFrom03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Class_isAssignableFrom03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Class_isAssignableFrom03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.lang.Class_isAssignableFrom03.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInstance01() {
+		begin("jtt.lang.Class_isInstance01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Class_isInstance01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Class_isInstance01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Class_isInstance01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isInstance01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInstance02() {
+		begin("jtt.lang.Class_isInstance02");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isInstance02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Class_isInstance02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isInstance02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isInstance02.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInstance03() {
+		begin("jtt.lang.Class_isInstance03");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isInstance03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isInstance03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Class_isInstance03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isInstance03.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInstance04() {
+		begin("jtt.lang.Class_isInstance04");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isInstance04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isInstance04.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Class_isInstance04.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isInstance04.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInstance05() {
+		begin("jtt.lang.Class_isInstance05");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isInstance05.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isInstance05.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Class_isInstance05.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isInstance05.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInstance06() {
+		begin("jtt.lang.Class_isInstance06");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isInstance06.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isInstance06.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Class_isInstance06.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.lang.Class_isInstance06.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Class_isInstance06.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isInterface01() {
+		begin("jtt.lang.Class_isInterface01");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Class_isInterface01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isInterface01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isInterface01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isInterface01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Class_isInterface01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Class_isInterface01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Class_isInterface01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.lang.Class_isInterface01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.lang.Class_isInterface01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Class_isPrimitive01() {
+		begin("jtt.lang.Class_isPrimitive01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Class_isPrimitive01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Class_isPrimitive01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Class_isPrimitive01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.Class_isPrimitive01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Class_isPrimitive01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Class_isPrimitive01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Class_isPrimitive01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.lang.Class_isPrimitive01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.lang.Class_isPrimitive01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Double_toString() {
+		begin("jtt.lang.Double_toString");
+		String runString = null;
+		try {
+			// (0) == "9.834050399508132E-4"
+			runString = "(0)";
+			if (!"9.834050399508132E-4"
+					.equals(jtt.lang.Double_toString.test(0))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Float_01() {
+		begin("jtt.lang.Float_01");
+		String runString = null;
+		try {
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.lang.Float_01.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == false
+			runString = "(2.0)";
+			if (false != jtt.lang.Float_01.test(2.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.5) == false
+			runString = "(0.5)";
+			if (false != jtt.lang.Float_01.test(0.5f)) {
+				fail(runString);
+				return;
+			}
+			// (java.lang.Float.NaN) == true
+			runString = "(java.lang.Float.NaN)";
+			if (true != jtt.lang.Float_01.test(java.lang.Float.NaN)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Float_02() {
+		begin("jtt.lang.Float_02");
+		String runString = null;
+		try {
+			// (1.0) == false
+			runString = "(1.0)";
+			if (false != jtt.lang.Float_02.test(1.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2.0) == true
+			runString = "(2.0)";
+			if (true != jtt.lang.Float_02.test(2.0f)) {
+				fail(runString);
+				return;
+			}
+			// (0.5) == true
+			runString = "(0.5)";
+			if (true != jtt.lang.Float_02.test(0.5f)) {
+				fail(runString);
+				return;
+			}
+			// (java.lang.Float.NaN) == true
+			runString = "(java.lang.Float.NaN)";
+			if (true != jtt.lang.Float_02.test(java.lang.Float.NaN)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_greater01() {
+		begin("jtt.lang.Int_greater01");
+		String runString = null;
+		try {
+			// (-2147483648) == false
+			runString = "(-2147483648)";
+			if (false != jtt.lang.Int_greater01.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Int_greater01.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Int_greater01.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Int_greater01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Int_greater01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Int_greater01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == true
+			runString = "(2147483647)";
+			if (true != jtt.lang.Int_greater01.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_greater02() {
+		begin("jtt.lang.Int_greater02");
+		String runString = null;
+		try {
+			// (-2147483648) == false
+			runString = "(-2147483648)";
+			if (false != jtt.lang.Int_greater02.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Int_greater02.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Int_greater02.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Int_greater02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Int_greater02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Int_greater02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Int_greater02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Int_greater02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == true
+			runString = "(2147483647)";
+			if (true != jtt.lang.Int_greater02.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_greater03() {
+		begin("jtt.lang.Int_greater03");
+		String runString = null;
+		try {
+			// (-2147483648) == false
+			runString = "(-2147483648)";
+			if (false != jtt.lang.Int_greater03.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == false
+			runString = "(-6)";
+			if (false != jtt.lang.Int_greater03.test(-6)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == false
+			runString = "(-5)";
+			if (false != jtt.lang.Int_greater03.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == true
+			runString = "(-4)";
+			if (true != jtt.lang.Int_greater03.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Int_greater03.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Int_greater03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Int_greater03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Int_greater03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == true
+			runString = "(2147483647)";
+			if (true != jtt.lang.Int_greater03.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_greaterEqual01() {
+		begin("jtt.lang.Int_greaterEqual01");
+		String runString = null;
+		try {
+			// (-2147483648) == false
+			runString = "(-2147483648)";
+			if (false != jtt.lang.Int_greaterEqual01.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Int_greaterEqual01.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Int_greaterEqual01.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Int_greaterEqual01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Int_greaterEqual01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Int_greaterEqual01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == true
+			runString = "(2147483647)";
+			if (true != jtt.lang.Int_greaterEqual01.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_greaterEqual02() {
+		begin("jtt.lang.Int_greaterEqual02");
+		String runString = null;
+		try {
+			// (-2147483648) == false
+			runString = "(-2147483648)";
+			if (false != jtt.lang.Int_greaterEqual02.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Int_greaterEqual02.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Int_greaterEqual02.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Int_greaterEqual02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Int_greaterEqual02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Int_greaterEqual02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Int_greaterEqual02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Int_greaterEqual02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == true
+			runString = "(2147483647)";
+			if (true != jtt.lang.Int_greaterEqual02.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_greaterEqual03() {
+		begin("jtt.lang.Int_greaterEqual03");
+		String runString = null;
+		try {
+			// (-2147483648) == false
+			runString = "(-2147483648)";
+			if (false != jtt.lang.Int_greaterEqual03.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == false
+			runString = "(-6)";
+			if (false != jtt.lang.Int_greaterEqual03.test(-6)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == true
+			runString = "(-5)";
+			if (true != jtt.lang.Int_greaterEqual03.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == true
+			runString = "(-4)";
+			if (true != jtt.lang.Int_greaterEqual03.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Int_greaterEqual03.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Int_greaterEqual03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Int_greaterEqual03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Int_greaterEqual03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == true
+			runString = "(2147483647)";
+			if (true != jtt.lang.Int_greaterEqual03.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_less01() {
+		begin("jtt.lang.Int_less01");
+		String runString = null;
+		try {
+			// (-2147483648) == true
+			runString = "(-2147483648)";
+			if (true != jtt.lang.Int_less01.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Int_less01.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Int_less01.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Int_less01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Int_less01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Int_less01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == false
+			runString = "(2147483647)";
+			if (false != jtt.lang.Int_less01.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_less02() {
+		begin("jtt.lang.Int_less02");
+		String runString = null;
+		try {
+			// (-2147483648) == true
+			runString = "(-2147483648)";
+			if (true != jtt.lang.Int_less02.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Int_less02.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Int_less02.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Int_less02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.Int_less02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Int_less02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Int_less02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == false
+			runString = "(2147483647)";
+			if (false != jtt.lang.Int_less02.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_less03() {
+		begin("jtt.lang.Int_less03");
+		String runString = null;
+		try {
+			// (-2147483648) == true
+			runString = "(-2147483648)";
+			if (true != jtt.lang.Int_less03.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == true
+			runString = "(-6)";
+			if (true != jtt.lang.Int_less03.test(-6)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == false
+			runString = "(-5)";
+			if (false != jtt.lang.Int_less03.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == false
+			runString = "(-4)";
+			if (false != jtt.lang.Int_less03.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Int_less03.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Int_less03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Int_less03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Int_less03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == false
+			runString = "(2147483647)";
+			if (false != jtt.lang.Int_less03.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_lessEqual01() {
+		begin("jtt.lang.Int_lessEqual01");
+		String runString = null;
+		try {
+			// (-2147483648) == true
+			runString = "(-2147483648)";
+			if (true != jtt.lang.Int_lessEqual01.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Int_lessEqual01.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Int_lessEqual01.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Int_lessEqual01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Int_lessEqual01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Int_lessEqual01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == false
+			runString = "(2147483647)";
+			if (false != jtt.lang.Int_lessEqual01.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_lessEqual02() {
+		begin("jtt.lang.Int_lessEqual02");
+		String runString = null;
+		try {
+			// (-2147483648) == true
+			runString = "(-2147483648)";
+			if (true != jtt.lang.Int_lessEqual02.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Int_lessEqual02.test(-2)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Int_lessEqual02.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Int_lessEqual02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.Int_lessEqual02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Int_lessEqual02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Int_lessEqual02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == false
+			runString = "(2147483647)";
+			if (false != jtt.lang.Int_lessEqual02.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Int_lessEqual03() {
+		begin("jtt.lang.Int_lessEqual03");
+		String runString = null;
+		try {
+			// (-2147483648) == true
+			runString = "(-2147483648)";
+			if (true != jtt.lang.Int_lessEqual03.test(-2147483648)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == true
+			runString = "(-6)";
+			if (true != jtt.lang.Int_lessEqual03.test(-6)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == true
+			runString = "(-5)";
+			if (true != jtt.lang.Int_lessEqual03.test(-5)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == false
+			runString = "(-4)";
+			if (false != jtt.lang.Int_lessEqual03.test(-4)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Int_lessEqual03.test(-1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Int_lessEqual03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Int_lessEqual03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Int_lessEqual03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == false
+			runString = "(2147483647)";
+			if (false != jtt.lang.Int_lessEqual03.test(2147483647)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_JDK_ClassLoaders01() {
+		begin("jtt.lang.JDK_ClassLoaders01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.JDK_ClassLoaders01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.JDK_ClassLoaders01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.JDK_ClassLoaders01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.lang.JDK_ClassLoaders01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.JDK_ClassLoaders01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.JDK_ClassLoaders01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.JDK_ClassLoaders01.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_JDK_ClassLoaders02() {
+		begin("jtt.lang.JDK_ClassLoaders02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.JDK_ClassLoaders02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_greater01() {
+		begin("jtt.lang.Long_greater01");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == false
+			runString = "(-9223372036854775808)";
+			if (false != jtt.lang.Long_greater01.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Long_greater01.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Long_greater01.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Long_greater01.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Long_greater01.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Long_greater01.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == true
+			runString = "(9223372036854775807)";
+			if (true != jtt.lang.Long_greater01.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_greater02() {
+		begin("jtt.lang.Long_greater02");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == false
+			runString = "(-9223372036854775808)";
+			if (false != jtt.lang.Long_greater02.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Long_greater02.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Long_greater02.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Long_greater02.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Long_greater02.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Long_greater02.test(4L)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Long_greater02.test(5L)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Long_greater02.test(6L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == true
+			runString = "(9223372036854775807)";
+			if (true != jtt.lang.Long_greater02.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_greater03() {
+		begin("jtt.lang.Long_greater03");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == false
+			runString = "(-9223372036854775808)";
+			if (false != jtt.lang.Long_greater03.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == false
+			runString = "(-6)";
+			if (false != jtt.lang.Long_greater03.test(-6L)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == false
+			runString = "(-5)";
+			if (false != jtt.lang.Long_greater03.test(-5L)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == true
+			runString = "(-4)";
+			if (true != jtt.lang.Long_greater03.test(-4L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Long_greater03.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Long_greater03.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Long_greater03.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Long_greater03.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == true
+			runString = "(9223372036854775807)";
+			if (true != jtt.lang.Long_greater03.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_greaterEqual01() {
+		begin("jtt.lang.Long_greaterEqual01");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == false
+			runString = "(-9223372036854775808)";
+			if (false != jtt.lang.Long_greaterEqual01
+					.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Long_greaterEqual01.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Long_greaterEqual01.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Long_greaterEqual01.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Long_greaterEqual01.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Long_greaterEqual01.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == true
+			runString = "(9223372036854775807)";
+			if (true != jtt.lang.Long_greaterEqual01.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_greaterEqual02() {
+		begin("jtt.lang.Long_greaterEqual02");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == false
+			runString = "(-9223372036854775808)";
+			if (false != jtt.lang.Long_greaterEqual02
+					.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == false
+			runString = "(-2)";
+			if (false != jtt.lang.Long_greaterEqual02.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Long_greaterEqual02.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Long_greaterEqual02.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Long_greaterEqual02.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.lang.Long_greaterEqual02.test(4L)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Long_greaterEqual02.test(5L)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Long_greaterEqual02.test(6L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == true
+			runString = "(9223372036854775807)";
+			if (true != jtt.lang.Long_greaterEqual02.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_greaterEqual03() {
+		begin("jtt.lang.Long_greaterEqual03");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == false
+			runString = "(-9223372036854775808)";
+			if (false != jtt.lang.Long_greaterEqual03
+					.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == false
+			runString = "(-6)";
+			if (false != jtt.lang.Long_greaterEqual03.test(-6L)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == true
+			runString = "(-5)";
+			if (true != jtt.lang.Long_greaterEqual03.test(-5L)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == true
+			runString = "(-4)";
+			if (true != jtt.lang.Long_greaterEqual03.test(-4L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Long_greaterEqual03.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Long_greaterEqual03.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Long_greaterEqual03.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.Long_greaterEqual03.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == true
+			runString = "(9223372036854775807)";
+			if (true != jtt.lang.Long_greaterEqual03.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_less01() {
+		begin("jtt.lang.Long_less01");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == true
+			runString = "(-9223372036854775808)";
+			if (true != jtt.lang.Long_less01.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Long_less01.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Long_less01.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Long_less01.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Long_less01.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Long_less01.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == false
+			runString = "(9223372036854775807)";
+			if (false != jtt.lang.Long_less01.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_less02() {
+		begin("jtt.lang.Long_less02");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == true
+			runString = "(-9223372036854775808)";
+			if (true != jtt.lang.Long_less02.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Long_less02.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Long_less02.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Long_less02.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.Long_less02.test(4L)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Long_less02.test(5L)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Long_less02.test(6L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == false
+			runString = "(9223372036854775807)";
+			if (false != jtt.lang.Long_less02.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_less03() {
+		begin("jtt.lang.Long_less03");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == true
+			runString = "(-9223372036854775808)";
+			if (true != jtt.lang.Long_less03.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == true
+			runString = "(-6)";
+			if (true != jtt.lang.Long_less03.test(-6L)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == false
+			runString = "(-5)";
+			if (false != jtt.lang.Long_less03.test(-5L)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == false
+			runString = "(-4)";
+			if (false != jtt.lang.Long_less03.test(-4L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Long_less03.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Long_less03.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Long_less03.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Long_less03.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == false
+			runString = "(9223372036854775807)";
+			if (false != jtt.lang.Long_less03.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_lessEqual01() {
+		begin("jtt.lang.Long_lessEqual01");
+		String runString = null;
+		try {
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Long_lessEqual01.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-9223372036854775808) == true
+			runString = "(-9223372036854775808)";
+			if (true != jtt.lang.Long_lessEqual01.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Long_lessEqual01.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Long_lessEqual01.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Long_lessEqual01.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Long_lessEqual01.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Long_lessEqual01.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == false
+			runString = "(9223372036854775807)";
+			if (false != jtt.lang.Long_lessEqual01.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_lessEqual02() {
+		begin("jtt.lang.Long_lessEqual02");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == true
+			runString = "(-9223372036854775808)";
+			if (true != jtt.lang.Long_lessEqual02.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-2) == true
+			runString = "(-2)";
+			if (true != jtt.lang.Long_lessEqual02.test(-2L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == true
+			runString = "(-1)";
+			if (true != jtt.lang.Long_lessEqual02.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Long_lessEqual02.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.Long_lessEqual02.test(4L)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.lang.Long_lessEqual02.test(5L)) {
+				fail(runString);
+				return;
+			}
+			// (6) == false
+			runString = "(6)";
+			if (false != jtt.lang.Long_lessEqual02.test(6L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == false
+			runString = "(9223372036854775807)";
+			if (false != jtt.lang.Long_lessEqual02.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_lessEqual03() {
+		begin("jtt.lang.Long_lessEqual03");
+		String runString = null;
+		try {
+			// (-9223372036854775808) == true
+			runString = "(-9223372036854775808)";
+			if (true != jtt.lang.Long_lessEqual03.test(-9223372036854775808L)) {
+				fail(runString);
+				return;
+			}
+			// (-6) == true
+			runString = "(-6)";
+			if (true != jtt.lang.Long_lessEqual03.test(-6L)) {
+				fail(runString);
+				return;
+			}
+			// (-5) == true
+			runString = "(-5)";
+			if (true != jtt.lang.Long_lessEqual03.test(-5L)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == false
+			runString = "(-4)";
+			if (false != jtt.lang.Long_lessEqual03.test(-4L)) {
+				fail(runString);
+				return;
+			}
+			// (-1) == false
+			runString = "(-1)";
+			if (false != jtt.lang.Long_lessEqual03.test(-1L)) {
+				fail(runString);
+				return;
+			}
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Long_lessEqual03.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Long_lessEqual03.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Long_lessEqual03.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (9223372036854775807) == false
+			runString = "(9223372036854775807)";
+			if (false != jtt.lang.Long_lessEqual03.test(9223372036854775807L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_reverseBytes01() {
+		begin("jtt.lang.Long_reverseBytes01");
+		String runString = null;
+		try {
+			// (1234605616436508424) == 610068790934446609
+			runString = "(1234605616436508424)";
+			if (610068790934446609L != jtt.lang.Long_reverseBytes01
+					.test(1234605616436508424L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Long_reverseBytes02() {
+		begin("jtt.lang.Long_reverseBytes02");
+		String runString = null;
+		try {
+			// (1234605616436508424) == 610068790934446609
+			runString = "(1234605616436508424)";
+			if (610068790934446609L != jtt.lang.Long_reverseBytes02
+					.test(1234605616436508424L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Math_pow() {
+		begin("jtt.lang.Math_pow");
+		String runString = null;
+		try {
+			// (2.0) == 4.0
+			runString = "(2.0)";
+			if (4.0 != jtt.lang.Math_pow.test(2.0)) {
+				fail(runString);
+				return;
+			}
+			// (3.1) == 8.574187700290345
+			runString = "(3.1)";
+			if (8.574187700290345 != jtt.lang.Math_pow.test(3.1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_clone01() {
+		begin("jtt.lang.Object_clone01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.CloneNotSupportedException
+			try {
+				runString = "(0)";
+				jtt.lang.Object_clone01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.CloneNotSupportedException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_clone02() {
+		begin("jtt.lang.Object_clone02");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Object_clone02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_equals01() {
+		begin("jtt.lang.Object_equals01");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.lang.Object_equals01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.lang.Object_equals01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Object_equals01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.lang.Object_equals01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.lang.Object_equals01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == false
+			runString = "(5)";
+			if (false != jtt.lang.Object_equals01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.lang.Object_equals01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == false
+			runString = "(7)";
+			if (false != jtt.lang.Object_equals01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.lang.Object_equals01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_getClass01() {
+		begin("jtt.lang.Object_getClass01");
+		String runString = null;
+		try {
+			// (0) == "class java.lang.Object"
+			runString = "(0)";
+			if (!"class java.lang.Object".equals(jtt.lang.Object_getClass01
+					.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "class java.lang.String"
+			runString = "(1)";
+			if (!"class java.lang.String".equals(jtt.lang.Object_getClass01
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "class jtt.lang.Object_getClass01"
+			runString = "(2)";
+			if (!"class jtt.lang.Object_getClass01"
+					.equals(jtt.lang.Object_getClass01.test(2))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_hashCode01() {
+		begin("jtt.lang.Object_hashCode01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Object_hashCode01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_notify01() {
+		begin("jtt.lang.Object_notify01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.IllegalMonitorStateException
+			try {
+				runString = "(0)";
+				jtt.lang.Object_notify01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalMonitorStateException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_notify02() {
+		begin("jtt.lang.Object_notify02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Object_notify02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_notifyAll01() {
+		begin("jtt.lang.Object_notifyAll01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.IllegalMonitorStateException
+			try {
+				runString = "(0)";
+				jtt.lang.Object_notifyAll01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalMonitorStateException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_notifyAll02() {
+		begin("jtt.lang.Object_notifyAll02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Object_notifyAll02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_toString01() {
+		begin("jtt.lang.Object_toString01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Object_toString01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.Object_toString01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == false
+			runString = "(2)";
+			if (false != jtt.lang.Object_toString01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_toString02() {
+		begin("jtt.lang.Object_toString02");
+		String runString = null;
+		try {
+			// (0) == "XYZ"
+			runString = "(0)";
+			if (!"XYZ".equals(jtt.lang.Object_toString02.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "string"
+			runString = "(1)";
+			if (!"string".equals(jtt.lang.Object_toString02.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "class java.lang.String"
+			runString = "(2)";
+			if (!"class java.lang.String".equals(jtt.lang.Object_toString02
+					.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.NullPointerException
+			try {
+				runString = "(3)";
+				jtt.lang.Object_toString02.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_wait01() {
+		begin("jtt.lang.Object_wait01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.IllegalMonitorStateException
+			try {
+				runString = "(0)";
+				jtt.lang.Object_wait01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalMonitorStateException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_wait02() {
+		begin("jtt.lang.Object_wait02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Object_wait02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_Object_wait03() {
+		begin("jtt.lang.Object_wait03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.Object_wait03.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_ProcessEnvironment_init() {
+		begin("jtt.lang.ProcessEnvironment_init");
+		String runString = null;
+		try {
+			// (7) == 7
+			runString = "(7)";
+			if (7 != jtt.lang.ProcessEnvironment_init.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_StringCoding_Scale() {
+		begin("jtt.lang.StringCoding_Scale");
+		String runString = null;
+		try {
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.lang.StringCoding_Scale.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.lang.StringCoding_Scale.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.lang.StringCoding_Scale.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_String_intern01() {
+		begin("jtt.lang.String_intern01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.String_intern01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_String_intern02() {
+		begin("jtt.lang.String_intern02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.String_intern02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.String_intern02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.String_intern02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_String_intern03() {
+		begin("jtt.lang.String_intern03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.String_intern03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.String_intern03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.String_intern03.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_String_valueOf01() {
+		begin("jtt.lang.String_valueOf01");
+		String runString = null;
+		try {
+			// (0) == "null"
+			runString = "(0)";
+			if (!"null".equals(jtt.lang.String_valueOf01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "string"
+			runString = "(1)";
+			if (!"string".equals(jtt.lang.String_valueOf01.test(1))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_lang_System_identityHashCode01() {
+		begin("jtt.lang.System_identityHashCode01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.lang.System_identityHashCode01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.lang.System_identityHashCode01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.lang.System_identityHashCode01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.lang.System_identityHashCode01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_ArrayCompare01() {
+		begin("jtt.micro.ArrayCompare01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.micro.ArrayCompare01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.micro.ArrayCompare01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_ArrayCompare02() {
+		begin("jtt.micro.ArrayCompare02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.micro.ArrayCompare02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.micro.ArrayCompare02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.micro.ArrayCompare02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.micro.ArrayCompare02.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BC_invokevirtual2() {
+		begin("jtt.micro.BC_invokevirtual2");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.micro.BC_invokevirtual2.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.micro.BC_invokevirtual2.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.micro.BC_invokevirtual2.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 3
+			runString = "(3)";
+			if (3 != jtt.micro.BC_invokevirtual2.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (-4) == -4
+			runString = "(-4)";
+			if (-4 != jtt.micro.BC_invokevirtual2.test(-4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigByteParams01() {
+		begin("jtt.micro.BigByteParams01");
+		String runString = null;
+		try {
+			// (0) == 45
+			runString = "(0)";
+			if (45 != jtt.micro.BigByteParams01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 45
+			runString = "(1)";
+			if (45 != jtt.micro.BigByteParams01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 45
+			runString = "(2)";
+			if (45 != jtt.micro.BigByteParams01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 45
+			runString = "(3)";
+			if (45 != jtt.micro.BigByteParams01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.micro.BigByteParams01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigDoubleParams02() {
+		begin("jtt.micro.BigDoubleParams02");
+		String runString = null;
+		try {
+			// (0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 1.0
+			runString = "(0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (1.0 != jtt.micro.BigDoubleParams02.test(0, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (1,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 2.0
+			runString = "(1,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (2.0 != jtt.micro.BigDoubleParams02.test(1, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (2,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 3.0
+			runString = "(2,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (3.0 != jtt.micro.BigDoubleParams02.test(2, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (3,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 4.0
+			runString = "(3,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (4.0 != jtt.micro.BigDoubleParams02.test(3, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (4,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 5.0
+			runString = "(4,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (5.0 != jtt.micro.BigDoubleParams02.test(4, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (5,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 6.0
+			runString = "(5,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (6.0 != jtt.micro.BigDoubleParams02.test(5, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (6,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 7.0
+			runString = "(6,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (7.0 != jtt.micro.BigDoubleParams02.test(6, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (7,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 8.0
+			runString = "(7,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (8.0 != jtt.micro.BigDoubleParams02.test(7, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (8,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 9.0
+			runString = "(8,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (9.0 != jtt.micro.BigDoubleParams02.test(8, 1.0, 2.0, 3.0, 4.0,
+					5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigFloatParams01() {
+		begin("jtt.micro.BigFloatParams01");
+		String runString = null;
+		try {
+			// (0) == 45.0
+			runString = "(0)";
+			if (45.0 != jtt.micro.BigFloatParams01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 45.0
+			runString = "(1)";
+			if (45.0 != jtt.micro.BigFloatParams01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 45.0
+			runString = "(2)";
+			if (45.0 != jtt.micro.BigFloatParams01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 45.0
+			runString = "(3)";
+			if (45.0 != jtt.micro.BigFloatParams01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0.0
+			runString = "(4)";
+			if (0.0 != jtt.micro.BigFloatParams01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigFloatParams02() {
+		begin("jtt.micro.BigFloatParams02");
+		String runString = null;
+		try {
+			// (0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 1.0
+			runString = "(0,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (1.0f != jtt.micro.BigFloatParams02.test(0, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 2.0
+			runString = "(1,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (2.0f != jtt.micro.BigFloatParams02.test(1, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 3.0
+			runString = "(2,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (3.0f != jtt.micro.BigFloatParams02.test(2, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (3,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 4.0
+			runString = "(3,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (4.0f != jtt.micro.BigFloatParams02.test(3, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (4,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 5.0
+			runString = "(4,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (5.0f != jtt.micro.BigFloatParams02.test(4, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (5,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 6.0
+			runString = "(5,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (6.0f != jtt.micro.BigFloatParams02.test(5, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (6,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 7.0
+			runString = "(6,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (7.0f != jtt.micro.BigFloatParams02.test(6, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (7,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 8.0
+			runString = "(7,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (8.0f != jtt.micro.BigFloatParams02.test(7, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (8,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0) == 9.0
+			runString = "(8,1.0,2.0,3.0,4.0,5.0,6.0,7.0,8.0,9.0)";
+			if (9.0f != jtt.micro.BigFloatParams02.test(8, 1.0f, 2.0f, 3.0f,
+					4.0f, 5.0f, 6.0f, 7.0f, 8.0f, 9.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigIntParams01() {
+		begin("jtt.micro.BigIntParams01");
+		String runString = null;
+		try {
+			// (0) == 45
+			runString = "(0)";
+			if (45 != jtt.micro.BigIntParams01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 45
+			runString = "(1)";
+			if (45 != jtt.micro.BigIntParams01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 45
+			runString = "(2)";
+			if (45 != jtt.micro.BigIntParams01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 45
+			runString = "(3)";
+			if (45 != jtt.micro.BigIntParams01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.micro.BigIntParams01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigIntParams02() {
+		begin("jtt.micro.BigIntParams02");
+		String runString = null;
+		try {
+			// (0,1,2,3,4,5,6,7,-8,-9) == 1
+			runString = "(0,1,2,3,4,5,6,7,-8,-9)";
+			if (1 != jtt.micro.BigIntParams02.test(0, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,2,3,4,5,6,7,-8,-9) == 2
+			runString = "(1,1,2,3,4,5,6,7,-8,-9)";
+			if (2 != jtt.micro.BigIntParams02.test(1, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (2,1,2,3,4,5,6,7,-8,-9) == 3
+			runString = "(2,1,2,3,4,5,6,7,-8,-9)";
+			if (3 != jtt.micro.BigIntParams02.test(2, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (3,1,2,3,4,5,6,7,-8,-9) == 4
+			runString = "(3,1,2,3,4,5,6,7,-8,-9)";
+			if (4 != jtt.micro.BigIntParams02.test(3, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (4,1,2,3,4,5,6,7,-8,-9) == 5
+			runString = "(4,1,2,3,4,5,6,7,-8,-9)";
+			if (5 != jtt.micro.BigIntParams02.test(4, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (5,1,2,3,4,5,6,7,-8,-9) == 6
+			runString = "(5,1,2,3,4,5,6,7,-8,-9)";
+			if (6 != jtt.micro.BigIntParams02.test(5, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (6,1,2,3,4,5,6,7,-8,-9) == 7
+			runString = "(6,1,2,3,4,5,6,7,-8,-9)";
+			if (7 != jtt.micro.BigIntParams02.test(6, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (7,1,2,3,4,5,6,7,-8,-9) == -8
+			runString = "(7,1,2,3,4,5,6,7,-8,-9)";
+			if (-8 != jtt.micro.BigIntParams02.test(7, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+			// (8,1,2,3,4,5,6,7,-8,-9) == -9
+			runString = "(8,1,2,3,4,5,6,7,-8,-9)";
+			if (-9 != jtt.micro.BigIntParams02.test(8, 1, 2, 3, 4, 5, 6, 7, -8,
+					-9)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigInterfaceParams01() {
+		begin("jtt.micro.BigInterfaceParams01");
+		String runString = null;
+		try {
+			// (true,"0","1","2","3","4","5","6","7","8","9") == "A0123456789"
+			runString = "(true,\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\")";
+			if (!"A0123456789".equals(jtt.micro.BigInterfaceParams01.test(true,
+					"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"))) {
+				fail(runString);
+				return;
+			}
+			// (false,"0","1","2","3","4","5","6","7","8","9") == "B0123456789"
+			runString = "(false,\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\")";
+			if (!"B0123456789".equals(jtt.micro.BigInterfaceParams01.test(
+					false, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigLongParams02() {
+		begin("jtt.micro.BigLongParams02");
+		String runString = null;
+		try {
+			// (0,1,2,3,4,5,6,7,-8,-9) == 1
+			runString = "(0,1,2,3,4,5,6,7,-8,-9)";
+			if (1L != jtt.micro.BigLongParams02.test(0, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (1,1,2,3,4,5,6,7,-8,-9) == 2
+			runString = "(1,1,2,3,4,5,6,7,-8,-9)";
+			if (2L != jtt.micro.BigLongParams02.test(1, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (2,1,2,3,4,5,6,7,-8,-9) == 3
+			runString = "(2,1,2,3,4,5,6,7,-8,-9)";
+			if (3L != jtt.micro.BigLongParams02.test(2, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (3,1,2,3,4,5,6,7,-8,-9) == 4
+			runString = "(3,1,2,3,4,5,6,7,-8,-9)";
+			if (4L != jtt.micro.BigLongParams02.test(3, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (4,1,2,3,4,5,6,7,-8,-9) == 5
+			runString = "(4,1,2,3,4,5,6,7,-8,-9)";
+			if (5L != jtt.micro.BigLongParams02.test(4, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (5,1,2,3,4,5,6,7,-8,-9) == 6
+			runString = "(5,1,2,3,4,5,6,7,-8,-9)";
+			if (6L != jtt.micro.BigLongParams02.test(5, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (6,1,2,3,4,5,6,7,-8,-9) == 7
+			runString = "(6,1,2,3,4,5,6,7,-8,-9)";
+			if (7L != jtt.micro.BigLongParams02.test(6, 1L, 2L, 3L, 4L, 5L, 6L,
+					7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (7,1,2,3,4,5,6,7,-8,-9) == -8
+			runString = "(7,1,2,3,4,5,6,7,-8,-9)";
+			if (-8L != jtt.micro.BigLongParams02.test(7, 1L, 2L, 3L, 4L, 5L,
+					6L, 7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+			// (8,1,2,3,4,5,6,7,-8,-9) == -9
+			runString = "(8,1,2,3,4,5,6,7,-8,-9)";
+			if (-9L != jtt.micro.BigLongParams02.test(8, 1L, 2L, 3L, 4L, 5L,
+					6L, 7L, -8L, -9L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigMixedParams01() {
+		begin("jtt.micro.BigMixedParams01");
+		String runString = null;
+		try {
+			// (0) == 45.0
+			runString = "(0)";
+			if (45.0 != jtt.micro.BigMixedParams01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 45.0
+			runString = "(1)";
+			if (45.0 != jtt.micro.BigMixedParams01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 45.0
+			runString = "(2)";
+			if (45.0 != jtt.micro.BigMixedParams01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 45.0
+			runString = "(3)";
+			if (45.0 != jtt.micro.BigMixedParams01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0.0
+			runString = "(4)";
+			if (0.0 != jtt.micro.BigMixedParams01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigMixedParams02() {
+		begin("jtt.micro.BigMixedParams02");
+		String runString = null;
+		try {
+			// (0,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 1.0
+			runString = "(0,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (1.0f != jtt.micro.BigMixedParams02.test(0, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 2.0
+			runString = "(1,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (2.0f != jtt.micro.BigMixedParams02.test(1, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (2,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 3.0
+			runString = "(2,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (3.0f != jtt.micro.BigMixedParams02.test(2, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (3,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 4.0
+			runString = "(3,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (4.0f != jtt.micro.BigMixedParams02.test(3, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (4,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 5.0
+			runString = "(4,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (5.0f != jtt.micro.BigMixedParams02.test(4, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (5,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 6.0
+			runString = "(5,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (6.0f != jtt.micro.BigMixedParams02.test(5, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (6,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 7.0
+			runString = "(6,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (7.0f != jtt.micro.BigMixedParams02.test(6, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (7,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 8.0
+			runString = "(7,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (8.0f != jtt.micro.BigMixedParams02.test(7, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+			// (8,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 9.0
+			runString = "(8,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (9.0f != jtt.micro.BigMixedParams02.test(8, -1, -1, -1, -1,
+					1.0f, 2.0f, 3.0f, 4.0f, -1, -1, 5.0f, 6.0f, 7.0f, 8.0f,
+					9.0f)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigMixedParams03() {
+		begin("jtt.micro.BigMixedParams03");
+		String runString = null;
+		try {
+			// (0,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 1.0
+			runString = "(0,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (1.0 != jtt.micro.BigMixedParams03.test(0, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (1,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 2.0
+			runString = "(1,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (2.0 != jtt.micro.BigMixedParams03.test(1, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (2,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 3.0
+			runString = "(2,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (3.0 != jtt.micro.BigMixedParams03.test(2, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (3,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 4.0
+			runString = "(3,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (4.0 != jtt.micro.BigMixedParams03.test(3, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (4,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 5.0
+			runString = "(4,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (5.0 != jtt.micro.BigMixedParams03.test(4, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (5,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 6.0
+			runString = "(5,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (6.0 != jtt.micro.BigMixedParams03.test(5, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (6,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 7.0
+			runString = "(6,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (7.0 != jtt.micro.BigMixedParams03.test(6, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (7,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 8.0
+			runString = "(7,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (8.0 != jtt.micro.BigMixedParams03.test(7, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+			// (8,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0) == 9.0
+			runString = "(8,-1,-1,-1,-1,1.0,2.0,3.0,4.0,-1,-1,5.0,6.0,7.0,8.0,9.0)";
+			if (9.0 != jtt.micro.BigMixedParams03.test(8, -1, -1, -1, -1, 1.0,
+					2.0, 3.0, 4.0, -1, -1, 5.0, 6.0, 7.0, 8.0, 9.0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigObjectParams01() {
+		begin("jtt.micro.BigObjectParams01");
+		String runString = null;
+		try {
+			// ("0","1","2","3","4","5","6","7","8","9") == "0"
+			runString = "(\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\")";
+			if (!"0".equals(jtt.micro.BigObjectParams01.test("0", "1", "2",
+					"3", "4", "5", "6", "7", "8", "9"))) {
+				fail(runString);
+				return;
+			}
+			// ("a",null,null,null,null,null,null,null,null,null) == "a"
+			runString = "(\"a\",null,null,null,null,null,null,null,null,null)";
+			if (!"a".equals(jtt.micro.BigObjectParams01.test("a", null, null,
+					null, null, null, null, null, null, null))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigObjectParams02() {
+		begin("jtt.micro.BigObjectParams02");
+		String runString = null;
+		try {
+			// ("0","1","2","3","4","5","6","7","8","9") == "0123456789"
+			runString = "(\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\")";
+			if (!"0123456789".equals(jtt.micro.BigObjectParams02.test("0", "1",
+					"2", "3", "4", "5", "6", "7", "8", "9"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigParamsAlignment() {
+		begin("jtt.micro.BigParamsAlignment");
+		String runString = null;
+		try {
+			// (0) == 45
+			runString = "(0)";
+			if (45 != jtt.micro.BigParamsAlignment.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 55
+			runString = "(1)";
+			if (55 != jtt.micro.BigParamsAlignment.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 45
+			runString = "(2)";
+			if (45 != jtt.micro.BigParamsAlignment.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 55
+			runString = "(3)";
+			if (55 != jtt.micro.BigParamsAlignment.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 66
+			runString = "(4)";
+			if (66 != jtt.micro.BigParamsAlignment.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 78
+			runString = "(5)";
+			if (78 != jtt.micro.BigParamsAlignment.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 0
+			runString = "(6)";
+			if (0 != jtt.micro.BigParamsAlignment.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigShortParams01() {
+		begin("jtt.micro.BigShortParams01");
+		String runString = null;
+		try {
+			// (0) == 45
+			runString = "(0)";
+			if (45 != jtt.micro.BigShortParams01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 45
+			runString = "(1)";
+			if (45 != jtt.micro.BigShortParams01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 45
+			runString = "(2)";
+			if (45 != jtt.micro.BigShortParams01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 45
+			runString = "(3)";
+			if (45 != jtt.micro.BigShortParams01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 0
+			runString = "(4)";
+			if (0 != jtt.micro.BigShortParams01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_BigVirtualParams01() {
+		begin("jtt.micro.BigVirtualParams01");
+		String runString = null;
+		try {
+			// (true,"0","1","2","3","4","5","6","7","8","9") == "A0123456789"
+			runString = "(true,\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\")";
+			if (!"A0123456789".equals(jtt.micro.BigVirtualParams01.test(true,
+					"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"))) {
+				fail(runString);
+				return;
+			}
+			// (false,"0","1","2","3","4","5","6","7","8","9") == "B0123456789"
+			runString = "(false,\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\")";
+			if (!"B0123456789".equals(jtt.micro.BigVirtualParams01.test(false,
+					"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_Bubblesort() {
+		begin("jtt.micro.Bubblesort");
+		String runString = null;
+		try {
+			// (0) == -9
+			runString = "(0)";
+			if (-9 != jtt.micro.Bubblesort.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 0
+			runString = "(1)";
+			if (0 != jtt.micro.Bubblesort.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 0
+			runString = "(2)";
+			if (0 != jtt.micro.Bubblesort.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 1
+			runString = "(3)";
+			if (1 != jtt.micro.Bubblesort.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 5
+			runString = "(4)";
+			if (5 != jtt.micro.Bubblesort.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 8
+			runString = "(5)";
+			if (8 != jtt.micro.Bubblesort.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 23
+			runString = "(6)";
+			if (23 != jtt.micro.Bubblesort.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 882
+			runString = "(7)";
+			if (882 != jtt.micro.Bubblesort.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_Fibonacci() {
+		begin("jtt.micro.Fibonacci");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.micro.Fibonacci.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.micro.Fibonacci.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 1
+			runString = "(2)";
+			if (1 != jtt.micro.Fibonacci.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 2
+			runString = "(3)";
+			if (2 != jtt.micro.Fibonacci.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 3
+			runString = "(4)";
+			if (3 != jtt.micro.Fibonacci.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 5
+			runString = "(5)";
+			if (5 != jtt.micro.Fibonacci.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == 8
+			runString = "(6)";
+			if (8 != jtt.micro.Fibonacci.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == 13
+			runString = "(7)";
+			if (13 != jtt.micro.Fibonacci.test(7)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_InvokeVirtual_01() {
+		begin("jtt.micro.InvokeVirtual_01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.micro.InvokeVirtual_01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11 != jtt.micro.InvokeVirtual_01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 22
+			runString = "(2)";
+			if (22 != jtt.micro.InvokeVirtual_01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 42
+			runString = "(3)";
+			if (42 != jtt.micro.InvokeVirtual_01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_InvokeVirtual_02() {
+		begin("jtt.micro.InvokeVirtual_02");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.micro.InvokeVirtual_02.test(0L)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 11
+			runString = "(1)";
+			if (11L != jtt.micro.InvokeVirtual_02.test(1L)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 22
+			runString = "(2)";
+			if (22L != jtt.micro.InvokeVirtual_02.test(2L)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 42
+			runString = "(3)";
+			if (42L != jtt.micro.InvokeVirtual_02.test(3L)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_Matrix01() {
+		begin("jtt.micro.Matrix01");
+		String runString = null;
+		try {
+			// (0) == 8
+			runString = "(0)";
+			if (8 != jtt.micro.Matrix01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 34
+			runString = "(1)";
+			if (34 != jtt.micro.Matrix01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 152
+			runString = "(2)";
+			if (152 != jtt.micro.Matrix01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 204
+			runString = "(3)";
+			if (204 != jtt.micro.Matrix01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == 1547
+			runString = "(4)";
+			if (1547 != jtt.micro.Matrix01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == 42
+			runString = "(5)";
+			if (42 != jtt.micro.Matrix01.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_StrangeFrames() {
+		begin("jtt.micro.StrangeFrames");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.micro.StrangeFrames.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_String_format01() {
+		begin("jtt.micro.String_format01");
+		String runString = null;
+		try {
+			// ("World") == "Hello World"
+			runString = "(\"World\")";
+			if (!"Hello World".equals(jtt.micro.String_format01.test("World"))) {
+				fail(runString);
+				return;
+			}
+			// ("New World Order") == "Hello New World Order"
+			runString = "(\"New World Order\")";
+			if (!"Hello New World Order".equals(jtt.micro.String_format01
+					.test("New World Order"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_String_format02() {
+		begin("jtt.micro.String_format02");
+		String runString = null;
+		try {
+			// (0) == "Hello 0"
+			runString = "(0)";
+			if (!"Hello 0".equals(jtt.micro.String_format02.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (-11) == "Hello -11"
+			runString = "(-11)";
+			if (!"Hello -11".equals(jtt.micro.String_format02.test(-11))) {
+				fail(runString);
+				return;
+			}
+			// (-2147483648) == "Hello -2147483648"
+			runString = "(-2147483648)";
+			if (!"Hello -2147483648".equals(jtt.micro.String_format02
+					.test(-2147483648))) {
+				fail(runString);
+				return;
+			}
+			// (2147483647) == "Hello 2147483647"
+			runString = "(2147483647)";
+			if (!"Hello 2147483647".equals(jtt.micro.String_format02
+					.test(2147483647))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_String01() {
+		begin("jtt.micro.VarArgs_String01");
+		String runString = null;
+		try {
+			// (0) == "a"
+			runString = "(0)";
+			if (!"a".equals(jtt.micro.VarArgs_String01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == null
+			runString = "(1)";
+			if (null != jtt.micro.VarArgs_String01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == "test"
+			runString = "(2)";
+			if (!"test".equals(jtt.micro.VarArgs_String01.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_String01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_String01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_boolean01() {
+		begin("jtt.micro.VarArgs_boolean01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.micro.VarArgs_boolean01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.micro.VarArgs_boolean01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.micro.VarArgs_boolean01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_boolean01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_boolean01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_byte01() {
+		begin("jtt.micro.VarArgs_byte01");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if ((byte) 1 != jtt.micro.VarArgs_byte01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 2
+			runString = "(1)";
+			if ((byte) 2 != jtt.micro.VarArgs_byte01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 3
+			runString = "(2)";
+			if ((byte) 3 != jtt.micro.VarArgs_byte01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_byte01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_byte01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_char01() {
+		begin("jtt.micro.VarArgs_char01");
+		String runString = null;
+		try {
+			// (0) == 'a'
+			runString = "(0)";
+			if ((char) 97 != jtt.micro.VarArgs_char01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 'b'
+			runString = "(1)";
+			if ((char) 98 != jtt.micro.VarArgs_char01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 'c'
+			runString = "(2)";
+			if ((char) 99 != jtt.micro.VarArgs_char01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_char01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_char01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_double01() {
+		begin("jtt.micro.VarArgs_double01");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0 != jtt.micro.VarArgs_double01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1.0
+			runString = "(1)";
+			if (1.0 != jtt.micro.VarArgs_double01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2.0
+			runString = "(2)";
+			if (2.0 != jtt.micro.VarArgs_double01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_double01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_double01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_float01() {
+		begin("jtt.micro.VarArgs_float01");
+		String runString = null;
+		try {
+			// (0) == 0.0
+			runString = "(0)";
+			if (0.0f != jtt.micro.VarArgs_float01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1.0
+			runString = "(1)";
+			if (1.0f != jtt.micro.VarArgs_float01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2.0
+			runString = "(2)";
+			if (2.0f != jtt.micro.VarArgs_float01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_float01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_float01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_int01() {
+		begin("jtt.micro.VarArgs_int01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.micro.VarArgs_int01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.micro.VarArgs_int01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.micro.VarArgs_int01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_int01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_int01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_long01() {
+		begin("jtt.micro.VarArgs_long01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0L != jtt.micro.VarArgs_long01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1L != jtt.micro.VarArgs_long01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2L != jtt.micro.VarArgs_long01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_long01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_long01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_micro_VarArgs_short01() {
+		begin("jtt.micro.VarArgs_short01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if ((short) 0 != jtt.micro.VarArgs_short01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if ((short) 1 != jtt.micro.VarArgs_short01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if ((short) 2 != jtt.micro.VarArgs_short01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.micro.VarArgs_short01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(4)";
+				jtt.micro.VarArgs_short01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_get01() {
+		begin("jtt.reflect.Array_get01");
+		String runString = null;
+		try {
+			// (0) == "0"
+			runString = "(0)";
+			if (!"0".equals(jtt.reflect.Array_get01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "1"
+			runString = "(1)";
+			if (!"1".equals(jtt.reflect.Array_get01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "2"
+			runString = "(2)";
+			if (!"2".equals(jtt.reflect.Array_get01.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_get01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_get02() {
+		begin("jtt.reflect.Array_get02");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.reflect.Array_get02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21
+			runString = "(1)";
+			if (21 != jtt.reflect.Array_get02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42
+			runString = "(2)";
+			if (42 != jtt.reflect.Array_get02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_get02.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_get03() {
+		begin("jtt.reflect.Array_get03");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if ((byte) 11 != jtt.reflect.Array_get03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21
+			runString = "(1)";
+			if ((byte) 21 != jtt.reflect.Array_get03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42
+			runString = "(2)";
+			if ((byte) 42 != jtt.reflect.Array_get03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_get03.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getBoolean01() {
+		begin("jtt.reflect.Array_getBoolean01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Array_getBoolean01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.reflect.Array_getBoolean01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Array_getBoolean01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getBoolean01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getByte01() {
+		begin("jtt.reflect.Array_getByte01");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if ((byte) 11 != jtt.reflect.Array_getByte01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21
+			runString = "(1)";
+			if ((byte) 21 != jtt.reflect.Array_getByte01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42
+			runString = "(2)";
+			if ((byte) 42 != jtt.reflect.Array_getByte01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getByte01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getChar01() {
+		begin("jtt.reflect.Array_getChar01");
+		String runString = null;
+		try {
+			// (0) == '\13'
+			runString = "(0)";
+			if ((char) 11 != jtt.reflect.Array_getChar01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == '\25'
+			runString = "(1)";
+			if ((char) 21 != jtt.reflect.Array_getChar01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == '*'
+			runString = "(2)";
+			if ((char) 42 != jtt.reflect.Array_getChar01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getChar01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getDouble01() {
+		begin("jtt.reflect.Array_getDouble01");
+		String runString = null;
+		try {
+			// (0) == 11.1
+			runString = "(0)";
+			if (11.1 != jtt.reflect.Array_getDouble01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21.1
+			runString = "(1)";
+			if (21.1 != jtt.reflect.Array_getDouble01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42.1
+			runString = "(2)";
+			if (42.1 != jtt.reflect.Array_getDouble01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getDouble01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getFloat01() {
+		begin("jtt.reflect.Array_getFloat01");
+		String runString = null;
+		try {
+			// (0) == 11.1
+			runString = "(0)";
+			if (11.1f != jtt.reflect.Array_getFloat01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21.1
+			runString = "(1)";
+			if (21.1f != jtt.reflect.Array_getFloat01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42.1
+			runString = "(2)";
+			if (42.1f != jtt.reflect.Array_getFloat01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getFloat01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getInt01() {
+		begin("jtt.reflect.Array_getInt01");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11 != jtt.reflect.Array_getInt01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21
+			runString = "(1)";
+			if (21 != jtt.reflect.Array_getInt01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42
+			runString = "(2)";
+			if (42 != jtt.reflect.Array_getInt01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getInt01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getLength01() {
+		begin("jtt.reflect.Array_getLength01");
+		String runString = null;
+		try {
+			// (0) == 3
+			runString = "(0)";
+			if (3 != jtt.reflect.Array_getLength01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 4
+			runString = "(1)";
+			if (4 != jtt.reflect.Array_getLength01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 1
+			runString = "(2)";
+			if (1 != jtt.reflect.Array_getLength01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.NullPointerException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getLength01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getLong01() {
+		begin("jtt.reflect.Array_getLong01");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if (11L != jtt.reflect.Array_getLong01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21
+			runString = "(1)";
+			if (21L != jtt.reflect.Array_getLong01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42
+			runString = "(2)";
+			if (42L != jtt.reflect.Array_getLong01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getLong01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_getShort01() {
+		begin("jtt.reflect.Array_getShort01");
+		String runString = null;
+		try {
+			// (0) == 11
+			runString = "(0)";
+			if ((short) 11 != jtt.reflect.Array_getShort01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 21
+			runString = "(1)";
+			if ((short) 21 != jtt.reflect.Array_getShort01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 42
+			runString = "(2)";
+			if ((short) 42 != jtt.reflect.Array_getShort01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3)";
+				jtt.reflect.Array_getShort01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_newInstance01() {
+		begin("jtt.reflect.Array_newInstance01");
+		String runString = null;
+		try {
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Array_newInstance01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_newInstance02() {
+		begin("jtt.reflect.Array_newInstance02");
+		String runString = null;
+		try {
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Array_newInstance02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_newInstance03() {
+		begin("jtt.reflect.Array_newInstance03");
+		String runString = null;
+		try {
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Array_newInstance03.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_newInstance04() {
+		begin("jtt.reflect.Array_newInstance04");
+		String runString = null;
+		try {
+			// (1,0) == true
+			runString = "(1,0)";
+			if (true != jtt.reflect.Array_newInstance04.test(1, 0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_newInstance05() {
+		begin("jtt.reflect.Array_newInstance05");
+		String runString = null;
+		try {
+			// (1,3) == true
+			runString = "(1,3)";
+			if (true != jtt.reflect.Array_newInstance05.test(1, 3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_newInstance06() {
+		begin("jtt.reflect.Array_newInstance06");
+		String runString = null;
+		try {
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Array_newInstance06.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_set01() {
+		begin("jtt.reflect.Array_set01");
+		String runString = null;
+		try {
+			// (0,"1") == "1"
+			runString = "(0,\"1\")";
+			if (!"1".equals(jtt.reflect.Array_set01.test(0, "1"))) {
+				fail(runString);
+				return;
+			}
+			// (1,"2") == "2"
+			runString = "(1,\"2\")";
+			if (!"2".equals(jtt.reflect.Array_set01.test(1, "2"))) {
+				fail(runString);
+				return;
+			}
+			// (0,"XXd") == "XXd"
+			runString = "(0,\"XXd\")";
+			if (!"XXd".equals(jtt.reflect.Array_set01.test(0, "XXd"))) {
+				fail(runString);
+				return;
+			}
+			// (3,"--") == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,\"--\")";
+				jtt.reflect.Array_set01.test(3, "--");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_set02() {
+		begin("jtt.reflect.Array_set02");
+		String runString = null;
+		try {
+			// (0,11) == 11
+			runString = "(0,11)";
+			if (11 != jtt.reflect.Array_set02.test(0, 11)) {
+				fail(runString);
+				return;
+			}
+			// (1,21) == 21
+			runString = "(1,21)";
+			if (21 != jtt.reflect.Array_set02.test(1, 21)) {
+				fail(runString);
+				return;
+			}
+			// (0,42) == 42
+			runString = "(0,42)";
+			if (42 != jtt.reflect.Array_set02.test(0, 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0)";
+				jtt.reflect.Array_set02.test(3, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_set03() {
+		begin("jtt.reflect.Array_set03");
+		String runString = null;
+		try {
+			// (0,11) == 11
+			runString = "(0,11)";
+			if ((byte) 11 != jtt.reflect.Array_set03.test(0, (byte) 11)) {
+				fail(runString);
+				return;
+			}
+			// (1,21) == 21
+			runString = "(1,21)";
+			if ((byte) 21 != jtt.reflect.Array_set03.test(1, (byte) 21)) {
+				fail(runString);
+				return;
+			}
+			// (0,42) == 42
+			runString = "(0,42)";
+			if ((byte) 42 != jtt.reflect.Array_set03.test(0, (byte) 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0)";
+				jtt.reflect.Array_set03.test(3, (byte) 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setBoolean01() {
+		begin("jtt.reflect.Array_setBoolean01");
+		String runString = null;
+		try {
+			// (0,true) == true
+			runString = "(0,true)";
+			if (true != jtt.reflect.Array_setBoolean01.test(0, true)) {
+				fail(runString);
+				return;
+			}
+			// (1,false) == false
+			runString = "(1,false)";
+			if (false != jtt.reflect.Array_setBoolean01.test(1, false)) {
+				fail(runString);
+				return;
+			}
+			// (2,true) == true
+			runString = "(2,true)";
+			if (true != jtt.reflect.Array_setBoolean01.test(2, true)) {
+				fail(runString);
+				return;
+			}
+			// (3,false) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,false)";
+				jtt.reflect.Array_setBoolean01.test(3, false);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setByte01() {
+		begin("jtt.reflect.Array_setByte01");
+		String runString = null;
+		try {
+			// (0,11) == 11
+			runString = "(0,11)";
+			if ((byte) 11 != jtt.reflect.Array_setByte01.test(0, (byte) 11)) {
+				fail(runString);
+				return;
+			}
+			// (1,21) == 21
+			runString = "(1,21)";
+			if ((byte) 21 != jtt.reflect.Array_setByte01.test(1, (byte) 21)) {
+				fail(runString);
+				return;
+			}
+			// (0,42) == 42
+			runString = "(0,42)";
+			if ((byte) 42 != jtt.reflect.Array_setByte01.test(0, (byte) 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0)";
+				jtt.reflect.Array_setByte01.test(3, (byte) 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setChar01() {
+		begin("jtt.reflect.Array_setChar01");
+		String runString = null;
+		try {
+			// (0,'\13') == '\13'
+			runString = "(0,'\13')";
+			if ((char) 11 != jtt.reflect.Array_setChar01.test(0, (char) 11)) {
+				fail(runString);
+				return;
+			}
+			// (1,'\25') == '\25'
+			runString = "(1,'\25')";
+			if ((char) 21 != jtt.reflect.Array_setChar01.test(1, (char) 21)) {
+				fail(runString);
+				return;
+			}
+			// (0,'*') == '*'
+			runString = "(0,'*')";
+			if ((char) 42 != jtt.reflect.Array_setChar01.test(0, (char) 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,'\0') == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,'\0')";
+				jtt.reflect.Array_setChar01.test(3, (char) 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setDouble01() {
+		begin("jtt.reflect.Array_setDouble01");
+		String runString = null;
+		try {
+			// (0,11.1) == 11.1
+			runString = "(0,11.1)";
+			if (11.1 != jtt.reflect.Array_setDouble01.test(0, 11.1)) {
+				fail(runString);
+				return;
+			}
+			// (1,21.1) == 21.1
+			runString = "(1,21.1)";
+			if (21.1 != jtt.reflect.Array_setDouble01.test(1, 21.1)) {
+				fail(runString);
+				return;
+			}
+			// (0,42.1) == 42.1
+			runString = "(0,42.1)";
+			if (42.1 != jtt.reflect.Array_setDouble01.test(0, 42.1)) {
+				fail(runString);
+				return;
+			}
+			// (3,0.1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0.1)";
+				jtt.reflect.Array_setDouble01.test(3, 0.1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setFloat01() {
+		begin("jtt.reflect.Array_setFloat01");
+		String runString = null;
+		try {
+			// (0,11.1) == 11.1
+			runString = "(0,11.1)";
+			if (11.1f != jtt.reflect.Array_setFloat01.test(0, 11.1f)) {
+				fail(runString);
+				return;
+			}
+			// (1,21.1) == 21.1
+			runString = "(1,21.1)";
+			if (21.1f != jtt.reflect.Array_setFloat01.test(1, 21.1f)) {
+				fail(runString);
+				return;
+			}
+			// (0,42.1) == 42.1
+			runString = "(0,42.1)";
+			if (42.1f != jtt.reflect.Array_setFloat01.test(0, 42.1f)) {
+				fail(runString);
+				return;
+			}
+			// (3,0.1) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0.1)";
+				jtt.reflect.Array_setFloat01.test(3, 0.1f);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setInt01() {
+		begin("jtt.reflect.Array_setInt01");
+		String runString = null;
+		try {
+			// (0,11) == 11
+			runString = "(0,11)";
+			if (11 != jtt.reflect.Array_setInt01.test(0, 11)) {
+				fail(runString);
+				return;
+			}
+			// (1,21) == 21
+			runString = "(1,21)";
+			if (21 != jtt.reflect.Array_setInt01.test(1, 21)) {
+				fail(runString);
+				return;
+			}
+			// (0,42) == 42
+			runString = "(0,42)";
+			if (42 != jtt.reflect.Array_setInt01.test(0, 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0)";
+				jtt.reflect.Array_setInt01.test(3, 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setLong01() {
+		begin("jtt.reflect.Array_setLong01");
+		String runString = null;
+		try {
+			// (0,11) == 11
+			runString = "(0,11)";
+			if (11L != jtt.reflect.Array_setLong01.test(0, 11L)) {
+				fail(runString);
+				return;
+			}
+			// (1,21) == 21
+			runString = "(1,21)";
+			if (21L != jtt.reflect.Array_setLong01.test(1, 21L)) {
+				fail(runString);
+				return;
+			}
+			// (0,42) == 42
+			runString = "(0,42)";
+			if (42L != jtt.reflect.Array_setLong01.test(0, 42L)) {
+				fail(runString);
+				return;
+			}
+			// (3,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0)";
+				jtt.reflect.Array_setLong01.test(3, 0L);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Array_setShort01() {
+		begin("jtt.reflect.Array_setShort01");
+		String runString = null;
+		try {
+			// (0,11) == 11
+			runString = "(0,11)";
+			if ((short) 11 != jtt.reflect.Array_setShort01.test(0, (short) 11)) {
+				fail(runString);
+				return;
+			}
+			// (1,21) == 21
+			runString = "(1,21)";
+			if ((short) 21 != jtt.reflect.Array_setShort01.test(1, (short) 21)) {
+				fail(runString);
+				return;
+			}
+			// (0,42) == 42
+			runString = "(0,42)";
+			if ((short) 42 != jtt.reflect.Array_setShort01.test(0, (short) 42)) {
+				fail(runString);
+				return;
+			}
+			// (3,0) == !java.lang.ArrayIndexOutOfBoundsException
+			try {
+				runString = "(3,0)";
+				jtt.reflect.Array_setShort01.test(3, (short) 0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.ArrayIndexOutOfBoundsException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_getDeclaredField01() {
+		begin("jtt.reflect.Class_getDeclaredField01");
+		String runString = null;
+		try {
+			// ("test") == !java.lang.NoSuchFieldException
+			try {
+				runString = "(\"test\")";
+				jtt.reflect.Class_getDeclaredField01.test("test");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchFieldException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("field") == "field"
+			runString = "(\"field\")";
+			if (!"field".equals(jtt.reflect.Class_getDeclaredField01
+					.test("field"))) {
+				fail(runString);
+				return;
+			}
+			// ("f2") == "f2"
+			runString = "(\"f2\")";
+			if (!"f2".equals(jtt.reflect.Class_getDeclaredField01.test("f2"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_getDeclaredMethod01() {
+		begin("jtt.reflect.Class_getDeclaredMethod01");
+		String runString = null;
+		try {
+			// ("test") == !java.lang.NoSuchMethodException
+			try {
+				runString = "(\"test\")";
+				jtt.reflect.Class_getDeclaredMethod01.test("test");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("main") == "main"
+			runString = "(\"main\")";
+			if (!"main".equals(jtt.reflect.Class_getDeclaredMethod01
+					.test("main"))) {
+				fail(runString);
+				return;
+			}
+			// ("xx") == !java.lang.NoSuchMethodException
+			try {
+				runString = "(\"xx\")";
+				jtt.reflect.Class_getDeclaredMethod01.test("xx");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_getField01() {
+		begin("jtt.reflect.Class_getField01");
+		String runString = null;
+		try {
+			// ("test") == !java.lang.NoSuchFieldException
+			try {
+				runString = "(\"test\")";
+				jtt.reflect.Class_getField01.test("test");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchFieldException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("field") == "field"
+			runString = "(\"field\")";
+			if (!"field".equals(jtt.reflect.Class_getField01.test("field"))) {
+				fail(runString);
+				return;
+			}
+			// ("field2") == "field2"
+			runString = "(\"field2\")";
+			if (!"field2".equals(jtt.reflect.Class_getField01.test("field2"))) {
+				fail(runString);
+				return;
+			}
+			// ("field3") == !java.lang.NoSuchFieldException
+			try {
+				runString = "(\"field3\")";
+				jtt.reflect.Class_getField01.test("field3");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchFieldException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_getField02() {
+		begin("jtt.reflect.Class_getField02");
+		String runString = null;
+		try {
+			// ("test") == !java.lang.NoSuchFieldException
+			try {
+				runString = "(\"test\")";
+				jtt.reflect.Class_getField02.test("test");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchFieldException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("field") == "field"
+			runString = "(\"field\")";
+			if (!"field".equals(jtt.reflect.Class_getField02.test("field"))) {
+				fail(runString);
+				return;
+			}
+			// ("field2") == "field2"
+			runString = "(\"field2\")";
+			if (!"field2".equals(jtt.reflect.Class_getField02.test("field2"))) {
+				fail(runString);
+				return;
+			}
+			// ("field3") == !java.lang.NoSuchFieldException
+			try {
+				runString = "(\"field3\")";
+				jtt.reflect.Class_getField02.test("field3");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchFieldException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("field4") == "field4"
+			runString = "(\"field4\")";
+			if (!"field4".equals(jtt.reflect.Class_getField02.test("field4"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_getMethod01() {
+		begin("jtt.reflect.Class_getMethod01");
+		String runString = null;
+		try {
+			// ("test") == !java.lang.NoSuchMethodException
+			try {
+				runString = "(\"test\")";
+				jtt.reflect.Class_getMethod01.test("test");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// ("main") == "main"
+			runString = "(\"main\")";
+			if (!"main".equals(jtt.reflect.Class_getMethod01.test("main"))) {
+				fail(runString);
+				return;
+			}
+			// ("xx") == !java.lang.NoSuchMethodException
+			try {
+				runString = "(\"xx\")";
+				jtt.reflect.Class_getMethod01.test("xx");
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_getMethod02() {
+		begin("jtt.reflect.Class_getMethod02");
+		String runString = null;
+		try {
+			// (0) == !java.lang.NoSuchMethodException
+			try {
+				runString = "(0)";
+				jtt.reflect.Class_getMethod02.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == "test"
+			runString = "(1)";
+			if (!"test".equals(jtt.reflect.Class_getMethod02.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NoSuchMethodException
+			try {
+				runString = "(2)";
+				jtt.reflect.Class_getMethod02.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == "main"
+			runString = "(3)";
+			if (!"main".equals(jtt.reflect.Class_getMethod02.test(3))) {
+				fail(runString);
+				return;
+			}
+			// (4) == !java.lang.NoSuchMethodException
+			try {
+				runString = "(4)";
+				jtt.reflect.Class_getMethod02.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (5) == !java.lang.NoSuchMethodException
+			try {
+				runString = "(5)";
+				jtt.reflect.Class_getMethod02.test(5);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NoSuchMethodException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (6) == null
+			runString = "(6)";
+			if (null != jtt.reflect.Class_getMethod02.test(6)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_newInstance01() {
+		begin("jtt.reflect.Class_newInstance01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Class_newInstance01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.reflect.Class_newInstance01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_newInstance02() {
+		begin("jtt.reflect.Class_newInstance02");
+		String runString = null;
+		try {
+			// (0) == !java.lang.IllegalAccessException
+			try {
+				runString = "(0)";
+				jtt.reflect.Class_newInstance02.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalAccessException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.reflect.Class_newInstance02.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_newInstance03() {
+		begin("jtt.reflect.Class_newInstance03");
+		String runString = null;
+		try {
+			// (0) == !java.lang.InstantiationException
+			try {
+				runString = "(0)";
+				jtt.reflect.Class_newInstance03.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.InstantiationException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == !java.lang.InstantiationException
+			try {
+				runString = "(1)";
+				jtt.reflect.Class_newInstance03.test(1);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.InstantiationException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (2) == !java.lang.InstantiationException
+			try {
+				runString = "(2)";
+				jtt.reflect.Class_newInstance03.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.InstantiationException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.InstantiationException
+			try {
+				runString = "(3)";
+				jtt.reflect.Class_newInstance03.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.InstantiationException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.reflect.Class_newInstance03.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_newInstance06() {
+		begin("jtt.reflect.Class_newInstance06");
+		String runString = null;
+		try {
+			// (0) == !java.lang.InstantiationException
+			try {
+				runString = "(0)";
+				jtt.reflect.Class_newInstance06.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.InstantiationException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.reflect.Class_newInstance06.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Class_newInstance07() {
+		begin("jtt.reflect.Class_newInstance07");
+		String runString = null;
+		try {
+			// (0) == !java.lang.Exception
+			try {
+				runString = "(0)";
+				jtt.reflect.Class_newInstance07.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.Exception.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.reflect.Class_newInstance07.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_get01() {
+		begin("jtt.reflect.Field_get01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_get01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_get01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_get01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_get01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_get01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_get01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_get01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_get01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_get01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_get02() {
+		begin("jtt.reflect.Field_get02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_get02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_get02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_get02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_get02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_get02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_get02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_get02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_get02.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_get02.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_get03() {
+		begin("jtt.reflect.Field_get03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_get03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_get03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_get03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_get03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_get03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_get03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_get03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_get03.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_get03.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_get04() {
+		begin("jtt.reflect.Field_get04");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_get04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_get04.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_get04.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_get04.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_get04.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_get04.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_get04.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_get04.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_get04.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_getType01() {
+		begin("jtt.reflect.Field_getType01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_getType01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_getType01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_getType01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_getType01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_getType01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_getType01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_getType01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_getType01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_getType01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_set01() {
+		begin("jtt.reflect.Field_set01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_set01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_set01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_set01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_set01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_set01.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_set01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_set01.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_set01.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_set01.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_set02() {
+		begin("jtt.reflect.Field_set02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_set02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_set02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_set02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_set02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_set02.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_set02.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_set02.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_set02.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_set02.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Field_set03() {
+		begin("jtt.reflect.Field_set03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.reflect.Field_set03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.reflect.Field_set03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.reflect.Field_set03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.reflect.Field_set03.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.reflect.Field_set03.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.reflect.Field_set03.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (6) == true
+			runString = "(6)";
+			if (true != jtt.reflect.Field_set03.test(6)) {
+				fail(runString);
+				return;
+			}
+			// (7) == true
+			runString = "(7)";
+			if (true != jtt.reflect.Field_set03.test(7)) {
+				fail(runString);
+				return;
+			}
+			// (8) == false
+			runString = "(8)";
+			if (false != jtt.reflect.Field_set03.test(8)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Invoke_except01() {
+		begin("jtt.reflect.Invoke_except01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.reflect.Invoke_except01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 3
+			runString = "(1)";
+			if (3 != jtt.reflect.Invoke_except01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.reflect.InvocationTargetException
+			try {
+				runString = "(2)";
+				jtt.reflect.Invoke_except01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.reflect.InvocationTargetException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == !java.lang.IllegalArgumentException
+			try {
+				runString = "(3)";
+				jtt.reflect.Invoke_except01.test(3);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalArgumentException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (4) == !java.lang.IllegalArgumentException
+			try {
+				runString = "(4)";
+				jtt.reflect.Invoke_except01.test(4);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalArgumentException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Invoke_main01() {
+		begin("jtt.reflect.Invoke_main01");
+		String runString = null;
+		try {
+			// ("test1") == "test1"
+			runString = "(\"test1\")";
+			if (!"test1".equals(jtt.reflect.Invoke_main01.test("test1"))) {
+				fail(runString);
+				return;
+			}
+			// ("test2") == "test2"
+			runString = "(\"test2\")";
+			if (!"test2".equals(jtt.reflect.Invoke_main01.test("test2"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Invoke_main02() {
+		begin("jtt.reflect.Invoke_main02");
+		String runString = null;
+		try {
+			// ("test1") == "test1"
+			runString = "(\"test1\")";
+			if (!"test1".equals(jtt.reflect.Invoke_main02.test("test1"))) {
+				fail(runString);
+				return;
+			}
+			// ("test2") == "test2"
+			runString = "(\"test2\")";
+			if (!"test2".equals(jtt.reflect.Invoke_main02.test("test2"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Invoke_main03() {
+		begin("jtt.reflect.Invoke_main03");
+		String runString = null;
+		try {
+			// ("test1") == "test1"
+			runString = "(\"test1\")";
+			if (!"test1".equals(jtt.reflect.Invoke_main03.test("test1"))) {
+				fail(runString);
+				return;
+			}
+			// ("test2") == "test2"
+			runString = "(\"test2\")";
+			if (!"test2".equals(jtt.reflect.Invoke_main03.test("test2"))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Invoke_virtual01() {
+		begin("jtt.reflect.Invoke_virtual01");
+		String runString = null;
+		try {
+			// (1) == 55
+			runString = "(1)";
+			if (55 != jtt.reflect.Invoke_virtual01.test(1)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Method_getParameterTypes01() {
+		begin("jtt.reflect.Method_getParameterTypes01");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.reflect.Method_getParameterTypes01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 1
+			runString = "(1)";
+			if (1 != jtt.reflect.Method_getParameterTypes01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 2
+			runString = "(2)";
+			if (2 != jtt.reflect.Method_getParameterTypes01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == -1
+			runString = "(3)";
+			if (-1 != jtt.reflect.Method_getParameterTypes01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Method_getReturnType01() {
+		begin("jtt.reflect.Method_getReturnType01");
+		String runString = null;
+		try {
+			// (0) == "int"
+			runString = "(0)";
+			if (!"int".equals(jtt.reflect.Method_getReturnType01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "java.lang.String"
+			runString = "(1)";
+			if (!"java.lang.String".equals(jtt.reflect.Method_getReturnType01
+					.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "void"
+			runString = "(2)";
+			if (!"void".equals(jtt.reflect.Method_getReturnType01.test(2))) {
+				fail(runString);
+				return;
+			}
+			// (3) == null
+			runString = "(3)";
+			if (null != jtt.reflect.Method_getReturnType01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_reflect_Reflection_getCallerClass01() {
+		begin("jtt.reflect.Reflection_getCallerClass01");
+		String runString = null;
+		try {
+			// (0) == "sun.reflect.Reflection"
+			runString = "(0)";
+			if (!"sun.reflect.Reflection"
+					.equals(jtt.reflect.Reflection_getCallerClass01.test(0))) {
+				fail(runString);
+				return;
+			}
+			// (1) == "jtt.reflect.Reflection_getCallerClass01$Caller1"
+			runString = "(1)";
+			if (!"jtt.reflect.Reflection_getCallerClass01$Caller1"
+					.equals(jtt.reflect.Reflection_getCallerClass01.test(1))) {
+				fail(runString);
+				return;
+			}
+			// (2) == "jtt.reflect.Reflection_getCallerClass01$Caller2"
+			runString = "(2)";
+			if (!"jtt.reflect.Reflection_getCallerClass01$Caller2"
+					.equals(jtt.reflect.Reflection_getCallerClass01.test(2))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Monitor_contended01() {
+		begin("jtt.threads.Monitor_contended01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Monitor_contended01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Monitor_notowner01() {
+		begin("jtt.threads.Monitor_notowner01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Monitor_notowner01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Monitorenter01() {
+		begin("jtt.threads.Monitorenter01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Monitorenter01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Monitorenter02() {
+		begin("jtt.threads.Monitorenter02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Monitorenter02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Object_wait01() {
+		begin("jtt.threads.Object_wait01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Object_wait01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Object_wait01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.threads.Object_wait01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (15) == true
+			runString = "(15)";
+			if (true != jtt.threads.Object_wait01.test(15)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Object_wait02() {
+		begin("jtt.threads.Object_wait02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Object_wait02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Object_wait02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.threads.Object_wait02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Object_wait03() {
+		begin("jtt.threads.Object_wait03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Object_wait03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Object_wait03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.threads.Object_wait03.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Object_wait04() {
+		begin("jtt.threads.Object_wait04");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Object_wait04.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Object_wait04.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.threads.Object_wait04.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.threads.Object_wait04.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == true
+			runString = "(4)";
+			if (true != jtt.threads.Object_wait04.test(4)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.threads.Object_wait04.test(5)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_ThreadLocal01() {
+		begin("jtt.threads.ThreadLocal01");
+		String runString = null;
+		try {
+			// (0) == 5
+			runString = "(0)";
+			if (5 != jtt.threads.ThreadLocal01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 6
+			runString = "(1)";
+			if (6 != jtt.threads.ThreadLocal01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 7
+			runString = "(2)";
+			if (7 != jtt.threads.ThreadLocal01.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_ThreadLocal02() {
+		begin("jtt.threads.ThreadLocal02");
+		String runString = null;
+		try {
+			// (0) == 5
+			runString = "(0)";
+			if (5 != jtt.threads.ThreadLocal02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 6
+			runString = "(1)";
+			if (6 != jtt.threads.ThreadLocal02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 7
+			runString = "(2)";
+			if (7 != jtt.threads.ThreadLocal02.test(2)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_ThreadLocal03() {
+		begin("jtt.threads.ThreadLocal03");
+		String runString = null;
+		try {
+			// (0) == 0
+			runString = "(0)";
+			if (0 != jtt.threads.ThreadLocal03.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == 15
+			runString = "(1)";
+			if (15 != jtt.threads.ThreadLocal03.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == 31
+			runString = "(2)";
+			if (31 != jtt.threads.ThreadLocal03.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == 48
+			runString = "(3)";
+			if (48 != jtt.threads.ThreadLocal03.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_currentThread01() {
+		begin("jtt.threads.Thread_currentThread01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_currentThread01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_getState01() {
+		begin("jtt.threads.Thread_getState01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_getState01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_getState02() {
+		begin("jtt.threads.Thread_getState02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_getState02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_holdsLock01() {
+		begin("jtt.threads.Thread_holdsLock01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_holdsLock01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == false
+			runString = "(1)";
+			if (false != jtt.threads.Thread_holdsLock01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == !java.lang.NullPointerException
+			try {
+				runString = "(2)";
+				jtt.threads.Thread_holdsLock01.test(2);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.NullPointerException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (3) == false
+			runString = "(3)";
+			if (false != jtt.threads.Thread_holdsLock01.test(3)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_isAlive01() {
+		begin("jtt.threads.Thread_isAlive01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_isAlive01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_isInterrupted01() {
+		begin("jtt.threads.Thread_isInterrupted01");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.threads.Thread_isInterrupted01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_isInterrupted02() {
+		begin("jtt.threads.Thread_isInterrupted02");
+		String runString = null;
+		try {
+			// (0,0) == true
+			runString = "(0,0)";
+			if (true != jtt.threads.Thread_isInterrupted02.test(0, 0)) {
+				fail(runString);
+				return;
+			}
+			// (1,500) == true
+			runString = "(1,500)";
+			if (true != jtt.threads.Thread_isInterrupted02.test(1, 500)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_isInterrupted03() {
+		begin("jtt.threads.Thread_isInterrupted03");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_isInterrupted03.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_isInterrupted04() {
+		begin("jtt.threads.Thread_isInterrupted04");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_isInterrupted04.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_isInterrupted05() {
+		begin("jtt.threads.Thread_isInterrupted05");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_isInterrupted05.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_join01() {
+		begin("jtt.threads.Thread_join01");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.threads.Thread_join01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_join02() {
+		begin("jtt.threads.Thread_join02");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.threads.Thread_join02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_join03() {
+		begin("jtt.threads.Thread_join03");
+		String runString = null;
+		try {
+			// (0) == false
+			runString = "(0)";
+			if (false != jtt.threads.Thread_join03.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_new01() {
+		begin("jtt.threads.Thread_new01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_new01.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Thread_new01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.threads.Thread_new01.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.threads.Thread_new01.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.threads.Thread_new01.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_new02() {
+		begin("jtt.threads.Thread_new02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_new02.test(0)) {
+				fail(runString);
+				return;
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Thread_new02.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (2) == true
+			runString = "(2)";
+			if (true != jtt.threads.Thread_new02.test(2)) {
+				fail(runString);
+				return;
+			}
+			// (3) == true
+			runString = "(3)";
+			if (true != jtt.threads.Thread_new02.test(3)) {
+				fail(runString);
+				return;
+			}
+			// (4) == false
+			runString = "(4)";
+			if (false != jtt.threads.Thread_new02.test(4)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_setPriority01() {
+		begin("jtt.threads.Thread_setPriority01");
+		String runString = null;
+		try {
+			// (0) == !java.lang.IllegalArgumentException
+			try {
+				runString = "(0)";
+				jtt.threads.Thread_setPriority01.test(0);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalArgumentException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+			// (1) == true
+			runString = "(1)";
+			if (true != jtt.threads.Thread_setPriority01.test(1)) {
+				fail(runString);
+				return;
+			}
+			// (5) == true
+			runString = "(5)";
+			if (true != jtt.threads.Thread_setPriority01.test(5)) {
+				fail(runString);
+				return;
+			}
+			// (10) == true
+			runString = "(10)";
+			if (true != jtt.threads.Thread_setPriority01.test(10)) {
+				fail(runString);
+				return;
+			}
+			// (11) == !java.lang.IllegalArgumentException
+			try {
+				runString = "(11)";
+				jtt.threads.Thread_setPriority01.test(11);
+				fail(runString);
+				return;
+			} catch (Throwable e) {
+				if (e.getClass() != java.lang.IllegalArgumentException.class) {
+					fail(runString, e);
+					return;
+				}
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_sleep01() {
+		begin("jtt.threads.Thread_sleep01");
+		String runString = null;
+		try {
+			// (10) == true
+			runString = "(10)";
+			if (true != jtt.threads.Thread_sleep01.test(10)) {
+				fail(runString);
+				return;
+			}
+			// (20) == true
+			runString = "(20)";
+			if (true != jtt.threads.Thread_sleep01.test(20)) {
+				fail(runString);
+				return;
+			}
+			// (100) == true
+			runString = "(100)";
+			if (true != jtt.threads.Thread_sleep01.test(100)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_start01() {
+		begin("jtt.threads.Thread_start01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_start01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_threads_Thread_yield01() {
+		begin("jtt.threads.Thread_yield01");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.threads.Thread_yield01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_Class_getName() {
+		begin("jtt.jdk.Class_getName");
+		String runString = null;
+		try {
+			// (0) == "java.lang.String"
+			runString = "(0)";
+			if (!"java.lang.String".equals(jtt.jdk.Class_getName.test(0))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_EnumMap01() {
+		begin("jtt.jdk.EnumMap01");
+		String runString = null;
+		try {
+			// (0) == "A"
+			runString = "(0)";
+			if (!"A".equals(jtt.jdk.EnumMap01.test(0))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_EnumMap02() {
+		begin("jtt.jdk.EnumMap02");
+		String runString = null;
+		try {
+			// (0) == "A"
+			runString = "(0)";
+			if (!"A".equals(jtt.jdk.EnumMap02.test(0))) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_System_currentTimeMillis01() {
+		begin("jtt.jdk.System_currentTimeMillis01");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.jdk.System_currentTimeMillis01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_System_currentTimeMillis02() {
+		begin("jtt.jdk.System_currentTimeMillis02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.jdk.System_currentTimeMillis02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_System_nanoTime01() {
+		begin("jtt.jdk.System_nanoTime01");
+		String runString = null;
+		try {
+			// (0) == 1
+			runString = "(0)";
+			if (1 != jtt.jdk.System_nanoTime01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_System_nanoTime02() {
+		begin("jtt.jdk.System_nanoTime02");
+		String runString = null;
+		try {
+			// (0) == true
+			runString = "(0)";
+			if (true != jtt.jdk.System_nanoTime02.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+
+	static void jtt_jdk_UnsafeAccess01() {
+		begin("jtt.jdk.UnsafeAccess01");
+		String runString = null;
+		try {
+			// (0) == 42
+			runString = "(0)";
+			if (42 != jtt.jdk.UnsafeAccess01.test(0)) {
+				fail(runString);
+				return;
+			}
+		} catch (Throwable t) {
+			fail(runString, t);
+			return;
+		}
+		pass();
+	}
+	// END GENERATED TEST RUNS
+	// Checkstyle: resume
+
+}
--- a/c1x4hotspotsrc/HotSpotVM/.settings/org.eclipse.jdt.core.prefs	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/.settings/org.eclipse.jdt.core.prefs	Mon Aug 16 18:59:36 2010 -0700
@@ -1,4 +1,4 @@
-#Fri Jul 23 17:15:04 PDT 2010
+#Tue Aug 10 16:59:56 PDT 2010
 eclipse.preferences.version=1
 org.eclipse.jdt.core.builder.cleanOutputFolder=clean
 org.eclipse.jdt.core.builder.duplicateResourceTask=warning
@@ -112,7 +112,7 @@
 org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
-org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
 org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
@@ -120,7 +120,7 @@
 org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
 org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
 org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
-org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=48
 org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
 org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
 org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/C1XHotSpotTests.java	Mon Aug 02 15:44:38 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-package com.sun.hotspot.c1x;
-
-public class C1XHotSpotTests {
-
-    public static int add(int a, int b) {
-        return a + b;
-    }
-}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Compiler.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
  *
  * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
  * described in this document. In particular, and without limitation, these intellectual property rights may include one
@@ -17,18 +17,22 @@
  */
 package com.sun.hotspot.c1x;
 
+import java.lang.reflect.Proxy;
+import java.net.*;
+
 import com.sun.c1x.*;
 import com.sun.c1x.target.amd64.*;
 import com.sun.cri.ci.*;
 import com.sun.cri.ri.*;
 import com.sun.cri.xir.*;
+import com.sun.hotspot.c1x.logging.*;
+import com.sun.hotspot.c1x.server.CompilationServer.ReplacingInputStream;
+import com.sun.hotspot.c1x.server.CompilationServer.ReplacingOutputStream;
 
 /**
- *
- * @author Thomas Wuerthinger
+ * Singleton class holding the instance of the C1XCompiler.
  *
- *         Singleton class holding the instance of the C1XCompiler.
- *
+ * @author Thomas Wuerthinger, Lukas Stadler
  */
 public class Compiler {
 
@@ -43,12 +47,23 @@
 
     private static VMEntries vmEntries;
 
+    public static VMExits initializeServer(VMEntries entries) {
+        vmEntries = LoggingProxy.getProxy(VMEntries.class, entries);
+        vmExits = LoggingProxy.getProxy(VMExits.class, new VMExitsNative());
+        return vmExits;
+    }
+
+    private static VMEntries initializeClient(VMExits exits) {
+        vmEntries = new VMEntriesNative();
+        vmExits = exits;
+        return vmEntries;
+    }
+
     public static VMEntries getVMEntries() {
         if (vmEntries == null) {
-            System.out.println("getVMEntries");
             try {
                 vmEntries = LoggingProxy.getProxy(VMEntries.class, new VMEntriesNative());
-                //vmEntries = new VMEntriesNative();
+                // vmEntries = new VMEntriesNative();
             } catch (Throwable t) {
                 t.printStackTrace();
             }
@@ -60,10 +75,24 @@
 
     public static VMExits getVMExits() {
         if (vmExits == null) {
-            System.out.println("getVMExits");
+            String remote = System.getProperty("c1x.remote");
+            assert theInstance == null;
+            assert vmEntries == null;
             try {
-                vmExits = LoggingProxy.getProxy(VMExits.class, new VMExitsNative());
-                //vmExits = new VMExitsNative();
+                if (remote != null) {
+                    System.out.println("C1X compiler started in client/server mode, connection to server " + remote);
+                    Socket socket = new Socket(remote, 1199);
+                    ReplacingOutputStream output = new ReplacingOutputStream(socket.getOutputStream());
+                    ReplacingInputStream input = new ReplacingInputStream(socket.getInputStream());
+
+                    InvocationSocket invocation = new InvocationSocket(output, input);
+                    VMExits exits = (VMExits)Proxy.newProxyInstance(VMExits.class.getClassLoader(), new Class<?>[] {VMExits.class}, invocation);
+                    VMEntries entries = Compiler.initializeClient(exits);
+                    invocation.setDelegate(entries);
+                } else {
+                    vmExits = LoggingProxy.getProxy(VMExits.class, new VMExitsNative());
+                    // vmExits = new VMExitsNative();
+                }
             } catch (Throwable t) {
                 t.printStackTrace();
             }
@@ -84,10 +113,10 @@
 
         runtime = new HotSpotRuntime(config);
         final int wordSize = 8;
-        final int stackFrameAlignment = 8;
+        final int stackFrameAlignment = 16;
         registerConfig = new HotSpotRegisterConfig(config);
-        target = new CiTarget(new AMD64(), registerConfig, true, wordSize, wordSize, wordSize, stackFrameAlignment, config.vmPageSize, wordSize, wordSize, config.codeEntryAlignment, true);
-        generator = new HotSpotXirGenerator(config, registerConfig);
+        target = new HotSpotTarget(new AMD64(), registerConfig, true, wordSize, wordSize, wordSize, stackFrameAlignment, config.vmPageSize, wordSize, wordSize, config.codeEntryAlignment, true);
+        generator = LoggingProxy.getProxy(RiXirGenerator.class, new HotSpotXirGenerator(config, target, registerConfig));
         compiler = new C1XCompiler(runtime, target, generator);
 
         C1XOptions.setOptimizationLevel(3);
@@ -97,6 +126,7 @@
         C1XOptions.PrintCompilation = true;
         C1XOptions.GenAssertionCode = true;
         C1XOptions.DetailedAsserts = true;
+        C1XOptions.GenSpecialDivChecks = true;
     }
 
     public CiCompiler getCompiler() {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/CompilerObject.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x;
+
+import java.io.*;
+
+
+/**
+ * Marker interface for all HotSpot Ri... types.
+ *
+ * @author Lukas Stadler
+ */
+public interface CompilerObject extends Serializable {
+}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotConstantPool.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotConstantPool.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,49 +1,67 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
 package com.sun.hotspot.c1x;
 
-import com.sun.cri.ci.CiConstant;
-import com.sun.cri.ri.RiConstantPool;
-import com.sun.cri.ri.RiField;
-import com.sun.cri.ri.RiMethod;
-import com.sun.cri.ri.RiSignature;
-import com.sun.cri.ri.RiType;
+import com.sun.cri.ci.*;
+import com.sun.cri.ri.*;
 
-public class HotSpotConstantPool implements RiConstantPool {
+/**
+ * Implementation of RiConstantPool for HotSpot.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
+public class HotSpotConstantPool implements RiConstantPool, CompilerObject {
 
-    private final Class<?> constantPoolHolder;
+    long vmId;
 
-    public HotSpotConstantPool(Class<?> o) {
-        this.constantPoolHolder = o;
+    public HotSpotConstantPool(long vmId) {
+        this.vmId = vmId;
     }
 
     @Override
     public CiConstant encoding() {
         // TODO: Check if this is correct.
-        return CiConstant.forObject(constantPoolHolder);
+        return CiConstant.forObject(vmId);
     }
 
     @Override
     public Object lookupConstant(int cpi) {
-        return Compiler.getVMEntries().RiConstantPool_lookupConstant(constantPoolHolder, cpi);
+        return Compiler.getVMEntries().RiConstantPool_lookupConstant(vmId, cpi);
     }
 
     @Override
     public RiMethod lookupMethod(int cpi, int byteCode) {
-        return Compiler.getVMEntries().RiConstantPool_lookupMethod(constantPoolHolder, cpi, (byte) byteCode);
+        return Compiler.getVMEntries().RiConstantPool_lookupMethod(vmId, cpi, (byte) byteCode);
     }
 
     @Override
     public RiSignature lookupSignature(int cpi) {
-        return Compiler.getVMEntries().RiConstantPool_lookupSignature(constantPoolHolder, cpi);
+        return Compiler.getVMEntries().RiConstantPool_lookupSignature(vmId, cpi);
     }
 
     @Override
     public RiType lookupType(int cpi, int opcode) {
-        return Compiler.getVMEntries().RiConstantPool_lookupType(constantPoolHolder, cpi);
+        return Compiler.getVMEntries().RiConstantPool_lookupType(vmId, cpi);
     }
 
     @Override
     public RiField lookupField(int cpi, int opcode) {
-        return Compiler.getVMEntries().RiConstantPool_lookupField(constantPoolHolder, cpi);
+        return Compiler.getVMEntries().RiConstantPool_lookupField(vmId, cpi);
     }
 
 }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotField.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,3 +1,21 @@
+/*
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+
 package com.sun.hotspot.c1x;
 
 import com.sun.cri.ci.CiConstant;
@@ -5,7 +23,12 @@
 import com.sun.cri.ri.RiField;
 import com.sun.cri.ri.RiType;
 
-public class HotSpotField implements RiField {
+/**
+ * Represents a field in a HotSpot type.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
+public class HotSpotField implements RiField, CompilerObject {
 
     private final RiType holder;
     private final String name;
@@ -66,4 +89,9 @@
         return offset;
     }
 
+    @Override
+    public String toString() {
+        return "HotSpotField<" + holder.name() + "." + name + ">";
+    }
+
 }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotInternalObject.java	Mon Aug 02 15:44:38 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-package com.sun.hotspot.c1x;
-
-public class HotSpotInternalObject {
-
-    private long id;
-
-    @Override
-    public int hashCode() {
-        final int prime = 31;
-        int result = 1;
-        result = prime * result + (int) (id ^ (id >>> 32));
-        return result;
-    }
-
-    @Override
-    public boolean equals(Object obj) {
-        if (this == obj)
-            return true;
-        if (obj == null)
-            return false;
-        if (getClass() != obj.getClass())
-            return false;
-        HotSpotInternalObject other = (HotSpotInternalObject) obj;
-        if (id != other.id)
-            return false;
-        return true;
-    }
-
-    @Override
-    public String toString() {
-        return "HotSpotInternalObject [id=" + id + "]";
-    }
-
-}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethod.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotMethod.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,28 +1,53 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
 package com.sun.hotspot.c1x;
 
-import java.lang.reflect.*;
+import com.sun.cri.ri.*;
 
-import com.sun.cri.ri.RiExceptionHandler;
-import com.sun.cri.ri.RiMethod;
-import com.sun.cri.ri.RiMethodProfile;
-import com.sun.cri.ri.RiSignature;
-import com.sun.cri.ri.RiType;
+/**
+ * Implementation of RiMethod for HotSpot methods.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
+public class HotSpotMethod implements RiMethod, CompilerObject {
 
-public class HotSpotMethod implements RiMethod {
+    private final long vmId;
+    private final String name;
 
-    Method method;
+    // cached values
     private byte[] code;
+    private int accessFlags = -1;
     private int maxLocals = -1;
     private int maxStackSize = -1;
     private RiSignature signature;
+    private RiType holder;
 
-    public HotSpotMethod(Method method) {
-        this.method = method;
+    public HotSpotMethod(long vmId, String name) {
+        this.vmId = vmId;
+        this.name = name;
     }
 
     @Override
     public int accessFlags() {
-        return Compiler.getVMEntries().RiMethod_accessFlags(method);
+        if (accessFlags == -1) {
+            accessFlags = Compiler.getVMEntries().RiMethod_accessFlags(vmId);
+        }
+        return accessFlags;
     }
 
     @Override
@@ -34,7 +59,7 @@
     @Override
     public byte[] code() {
         if (code == null) {
-            code = Compiler.getVMEntries().RiMethod_code(method);
+            code = Compiler.getVMEntries().RiMethod_code(vmId);
         }
         return code;
     }
@@ -53,7 +78,10 @@
 
     @Override
     public RiType holder() {
-        return Compiler.getVMEntries().RiMethod_holder(method);
+        if (holder == null ) {
+            holder = Compiler.getVMEntries().RiMethod_holder(vmId);
+        }
+        return holder;
     }
 
     @Override
@@ -100,15 +128,17 @@
 
     @Override
     public int maxLocals() {
-        if (maxLocals == -1)
-            maxLocals = Compiler.getVMEntries().RiMethod_maxLocals(method);
+        if (maxLocals == -1) {
+            maxLocals = Compiler.getVMEntries().RiMethod_maxLocals(vmId);
+        }
         return maxLocals;
     }
 
     @Override
     public int maxStackSize() {
-        if (maxStackSize == -1)
-            maxStackSize = Compiler.getVMEntries().RiMethod_maxStackSize(method);
+        if (maxStackSize == -1) {
+            maxStackSize = Compiler.getVMEntries().RiMethod_maxStackSize(vmId);
+        }
         return maxStackSize;
     }
 
@@ -120,14 +150,20 @@
 
     @Override
     public String name() {
-        return Compiler.getVMEntries().RiMethod_name(method);
+        return name;
     }
 
     @Override
     public RiSignature signature() {
-        if (signature == null)
-            signature = new HotSpotSignature(Compiler.getVMEntries().RiMethod_signature(method));
+        if (signature == null) {
+            signature = new HotSpotSignature(Compiler.getVMEntries().RiMethod_signature(vmId));
+        }
         return signature;
     }
 
+    @Override
+    public String toString() {
+        return "HotSpotMethod<" + name + ">";
+    }
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotProxy.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x;
+
+/**
+ * Provides methods to classify the HotSpot-internal identifiers.
+ *
+ * @author Lukas Stadler
+ */
+public class HotSpotProxy {
+
+    private HotSpotProxy() {
+    }
+
+    private enum CompilerObjectType {
+        // this enum needs to have the same values as the one in c1x_Compiler.hpp
+        STUB(0x100000000000000l),
+        METHOD(0x200000000000000l),
+        CLASS(0x300000000000000l),
+        SYMBOL(0x400000000000000l),
+        CONSTANT_POOL(0x500000000000000l),
+        CONSTANT(0x600000000000000l),
+        TYPE_MASK(0xf00000000000000l);
+
+        public final long bits;
+
+        CompilerObjectType(long bits) {
+            this.bits = bits;
+        }
+    }
+
+    private static boolean isType(long id, CompilerObjectType type) {
+        return (id & CompilerObjectType.TYPE_MASK.bits) == type.bits;
+    }
+
+    public static boolean isStub(long id) {
+        return isType(id, CompilerObjectType.STUB);
+    }
+
+    public static boolean isMethod(long id) {
+        return isType(id, CompilerObjectType.METHOD);
+    }
+
+    public static boolean isClass(long id) {
+        return isType(id, CompilerObjectType.CLASS);
+    }
+
+    public static boolean isSymbol(long id) {
+        return isType(id, CompilerObjectType.SYMBOL);
+    }
+
+    public static boolean isConstantPool(long id) {
+        return isType(id, CompilerObjectType.CONSTANT_POOL);
+    }
+
+    public static boolean isConstant(long id) {
+        return isType(id, CompilerObjectType.CONSTANT_POOL);
+    }
+
+    public static String toString(long id) {
+        CompilerObjectType type = null;
+        for (CompilerObjectType t : CompilerObjectType.values()) {
+            if ((id & CompilerObjectType.TYPE_MASK.bits) == t.bits) {
+                type = t;
+            }
+        }
+        long num = id & ~CompilerObjectType.TYPE_MASK.bits;
+        return type + " " + num;
+    }
+
+}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRegisterConfig.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
  *
  * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
  * described in this document. In particular, and without limitation, these intellectual property rights may include one
@@ -138,7 +138,24 @@
 
     @Override
     public CiRegister getReturnRegister(CiKind kind) {
-        return AMD64.rax;
+        switch (kind) {
+            case Boolean:
+            case Byte:
+            case Char:
+            case Short:
+            case Int:
+            case Long:
+            case Object:
+                return AMD64.rax;
+            case Float:
+            case Double:
+                return AMD64.xmm0;
+            case Void:
+            case Illegal:
+                return null;
+            default:
+                throw new UnsupportedOperationException("no return register for type " + kind);
+        }
     }
 
     @Override
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotRuntime.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
  *
  * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
  * described in this document. In particular, and without limitation, these intellectual property rights may include one
@@ -41,11 +41,9 @@
 import com.sun.max.asm.dis.DisassemblyPrinter;
 
 /**
- *
- * @author Thomas Wuerthinger
+ * CRI runtime implementation for the HotSpot VM.
  *
- *         CRI runtime implementation for the HotSpot VM.
- *
+ * @author Thomas Wuerthinger, Lukas Stadler
  */
 public class HotSpotRuntime implements RiRuntime {
 
@@ -118,7 +116,7 @@
                 }
                 for (DataPatch site : targetMethod.dataReferences) {
                     if (site.pcOffset == pcOffset) {
-                        return "{" + site.data + "}";
+                        return "{" + site.constant + "}";
                     }
                 }
                 return null;
@@ -145,7 +143,7 @@
 
     @Override
     public RiConstantPool getConstantPool(RiMethod method) {
-        return new HotSpotConstantPool(((HotSpotType) method.holder()).klass);
+        return ((HotSpotTypeResolved) method.holder()).constantPool();
     }
 
     @Override
@@ -155,7 +153,7 @@
     }
 
     @Override
-    public RiType getRiType(Class< ? > javaClass) {
+    public RiType getRiType(Class<?> javaClass) {
         // TODO Auto-generated method stub
         return null;
     }
@@ -185,9 +183,8 @@
     }
 
     @Override
-    public Object registerTargetMethod(CiTargetMethod targetMethod, String name) {
-        // TODO Auto-generated method stub
-        return null;
+    public Object registerGlobalStub(CiTargetMethod targetMethod, String name) {
+        return HotSpotTargetMethod.installStub(targetMethod, name);
     }
 
     @Override
@@ -209,7 +206,7 @@
     }
 
     @Override
-    public RiMethod getRiMethod(Constructor< ? > javaConstructor) {
+    public RiMethod getRiMethod(Constructor<?> javaConstructor) {
         // TODO Auto-generated method stub
         return null;
     }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotSignature.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,13 +1,33 @@
+/*
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
 package com.sun.hotspot.c1x;
 
-import java.util.ArrayList;
-import java.util.List;
+import java.util.*;
+
+import com.sun.cri.ci.*;
+import com.sun.cri.ri.*;
 
-import com.sun.cri.ci.CiKind;
-import com.sun.cri.ri.RiSignature;
-import com.sun.cri.ri.RiType;
-
-public class HotSpotSignature implements RiSignature {
+/**
+ * Represents a method signature.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
+public class HotSpotSignature implements RiSignature, CompilerObject {
 
     private final List<String> arguments = new ArrayList<String>();
     private final String returnType;
@@ -24,11 +44,6 @@
                 arguments.add(signature.substring(cur, nextCur));
                 cur = nextCur;
             }
-            StringBuilder str = new StringBuilder();
-            for (String param : arguments) {
-                str.append(param).append(", ");
-            }
-            Logger.log("signature " + signature + ": " + str);
 
             cur++;
             int nextCur = parseSignature(signature, cur);
@@ -40,11 +55,12 @@
     }
 
     private int parseSignature(String signature, int cur) {
+        char first;
+        do {
+            first = signature.charAt(cur++);
+        } while(first == '[');
 
-        char first = signature.charAt(cur);
         switch (first) {
-            case '[':
-                return parseSignature(signature, cur + 1);
             case 'L':
                 while (signature.charAt(cur) != ';')
                     cur++;
@@ -59,7 +75,6 @@
             case 'J':
             case 'S':
             case 'Z':
-                cur++;
                 break;
             default:
                 assert false;
@@ -74,9 +89,7 @@
 
     @Override
     public CiKind argumentKindAt(int index) {
-        CiKind kind = CiKind.fromTypeString(arguments.get(index));
-        System.out.println("argument kind: " + index + " is " + kind);
-        return kind;
+        return CiKind.fromTypeString(arguments.get(index));
     }
 
     @Override
@@ -92,9 +105,9 @@
 
     @Override
     public RiType argumentTypeAt(int index, RiType accessingClass) {
-        Class<?> accessor = null;
-        if (accessingClass instanceof HotSpotType) {
-            accessor = ((HotSpotType) accessingClass).klass;
+        long accessor = 0;
+        if (accessingClass instanceof HotSpotTypeResolved) {
+            accessor = (Long) ((HotSpotTypeResolved) accessingClass).getVmId();
         }
         return Compiler.getVMEntries().RiSignature_lookupType(arguments.get(index), accessor);
     }
@@ -111,11 +124,16 @@
 
     @Override
     public RiType returnType(RiType accessingClass) {
-        Class<?> accessor = null;
-        if (accessingClass instanceof HotSpotType) {
-            accessor = ((HotSpotType) accessingClass).klass;
+        long accessor = 0;
+        if (accessingClass instanceof HotSpotTypeResolved) {
+            accessor = (Long) ((HotSpotTypeResolved) accessingClass).getVmId();
         }
         return Compiler.getVMEntries().RiSignature_lookupType(returnType, accessor);
     }
 
+    @Override
+    public String toString() {
+        return "HotSpotSignature<" + originalString + ">";
+    }
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTarget.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x;
+
+import com.sun.cri.ci.*;
+import com.sun.cri.ri.*;
+
+/**
+ * HotSpot-specific CiTarget that provides the correct stack frame size alignment.
+ *
+ * @author Lukas Stadler
+ */
+public class HotSpotTarget extends CiTarget {
+
+    public HotSpotTarget(CiArchitecture arch, RiRegisterConfig registerConfig, boolean isMP, int spillSlotSize, int wordSize, int referenceSize, int stackAlignment, int pageSize, int cacheAlignment,
+                    int heapAlignment, int codeAlignment, boolean inlineObjects) {
+        super(arch, registerConfig, isMP, spillSlotSize, wordSize, referenceSize, stackAlignment, pageSize, cacheAlignment, heapAlignment, codeAlignment, inlineObjects);
+    }
+
+    @Override
+    public int alignFrameSize(int frameSize) {
+        // account for the stored rbp value
+        return super.alignFrameSize(frameSize + wordSize) - wordSize;
+    }
+}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTargetMethod.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTargetMethod.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,88 +1,83 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
 package com.sun.hotspot.c1x;
 
-import java.lang.reflect.*;
 import java.util.*;
 
 import com.sun.cri.ci.*;
-import com.sun.cri.ci.CiTargetMethod.*;
-import com.sun.cri.ri.*;
+import com.sun.cri.ci.CiTargetMethod.Site;
 
-public class HotSpotTargetMethod {
+/**
+ * CiTargetMethod augmented with HotSpot-specific information.
+ *
+ * @author Lukas Stadler
+ */
+public class HotSpotTargetMethod implements CompilerObject {
 
-    public final Method method;
-    private byte[] code;
-    private int codeSize;
-    private int frameSize;
+    public final CiTargetMethod targetMethod;
+    public final HotSpotMethod method;                  // used only for methods
+    public final String name;                           // used only for stubs
 
-    public int verifiedEntrypoint;
-    public int unverifiedEntrypoint;
+    public final Site[] sites;
 
-    public int relocationOffsets[];
-    public Object relocationData[];
+    private HotSpotTargetMethod(HotSpotMethod method, CiTargetMethod targetMethod) {
+        this.method = method;
+        this.targetMethod = targetMethod;
+        this.name = null;
 
-    private HotSpotTargetMethod(HotSpotVMConfig config, RiMethod method, CiTargetMethod targetMethod) {
-        this.method= ((HotSpotMethod) method).method;
-        code = targetMethod.targetCode();
-        codeSize = targetMethod.targetCodeSize();
-        frameSize = targetMethod.frameSize();
-        verifiedEntrypoint = targetMethod.entrypointCodeOffsets.get(HotSpotRuntime.Entrypoints.VERIFIED);
-        unverifiedEntrypoint = targetMethod.entrypointCodeOffsets.get(HotSpotRuntime.Entrypoints.UNVERIFIED);
+        sites = getSortedSites(targetMethod);
+    }
+
+    private HotSpotTargetMethod(CiTargetMethod targetMethod, String name) {
+        this.method = null;
+        this.targetMethod = targetMethod;
+        this.name = name;
+
+        sites = getSortedSites(targetMethod);
+    }
 
-        Map<Integer, Object> relocations = new TreeMap<Integer, Object>();
-        if (!targetMethod.dataReferences.isEmpty()) {
-            for (DataPatch patch : targetMethod.dataReferences) {
-                if (patch.data.kind == CiKind.Object) {
-                    if (patch.data.asObject() instanceof RiType) {
-                        relocations.put(patch.pcOffset, patch.data.asObject());
-                    } else {
-                        throw new RuntimeException("unexpected data reference");
-                    }
-                }
+    private Site[] getSortedSites(CiTargetMethod target) {
+        List<?>[] lists = new List<?>[] {target.directCalls, target.indirectCalls, target.safepoints, target.dataReferences, target.exceptionHandlers, target.marks};
+        int count = 0;
+        for (List<?> list: lists) {
+            count += list.size();
+        }
+        Site[] result = new Site[count];
+        int pos = 0;
+        for (List<?> list: lists) {
+            for (Object elem: list) {
+                result[pos++] = (Site)elem;
             }
         }
-
-        if (!targetMethod.directCalls.isEmpty()) {
-            for (CiTargetMethod.Call call : targetMethod.directCalls) {
-                if (call.globalStubID instanceof Long) {
-                    relocations.put(call.pcOffset, (Long)call.globalStubID);
-                } else if (call.globalStubID instanceof CiRuntimeCall) {
-                    switch ((CiRuntimeCall) call.globalStubID) {
-                        case Debug:
-                            // relocations.put(call.pcOffset, config.debugStub);
-                            System.out.println("debug call");
-                            break;
-                        case UnwindException:
-                        case RegisterFinalizer:
-                        case HandleException:
-                        case OSRMigrationEnd:
-                        case JavaTimeMillis:
-                        case JavaTimeNanos:
-                        case ArithmethicLrem:
-                        case ArithmeticLdiv:
-                        case ArithmeticFrem:
-                        case ArithmeticDrem:
-                        case ArithmeticCos:
-                        case ArithmeticTan:
-                        case ArithmeticLog:
-                        case ArithmeticLog10:
-                        case ArithmeticSin:
-                        default:
-                            throw new RuntimeException("unexpected runtime call: " + call.globalStubID);
-                    }
-                }
+        Arrays.sort(result, new Comparator<Site>() {
+            public int compare(Site s1, Site s2) {
+                return s1.pcOffset - s2.pcOffset;
             }
-        }
-        relocationOffsets = new int[relocations.size()];
-        relocationData = new Object[relocations.size()];
-        int i=0;
-        for( Map.Entry<Integer, Object> entry: relocations.entrySet()) {
-            relocationOffsets[i] = entry.getKey();
-            relocationData[i++] = entry.getValue();
-        }
+        });
+        return result;
     }
 
-    public static void installCode(HotSpotVMConfig config, RiMethod method, CiTargetMethod targetMethod) {
-        Compiler.getVMEntries().installCode(new HotSpotTargetMethod(config, method, targetMethod));
+    public static void installMethod(HotSpotMethod method, CiTargetMethod targetMethod) {
+        Compiler.getVMEntries().installMethod(new HotSpotTargetMethod(method, targetMethod));
+    }
+
+    public static Object installStub(CiTargetMethod targetMethod, String name) {
+        return Compiler.getVMEntries().installStub(new HotSpotTargetMethod(targetMethod, name));
     }
 
 }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotType.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,135 +1,29 @@
-package com.sun.hotspot.c1x;
-
-import com.sun.cri.ci.CiConstant;
-import com.sun.cri.ci.CiKind;
-import com.sun.cri.ri.*;
-
-public class HotSpotType implements RiType {
-
-    // do not query this class object directly, use the VMEntries methods instead!
-    // (otherwise this query won't be recorded correctly)
-    final Class<?> klass;
-
-    public HotSpotType(Class<?> klass) {
-        this.klass = klass;
-        assert klass != null;
-    }
-
-    @Override
-    public int accessFlags() {
-        // TODO Auto-generated method stub
-        return 0;
-    }
-
-    @Override
-    public RiType arrayOf() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public RiType componentType() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public RiType exactType() {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public CiConstant getEncoding(Representation r) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    @Override
-    public CiKind getRepresentationKind(Representation r) {
-        return CiKind.Object;
-    }
-
-    @Override
-    public boolean hasFinalizableSubclass() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean hasFinalizer() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean hasSubclass() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isArrayClass() {
-        System.out.println("Checking for array class " + name());
-        return Compiler.getVMEntries().RiType_isArrayClass(klass);
-    }
-
-    @Override
-    public boolean isInitialized() {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isInstance(Object obj) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public boolean isInstanceClass() {
-        return Compiler.getVMEntries().RiType_isInstanceClass(klass);
-    }
-
-    @Override
-    public boolean isInterface() {
-        return Compiler.getVMEntries().RiType_isInterface(klass);
-    }
-
-    @Override
-    public boolean isResolved() {
-        return true;
-    }
-
-    @Override
-    public boolean isSubtypeOf(RiType other) {
-        // TODO Auto-generated method stub
-        return false;
-    }
-
-    @Override
-    public Class<?> javaClass() {
-        return klass;
-    }
-
-    @Override
-    public CiKind kind() {
-        return CiKind.Object;
-    }
-
-    @Override
-    public String name() {
-        return Compiler.getVMEntries().RiType_name(klass);
-    }
-
-    @Override
-    public RiMethod resolveMethodImpl(RiMethod method) {
-        // TODO Auto-generated method stub
-        return null;
-    }
-
-    public Class<?> klass() {
-        return klass;
-    }
-
-}
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x;
+
+import com.sun.cri.ri.*;
+
+/**
+ * Common interface for all HotSpot RiType-implementations
+ *
+ * @author Lukas Stadler
+ */
+public interface HotSpotType extends RiType, CompilerObject {
+
+}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypePrimitive.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,11 +1,31 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
 package com.sun.hotspot.c1x;
 
-import com.sun.cri.ci.CiConstant;
-import com.sun.cri.ci.CiKind;
-import com.sun.cri.ri.RiMethod;
-import com.sun.cri.ri.RiType;
+import com.sun.cri.ci.*;
+import com.sun.cri.ri.*;
 
-public class HotSpotTypePrimitive implements RiType {
+/**
+ * Implementation of RiType for primitive HotSpot types.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
+public class HotSpotTypePrimitive implements HotSpotType {
 
     private CiKind kind;
 
@@ -110,7 +130,7 @@
     }
 
     @Override
-    public Class< ? > javaClass() {
+    public Class<?> javaClass() {
         return kind.toJavaClass();
     }
 
@@ -129,4 +149,9 @@
         return null;
     }
 
+    @Override
+    public String toString() {
+        return "HotSpotTypePrimitive<" + kind + ">";
+    }
+
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeResolved.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,175 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x;
+
+import com.sun.cri.ci.*;
+import com.sun.cri.ri.*;
+
+/**
+ * Implementation of RiType for resolved non-primitive HotSpot classes.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
+public class HotSpotTypeResolved implements HotSpotType {
+
+    private final long vmId;
+
+    private final String name;
+
+    // cached values
+    private Boolean isArrayClass;
+    private Boolean isInstanceClass;
+    private Boolean isInterface;
+
+    public HotSpotTypeResolved(long vmId, String name) {
+        this.vmId = vmId;
+        this.name = name;
+    }
+
+    @Override
+    public int accessFlags() {
+        // TODO Auto-generated method stub
+        return 0;
+    }
+
+    @Override
+    public RiType arrayOf() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public RiType componentType() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public RiType exactType() {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public CiConstant getEncoding(Representation r) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public CiKind getRepresentationKind(Representation r) {
+        return CiKind.Object;
+    }
+
+    @Override
+    public boolean hasFinalizableSubclass() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean hasFinalizer() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean hasSubclass() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean isArrayClass() {
+        if (isArrayClass == null)
+            isArrayClass = Compiler.getVMEntries().RiType_isArrayClass(vmId);
+        return isArrayClass;
+    }
+
+    @Override
+    public boolean isInitialized() {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean isInstance(Object obj) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public boolean isInstanceClass() {
+        if (isInstanceClass == null)
+            isInstanceClass = Compiler.getVMEntries().RiType_isInstanceClass(vmId);
+        return isInstanceClass;
+    }
+
+    @Override
+    public boolean isInterface() {
+        if (isInterface == null)
+            isInterface = Compiler.getVMEntries().RiType_isInterface(vmId);
+        return isInterface;
+    }
+
+    @Override
+    public boolean isResolved() {
+        return true;
+    }
+
+    @Override
+    public boolean isSubtypeOf(RiType other) {
+        // TODO Auto-generated method stub
+        return false;
+    }
+
+    @Override
+    public Class<?> javaClass() {
+        throw new RuntimeException("javaClass not implemented");
+    }
+
+    @Override
+    public CiKind kind() {
+        return CiKind.Object;
+    }
+
+    @Override
+    public String name() {
+        return name;
+    }
+
+    @Override
+    public RiMethod resolveMethodImpl(RiMethod method) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
+    @Override
+    public String toString() {
+        return "HotSpotType<" + name + ">";
+    }
+
+    public RiConstantPool constantPool() {
+        return Compiler.getVMEntries().RiType_constantPool(vmId);
+    }
+
+    public long getVmId() {
+        return vmId;
+    }
+
+}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotTypeUnresolved.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
  *
  * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
  * described in this document. In particular, and without limitation, these intellectual property rights may include one
@@ -21,93 +21,111 @@
 import com.sun.cri.ri.*;
 
 /**
- * @author Thomas Wuerthinger
+ * Implementation of RiType for unresolved HotSpot classes.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
  */
-public class HotSpotTypeUnresolved implements RiType {
+public class HotSpotTypeUnresolved implements HotSpotType {
 
     public final String name;
+    private final long accessingClassVmId;
 
     /**
      * Creates a new unresolved type for a specified type descriptor.
-     *
-     * @param typeDescriptor the type's descriptor
-     * @param pool the constant pool containing the unresolved type reference
-     * @param cpi the index in {@code constantPool} of the unresolved type reference
      */
-    public HotSpotTypeUnresolved(String name) {
+    public HotSpotTypeUnresolved(String name, long accessingClassVmId) {
         this.name = name;
+        this.accessingClassVmId = accessingClassVmId;
     }
 
+    @Override
     public String name() {
         return name;
     }
 
-    public Class< ? > javaClass() {
+    @Override
+    public Class<?> javaClass() {
         throw unresolved("javaClass");
     }
 
+    @Override
     public boolean hasSubclass() {
         throw unresolved("hasSubclass()");
     }
 
+    @Override
     public boolean hasFinalizer() {
         throw unresolved("hasFinalizer()");
     }
 
+    @Override
     public boolean hasFinalizableSubclass() {
         throw unresolved("hasFinalizableSubclass()");
     }
 
+    @Override
     public boolean isInterface() {
         throw unresolved("isInterface()");
     }
 
+    @Override
     public boolean isArrayClass() {
         throw unresolved("isArrayClass()");
     }
 
+    @Override
     public boolean isInstanceClass() {
         throw unresolved("isInstanceClass()");
     }
 
+    @Override
     public int accessFlags() {
         throw unresolved("accessFlags()");
     }
 
+    @Override
     public boolean isResolved() {
         return false;
     }
 
+    @Override
     public boolean isInitialized() {
         throw unresolved("isInitialized()");
     }
 
+    @Override
     public boolean isSubtypeOf(RiType other) {
         throw unresolved("isSubtypeOf()");
     }
 
+    @Override
     public boolean isInstance(Object obj) {
         throw unresolved("isInstance()");
     }
 
+    @Override
     public RiType componentType() {
         // TODO: Implement
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public RiType exactType() {
         throw unresolved("exactType()");
     }
 
+    @Override
     public RiType arrayOf() {
         // TODO: Implement
         throw new UnsupportedOperationException();
     }
 
+    @Override
     public RiMethod resolveMethodImpl(RiMethod method) {
         throw unresolved("resolveMethodImpl()");
     }
 
+    @Override
     public CiKind kind() {
         // TODO: Check if this is correct.
         return CiKind.Object;
@@ -129,15 +147,18 @@
 
     @Override
     public String toString() {
-        return name() + " [unresolved]";
+        return "HotSpotTypeUnresolved<" + name + ">";
     }
 
+    @Override
     public CiConstant getEncoding(RiType.Representation r) {
         throw unresolved("getEncoding()");
     }
 
+    @Override
     public CiKind getRepresentationKind(RiType.Representation r) {
         // TODO: Check if this is correct.
         return CiKind.Object;
     }
+
 }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotVMConfig.java	Mon Aug 16 18:59:36 2010 -0700
@@ -17,12 +17,14 @@
  */
 package com.sun.hotspot.c1x;
 
+import com.sun.cri.ci.*;
+
 /**
  * Used to communicate configuration details, runtime offsets, etc. to c1x upon compileMethod.
  *
  * @author Lukas Stadler
  */
-public class HotSpotVMConfig {
+public class HotSpotVMConfig implements CompilerObject {
 
     // os information, register layout, code generation, ...
     public boolean windowsOs;
@@ -33,19 +35,45 @@
     public int stackShadowPages;
     public int hubOffset;
     public int arrayLengthOffset;
+    public int[] arrayOffsets;
+    public int arrayClassElementOffset;
 
     // runtime stubs
     public long instanceofStub;
     public long debugStub;
+    public long resolveStaticCallStub;
 
     public void check() {
         assert vmPageSize >= 16;
         assert codeEntryAlignment > 0;
         assert stackShadowPages > 0;
-        assert instanceofStub != 0;
-        assert debugStub != 0;
-        System.out.println("Config::debugStub = " + Long.toHexString(debugStub));
-        System.out.println("Config::instanceofStub = " + Long.toHexString(instanceofStub));
+    }
+
+    public int getArrayOffset(CiKind kind) {
+        return arrayOffsets[getKindNumber(kind)];
+    }
+
+    private int getKindNumber(CiKind kind) {
+        if (kind == CiKind.Boolean)
+            return 0;
+        else if (kind == CiKind.Byte)
+            return 1;
+        else if (kind == CiKind.Short)
+            return 2;
+        else if (kind == CiKind.Char)
+            return 3;
+        else if (kind == CiKind.Int)
+            return 4;
+        else if (kind == CiKind.Float)
+            return 5;
+        else if (kind == CiKind.Long)
+            return 6;
+        else if (kind == CiKind.Double)
+            return 7;
+        else if (kind == CiKind.Object)
+            return 8;
+        else
+            throw new RuntimeException(kind + " is not a Java kind");
     }
 
 }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/HotSpotXirGenerator.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
  *
  * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
  * described in this document. In particular, and without limitation, these intellectual property rights may include one
@@ -17,37 +17,43 @@
  */
 package com.sun.hotspot.c1x;
 
-import java.lang.reflect.Modifier;
-import java.util.ArrayList;
-import java.util.List;
+import java.lang.reflect.*;
+import java.util.*;
 
 import com.sun.c1x.target.amd64.*;
-import com.sun.cri.ci.CiKind;
-import com.sun.cri.ri.RiField;
-import com.sun.cri.ri.RiMethod;
-import com.sun.cri.ri.RiRegisterConfig;
-import com.sun.cri.ri.RiType;
+import com.sun.cri.ci.CiAddress.Scale;
+import com.sun.cri.ci.*;
+import com.sun.cri.ri.*;
 import com.sun.cri.ri.RiType.Representation;
 import com.sun.cri.xir.*;
 import com.sun.cri.xir.CiXirAssembler.*;
 
 /**
  *
- * @author Thomas Wuerthinger
- *
+ * @author Thomas Wuerthinger, Lukas Stadler
  */
-public class HotSpotXirGenerator extends RiXirGenerator {
+public class HotSpotXirGenerator implements RiXirGenerator {
+
+    // this needs to correspond to c1x_Compiler.hpp
+    private static final Integer MARK_VERIFIED_ENTRY = 1;
+    private static final Integer MARK_UNVERIFIED_ENTRY = 2;
+    private static final Integer MARK_STATIC_CALL_STUB = 1000;
 
     private final HotSpotVMConfig config;
-    private CiXirAssembler asm;
+    private final CiTarget target;
     private final RiRegisterConfig registerConfig;
 
+    private CiXirAssembler asm;
+
     private XirTemplate[] emptyTemplates = new XirTemplate[CiKind.values().length];
+    private XirTemplate[] arrayLoadTemplates = new XirTemplate[CiKind.values().length];
+    private XirTemplate[] arrayStoreTemplates = new XirTemplate[CiKind.values().length];
     private XirTemplate prologueTemplate;
     private XirTemplate staticPrologueTemplate;
     private XirTemplate epilogueTemplate;
     private XirTemplate arrayLengthTemplate;
     private XirTemplate exceptionObjectTemplate;
+    private XirTemplate invokeStaticTemplate;
 
     static class XirPair {
 
@@ -60,15 +66,16 @@
         }
     }
 
-    private XirPair[] putFieldTemplates;
-    private XirPair[] getFieldTemplates;
-    private XirPair[] putStaticFieldTemplates;
-    private XirPair[] getStaticFieldTemplates;
+    private XirPair[] putFieldTemplates = new XirPair[CiKind.values().length];
+    private XirPair[] getFieldTemplates = new XirPair[CiKind.values().length];
+    private XirPair[] putStaticFieldTemplates = new XirPair[CiKind.values().length];
+    private XirPair[] getStaticFieldTemplates = new XirPair[CiKind.values().length];
     private XirPair instanceofTemplate;
     private XirPair instanceofTemplateNonnull;
 
-    public HotSpotXirGenerator(HotSpotVMConfig config, RiRegisterConfig registerConfig) {
+    public HotSpotXirGenerator(HotSpotVMConfig config, CiTarget target, RiRegisterConfig registerConfig) {
         this.config = config;
+        this.target = target;
         this.registerConfig = registerConfig;
     }
 
@@ -76,36 +83,27 @@
     public List<XirTemplate> buildTemplates(CiXirAssembler asm) {
         this.asm = asm;
 
-        putFieldTemplates = new XirPair[CiKind.values().length];
-        getFieldTemplates = new XirPair[CiKind.values().length];
-        putStaticFieldTemplates = new XirPair[CiKind.values().length];
-        getStaticFieldTemplates = new XirPair[CiKind.values().length];
-
         List<XirTemplate> templates = new ArrayList<XirTemplate>();
-        for (int index = 0; index < CiKind.values().length; index++) {
+        for (CiKind kind : CiKind.JAVA_VALUES) {
+            int index = kind.ordinal();
 
-            CiKind kind = CiKind.values()[index];
-
-            if (kind == CiKind.Float || kind == CiKind.Double)
-                continue;
-
-            if (CiKind.values()[index] == CiKind.Void) {
+            if (kind == CiKind.Void) {
                 asm.restart(CiKind.values()[index]);
-                emptyTemplates[index] = asm.finishTemplate("empty-" + CiKind.values()[index]);
+                emptyTemplates[index] = asm.finishTemplate("empty-" + kind);
             } else {
                 asm.restart();
-                XirOperand result = asm.createTemp("result", CiKind.values()[index]);
-                emptyTemplates[index] = asm.finishTemplate(result, "empty-" + CiKind.values()[index]);
+                XirOperand result = asm.createTemp("result", kind);
+                emptyTemplates[index] = asm.finishTemplate(result, "empty-" + kind);
 
                 putFieldTemplates[index] = buildPutFieldTemplate(kind, kind == CiKind.Object, false);
                 getFieldTemplates[index] = buildGetFieldTemplate(kind, false);
                 putStaticFieldTemplates[index] = buildPutFieldTemplate(kind, kind == CiKind.Object, true);
                 getStaticFieldTemplates[index] = buildGetFieldTemplate(kind, true);
-// arrayLoadTemplates[index] = buildArrayLoad(kind, asm, true);
-// arrayStoreTemplates[index] = buildArrayStore(kind, asm, true, kind == CiKind.Object, kind == CiKind.Object);
-// newArrayTemplates[index] = buildNewArray(kind);
+                arrayLoadTemplates[index] = buildArrayLoad(kind, asm, true);
+                arrayStoreTemplates[index] = buildArrayStore(kind, asm, true, kind == CiKind.Object, kind == CiKind.Object);
+                // newArrayTemplates[index] = buildNewArray(kind);
             }
-            templates.add(emptyTemplates[index]);
+            // templates.add(emptyTemplates[index]);
         }
         prologueTemplate = buildPrologue(false);
         staticPrologueTemplate = buildPrologue(true);
@@ -114,6 +112,7 @@
         exceptionObjectTemplate = buildExceptionObject();
         instanceofTemplate = buildInstanceof(false);
         instanceofTemplateNonnull = buildInstanceof(true);
+        invokeStaticTemplate = buildInvokeStatic();
 
         return templates;
     }
@@ -124,7 +123,7 @@
         XirOperand temp = asm.createRegister("temp (rax)", CiKind.Int, AMD64.rax);
 
         asm.align(config.codeEntryAlignment);
-        asm.entrypoint(HotSpotRuntime.Entrypoints.UNVERIFIED);
+        asm.mark(MARK_UNVERIFIED_ENTRY);
         if (!staticMethod) {
             // TODO do some checking...
             asm.add(temp, temp, asm.i(1));
@@ -133,7 +132,7 @@
 
             asm.align(config.codeEntryAlignment);
         }
-        asm.entrypoint(HotSpotRuntime.Entrypoints.VERIFIED);
+        asm.mark(MARK_VERIFIED_ENTRY);
         // stack banging
         asm.pstore(CiKind.Word, sp, asm.i(-config.stackShadowPages * config.vmPageSize), temp, true);
         asm.pushFrame();
@@ -175,13 +174,16 @@
         if (isStatic) {
             asm.restart(kind);
             asm.shouldNotReachHere();
-            /*
-             * XirParameter object = asm.createInputParameter("object", CiKind.Object); XirParameter guard =
-             * asm.createInputParameter("guard", CiKind.Object); XirOperand fieldOffset = asm.createTemp("fieldOffset",
-             * CiKind.Int); if (isStatic) { callRuntimeThroughStub(asm, "resolveGetStatic", fieldOffset, guard); } else
-             * { callRuntimeThroughStub(asm, "resolveGetField", fieldOffset, guard); } asm.pload(kind, result, object,
-             * fieldOffset, true);
-             */
+
+// XirParameter object = asm.createInputParameter("object", CiKind.Object);
+// XirParameter guard = asm.createInputParameter("guard", CiKind.Object);
+// XirOperand fieldOffset = asm.createTemp("fieldOffset", CiKind.Int);
+// if (isStatic) {
+// callRuntimeThroughStub(asm, "resolveGetStatic", fieldOffset, guard);
+// } else {
+// callRuntimeThroughStub(asm, "resolveGetField", fieldOffset, guard);
+// }
+// asm.pload(kind, result, object, fieldOffset, true);
 
             unresolved = asm.finishTemplate("getfield<" + kind + ">-unresolved");
         } else {
@@ -210,14 +212,21 @@
             // unresolved case
             asm.restart(CiKind.Void);
             asm.shouldNotReachHere();
-            /*
-             * XirParameter object = asm.createInputParameter("object", CiKind.Object); XirParameter value =
-             * asm.createInputParameter("value", kind); XirParameter guard = asm.createInputParameter("guard",
-             * CiKind.Object); XirOperand fieldOffset = asm.createTemp("fieldOffset", CiKind.Int); if (isStatic) {
-             * callRuntimeThroughStub(asm, "resolvePutStatic", fieldOffset, guard); } else { callRuntimeThroughStub(asm,
-             * "resolvePutField", fieldOffset, guard); } asm.pstore(kind, object, fieldOffset, value, true); if
-             * (genWriteBarrier) { addWriteBarrier(asm, object, value); }
-             */
+
+//            XirParameter object = asm.createInputParameter("object", CiKind.Object);
+//            XirParameter value = asm.createInputParameter("value", kind);
+//            XirParameter guard = asm.createInputParameter("guard", CiKind.Object);
+//            XirOperand fieldOffset = asm.createTemp("fieldOffset", CiKind.Int);
+//            if (isStatic) {
+//                callRuntimeThroughStub(asm, "resolvePutStatic", fieldOffset, guard);
+//            } else {
+//                callRuntimeThroughStub(asm, "resolvePutField", fieldOffset, guard);
+//            }
+//            asm.pstore(kind, object, fieldOffset, value, true);
+//            if (genWriteBarrier) {
+//                addWriteBarrier(asm, object, value);
+//            }
+
             unresolved = asm.finishTemplate("putfield<" + kind + ", " + genWriteBarrier + ">-unresolved");
         } else {
             unresolved = null;
@@ -262,12 +271,105 @@
           */
             asm.restart(CiKind.Boolean);
             XirParameter object = asm.createInputParameter("object", CiKind.Object);
+            System.out.println(object);
             asm.shouldNotReachHere();
             unresolved = asm.finishTemplate("instanceof-leaf<" + nonnull + ">");
         }
         return new XirPair(resolved, unresolved);
     }
 
+    private XirTemplate buildArrayStore(CiKind kind, CiXirAssembler asm, boolean genBoundsCheck, boolean genStoreCheck, boolean genWriteBarrier) {
+        asm.restart(CiKind.Void);
+        XirParameter array = asm.createInputParameter("array", CiKind.Object);
+        XirParameter index = asm.createInputParameter("index", CiKind.Int);
+        XirParameter value = asm.createInputParameter("value", kind);
+        XirOperand length = asm.createTemp("length", CiKind.Int);
+        XirOperand temp = asm.createTemp("temp", CiKind.Word);
+        XirOperand valueHub = null;
+        XirOperand compHub = null;
+        XirLabel store = asm.createInlineLabel("store");
+        XirLabel failBoundsCheck = null;
+        XirLabel slowStoreCheck = null;
+        if (genBoundsCheck) {
+            // load the array length and check the index
+            failBoundsCheck = asm.createOutOfLineLabel("failBoundsCheck");
+            asm.pload(CiKind.Int, length, array, asm.i(config.arrayLengthOffset), true);
+            asm.jugteq(failBoundsCheck, index, length);
+        }
+        if (genStoreCheck) {
+            slowStoreCheck = asm.createOutOfLineLabel("slowStoreCheck");
+            asm.jeq(store, value, asm.o(null)); // first check if value is null
+            valueHub = asm.createTemp("valueHub", CiKind.Object);
+            compHub = asm.createTemp("compHub", CiKind.Object);
+            asm.pload(CiKind.Object, compHub, array, asm.i(config.hubOffset), !genBoundsCheck);
+            asm.pload(CiKind.Object, compHub, compHub, asm.i(config.arrayClassElementOffset), false);
+            asm.pload(CiKind.Object, valueHub, value, asm.i(config.hubOffset), false);
+            asm.jneq(slowStoreCheck, compHub, valueHub); // then check component hub matches value hub
+        }
+        asm.bindInline(store);
+        int elemSize = target.sizeInBytes(kind);
+        asm.pstore(kind, array, index, value, config.getArrayOffset(kind), Scale.fromInt(elemSize), !genBoundsCheck && !genStoreCheck);
+        if (genWriteBarrier) {
+            // addWriteBarrier(asm, array, value);
+        }
+        if (genBoundsCheck) {
+            asm.bindOutOfLine(failBoundsCheck);
+            asm.shouldNotReachHere();
+            // callRuntimeThroughStub(asm, "throwArrayIndexOutOfBoundsException", null, array, index);
+        }
+        if (genStoreCheck) {
+            asm.bindOutOfLine(slowStoreCheck);
+            asm.push(valueHub);
+            asm.push(compHub);
+            asm.callRuntime(config.instanceofStub, null);
+            asm.pop(temp);
+            asm.pop(temp);
+            asm.jneq(store, temp, asm.w(0));
+            asm.shouldNotReachHere();
+            asm.jmp(store);
+        }
+        return asm.finishTemplate("arraystore<" + kind + ">");
+    }
+
+    private XirTemplate buildArrayLoad(CiKind kind, CiXirAssembler asm, boolean genBoundsCheck) {
+        XirOperand result = asm.restart(kind);
+        XirParameter array = asm.createInputParameter("array", CiKind.Object);
+        XirParameter index = asm.createInputParameter("index", CiKind.Int);
+        XirOperand length = asm.createTemp("length", CiKind.Int);
+        XirLabel fail = null;
+        if (genBoundsCheck) {
+            // load the array length and check the index
+            fail = asm.createOutOfLineLabel("fail");
+            asm.pload(CiKind.Int, length, array, asm.i(config.arrayLengthOffset), true);
+            asm.jugteq(fail, index, length);
+        }
+        int elemSize = target.sizeInBytes(kind);
+        asm.pload(kind, result, array, index, config.getArrayOffset(kind), Scale.fromInt(elemSize), !genBoundsCheck);
+        if (genBoundsCheck) {
+            asm.bindOutOfLine(fail);
+            asm.shouldNotReachHere();
+            // callRuntimeThroughStub(asm, "throwArrayIndexOutOfBoundsException", null, array, index);
+        }
+        return asm.finishTemplate("arrayload<" + kind + ">");
+    }
+
+    private XirTemplate buildInvokeStatic() {
+        asm.restart();
+        XirParameter addr = asm.createConstantInputParameter("addr", CiKind.Word);
+
+        XirLabel stub = asm.createOutOfLineLabel("staticCallStub");
+
+        asm.bindOutOfLine(stub);
+        XirOperand method = asm.createRegister("method", CiKind.Word, AMD64.rbx);
+        asm.mark(MARK_STATIC_CALL_STUB, XirMark.CALLSITE);
+        asm.mov(method, asm.w(0l));
+        XirLabel dummy = asm.createOutOfLineLabel("dummy");
+        asm.jmp(dummy);
+        asm.bindOutOfLine(dummy);
+
+        return asm.finishTemplate(addr, "invokestatic");
+    }
+
     @Override
     public XirSnippet genArrayLength(XirSite site, XirArgument array) {
         return new XirSnippet(arrayLengthTemplate, array);
@@ -275,12 +377,14 @@
 
     @Override
     public XirSnippet genArrayLoad(XirSite site, XirArgument array, XirArgument index, XirArgument length, CiKind elementKind, RiType elementType) {
-        return new XirSnippet(emptyTemplates[elementKind.ordinal()]);
+        // TODO: emit different template if length is present
+        return new XirSnippet(arrayLoadTemplates[elementKind.ordinal()], array, index);
     }
 
     @Override
     public XirSnippet genArrayStore(XirSite site, XirArgument array, XirArgument index, XirArgument length, XirArgument value, CiKind elementKind, RiType elementType) {
-        return new XirSnippet(emptyTemplates[CiKind.Void.ordinal()]);
+        // TODO: emit different template if length is present
+        return new XirSnippet(arrayStoreTemplates[elementKind.ordinal()], array, index, value);
     }
 
     @Override
@@ -361,7 +465,7 @@
 
     @Override
     public XirSnippet genInvokeStatic(XirSite site, RiMethod method) {
-        return new XirSnippet(emptyTemplates[CiKind.Word.ordinal()]);
+        return new XirSnippet(invokeStaticTemplate, XirArgument.forWord(0));
     }
 
     @Override
@@ -396,10 +500,8 @@
 
     @Override
     public XirSnippet genResolveClass(XirSite site, RiType type, Representation representation) {
-        System.out.println("genResolveClass " + type + ", " + representation);
         XirOperand result = asm.restart(CiKind.Object);
         if (type.isResolved()) {
-            System.out.println("resolved");
             asm.mov(result, asm.o(type));
             return new XirSnippet(asm.finishTemplate("resolve class"));
         }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/InvocationSocket.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x;
+
+import java.io.*;
+import java.lang.reflect.*;
+
+import com.sun.hotspot.c1x.logging.*;
+
+/**
+ * A java.lang.reflect proxy that communicates over a socket connection.
+ *
+ * Calling a method sends the method name and the parameters through the socket. Afterwards this class waits for a result.
+ * While waiting for a result three types of objects can arrive through the socket: a method invocation, a method result or an exception.
+ * Method invocation can thus be recursive.
+ *
+ * @author Lukas Stadler
+ */
+public class InvocationSocket implements InvocationHandler {
+
+    private final ObjectOutputStream output;
+    private final ObjectInputStream input;
+    private Object delegate;
+
+    public InvocationSocket(ObjectOutputStream output, ObjectInputStream input) {
+        this.output = output;
+        this.input = input;
+    }
+
+    public void setDelegate(Object delegate) {
+        this.delegate = delegate;
+    }
+
+    private static class Invocation implements Serializable {
+
+        public String methodName;
+        public Object[] args;
+
+        public Invocation(String methodName, Object[] args) {
+            this.methodName = methodName;
+            this.args = args;
+        }
+    }
+
+    private static class Result implements Serializable {
+
+        public Object result;
+
+        public Result(Object result) {
+            this.result = result;
+        }
+    }
+
+    @Override
+    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+        try {
+            Logger.startScope("invoking remote " + method.getName());
+            output.writeObject(new Invocation(method.getName(), args));
+            output.flush();
+            return waitForResult();
+        } catch (Throwable t) {
+            t.printStackTrace();
+            throw t;
+        } finally {
+            Logger.endScope("");
+        }
+    }
+
+    public Object waitForResult() throws IOException, ClassNotFoundException {
+        while (true) {
+            Object in = input.readObject();
+            if (in instanceof Result)
+                return ((Result) in).result;
+            if (in instanceof RuntimeException)
+                throw (RuntimeException) in;
+            if (in instanceof Throwable)
+                throw new RuntimeException((Throwable) in);
+
+            Invocation invoke = (Invocation) in;
+            Method method = null;
+            for (Method m : delegate.getClass().getDeclaredMethods()) {
+                if (invoke.methodName.equals(m.getName())) {
+                    method = m;
+                    break;
+                }
+            }
+            if (method == null) {
+                Exception e = new UnsupportedOperationException("unknown method " + invoke.methodName);
+                e.printStackTrace();
+                output.writeObject(e);
+                output.flush();
+            } else {
+                Object result;
+                try {
+                    Logger.startScope("invoking local " + invoke.methodName);
+                    if (invoke.args == null) {
+                        result = method.invoke(delegate);
+                    } else {
+                        result = method.invoke(delegate, invoke.args);
+                    }
+                    result = new Result(result);
+                } catch (IllegalArgumentException e) {
+                    System.out.println("error while invoking " + invoke.methodName);
+                    e.getCause().printStackTrace();
+                    result = e.getCause();
+                } catch (InvocationTargetException e) {
+                    System.out.println("error while invoking " + invoke.methodName);
+                    e.getCause().printStackTrace();
+                    result = e.getCause();
+                } catch (IllegalAccessException e) {
+                    System.out.println("error while invoking " + invoke.methodName);
+                    e.getCause().printStackTrace();
+                    result = e.getCause();
+                } finally {
+                    Logger.endScope("");
+                }
+                output.writeObject(result);
+                output.flush();
+            }
+        }
+    }
+
+}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/Logger.java	Mon Aug 02 15:44:38 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-package com.sun.hotspot.c1x;
-
-import java.lang.reflect.*;
-import java.util.*;
-
-public class Logger {
-
-    private static final boolean ENABLED = true;
-    private static final int SPACING = 2;
-    private static Deque<Boolean> openStack = new LinkedList<Boolean>();
-    private static boolean open = false;
-    private static int level = 0;
-
-    public static void log(String message) {
-        if (ENABLED) {
-            if (open) {
-                System.out.println("...");
-                open = false;
-            }
-            System.out.print(space(level));
-            System.out.println(message);
-        }
-    }
-
-    public static void startScope(String message) {
-        if (ENABLED) {
-            if (open) {
-                System.out.println("...");
-                open = false;
-            }
-            System.out.print(space(level));
-            System.out.print(message);
-            openStack.push(open);
-            open = true;
-            level++;
-        }
-    }
-
-    public static void endScope(String message) {
-        if (ENABLED) {
-            level--;
-            if (open)
-                System.out.println(message);
-            else
-                System.out.println(space(level) + "..." + message);
-            open = openStack.pop();
-        }
-    }
-
-    private static String[] spaces = new String[50];
-
-    private static String space(int count) {
-        assert count >= 0;
-        String result;
-        if (count >= spaces.length || spaces[count] == null) {
-            StringBuilder str = new StringBuilder();
-            for (int i = 0; i < count * SPACING; i++)
-                str.append(' ');
-            result = str.toString();
-            if (count < spaces.length)
-                spaces[count] = result;
-        } else {
-            result = spaces[count];
-        }
-        return result;
-    }
-
-    public static String pretty(Object value) {
-        if (value instanceof Method) {
-            return "method \"" + ((Method) value).getName() + "\"";
-        } else if (value instanceof Class<?>) {
-            return "class \"" + ((Class<?>) value).getSimpleName() + "\"";
-        } else if (value instanceof Void) {
-            return "void";
-        } else if (value instanceof Integer) {
-            if ((Integer) value < 10)
-                return value.toString();
-            return value + " (0x" + Integer.toHexString((Integer) value) + ")";
-        } else if (value instanceof Long) {
-            if ((Long) value < 10)
-                return value + "l";
-            return value + "l (0x" + Long.toHexString((Long) value) + "l)";
-        }
-        return value == null ? "null" : value.toString();
-    }
-}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/LoggingProxy.java	Mon Aug 02 15:44:38 2010 -0700
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-package com.sun.hotspot.c1x;
-
-import java.lang.reflect.*;
-
-public class LoggingProxy<T> implements InvocationHandler {
-
-    private T delegate;
-
-    public LoggingProxy(T delegate) {
-        this.delegate = delegate;
-    }
-
-    @Override
-    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
-        int argCount = args == null ? 0 : args.length;
-        if (method.getParameterTypes().length != argCount)
-            throw new RuntimeException("wrong parameter count");
-        StringBuilder str = new StringBuilder();
-        str.append(method.getReturnType().getSimpleName() + " " + method.getDeclaringClass().getSimpleName() + "." + method.getName() + "(");
-        for (int i = 0; i < argCount; i++) {
-            str.append(i == 0 ? "" : ", ");
-            str.append(Logger.pretty(args[i]));
-        }
-        str.append(")");
-        Logger.startScope(str.toString());
-        final Object result;
-        if (args == null) {
-            result = method.invoke(delegate);
-        } else {
-            result = method.invoke(delegate, args);
-        }
-        Logger.endScope(" = " + Logger.pretty(result));
-        return result;
-    }
-
-    public static <T> T getProxy(Class<T> interf, T delegate) {
-        Object obj = Proxy.newProxyInstance(interf.getClassLoader(), new Class[] { interf}, new LoggingProxy<T>(delegate));
-        return interf.cast(obj);
-    }
-}
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntries.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,47 +1,69 @@
+/*
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+
 package com.sun.hotspot.c1x;
 
-import java.lang.reflect.*;
-
+import com.sun.cri.ci.*;
 import com.sun.cri.ri.*;
 
+/**
+ * Entries into the HotSpot VM from Java code.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
 public interface VMEntries {
 
-    public abstract byte[] RiMethod_code(Method methodOop);
+    public byte[] RiMethod_code(long vmId);
 
-    public abstract int RiMethod_maxStackSize(Method methodOop);
+    public int RiMethod_maxStackSize(long vmId);
 
-    public abstract int RiMethod_maxLocals(Method methodOop);
+    public int RiMethod_maxLocals(long vmId);
 
-    public abstract RiType RiMethod_holder(Method methodOop);
+    public RiType RiMethod_holder(long vmId);
 
-    public abstract String RiMethod_signature(Method methodOop);
+    public String RiMethod_signature(long vmId);
 
-    public abstract String RiMethod_name(Method methodOop);
+    public int RiMethod_accessFlags(long vmId);
 
-    public abstract int RiMethod_accessFlags(Method methodOop);
+    public RiType RiSignature_lookupType(String returnType, long accessingClassVmId);
 
-    public abstract RiType RiSignature_lookupType(String returnType, Class<?> accessingClass);
+    public CiConstant RiConstantPool_lookupConstant(long vmId, int cpi);
 
-    public abstract Object RiConstantPool_lookupConstant(Class<?> constantPoolHolder, int cpi);
+    public RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode);
 
-    public abstract RiMethod RiConstantPool_lookupMethod(Class<?> constantPoolHolder, int cpi, byte byteCode);
+    public RiSignature RiConstantPool_lookupSignature(long vmId, int cpi);
 
-    public abstract RiSignature RiConstantPool_lookupSignature(Class<?> constantPoolHolder, int cpi);
+    public RiType RiConstantPool_lookupType(long vmId, int cpi);
 
-    public abstract RiType RiConstantPool_lookupType(Class<?> constantPoolHolder, int cpi);
+    public RiField RiConstantPool_lookupField(long vmId, int cpi);
 
-    public abstract RiField RiConstantPool_lookupField(Class<?> constantPoolHolder, int cpi);
+    public boolean RiType_isArrayClass(long vmId);
 
-    public abstract String RiType_name(Class<?> klassOop);
+    public boolean RiType_isInstanceClass(long vmId);
 
-    public abstract boolean RiType_isArrayClass(Class<?> klassOop);
+    public boolean RiType_isInterface(long vmId);
 
-    public abstract boolean RiType_isInstanceClass(Class<?> klassOop);
+    public RiConstantPool RiType_constantPool(long vmId);
 
-    public abstract boolean RiType_isInterface(Class<?> klassOop);
+    public void installMethod(HotSpotTargetMethod targetMethod);
 
-    public abstract void installCode(HotSpotTargetMethod targetMethod);
+    public long installStub(HotSpotTargetMethod targetMethod);
 
-    public abstract HotSpotVMConfig getConfiguration();
+    public HotSpotVMConfig getConfiguration();
 
 }
\ No newline at end of file
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntriesNative.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMEntriesNative.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,65 +1,88 @@
+/*
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+
 package com.sun.hotspot.c1x;
 
-import java.lang.reflect.*;
-
+import com.sun.cri.ci.*;
 import com.sun.cri.ri.*;
 
+/**
+ * Entries into the HotSpot VM from Java code.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
 public class VMEntriesNative implements VMEntries {
 
     @Override
-    public native byte[] RiMethod_code(Method methodOop);
+    public native byte[] RiMethod_code(long vmId);
 
     @Override
-    public native int RiMethod_maxStackSize(Method methodOop);
+    public native int RiMethod_maxStackSize(long vmId);
 
     @Override
-    public native int RiMethod_maxLocals(Method methodOop);
+    public native int RiMethod_maxLocals(long vmId);
 
     @Override
-    public native RiType RiMethod_holder(Method methodOop);
+    public native RiType RiMethod_holder(long vmId);
 
     @Override
-    public native String RiMethod_signature(Method methodOop);
+    public native String RiMethod_signature(long vmId);
 
     @Override
-    public native String RiMethod_name(Method methodOop);
+    public native int RiMethod_accessFlags(long vmId);
 
     @Override
-    public native int RiMethod_accessFlags(Method methodOop);
+    public native RiType RiSignature_lookupType(String returnType, long accessingClassVmId);
 
     @Override
-    public native RiType RiSignature_lookupType(String returnType, Class<?> accessingClass);
+    public native CiConstant RiConstantPool_lookupConstant(long vmId, int cpi);
 
     @Override
-    public native Object RiConstantPool_lookupConstant(Class<?> constantPoolOop, int cpi);
+    public native RiMethod RiConstantPool_lookupMethod(long vmId, int cpi, byte byteCode);
 
     @Override
-    public native RiMethod RiConstantPool_lookupMethod(Class<?> constantPoolOop, int cpi, byte byteCode);
+    public native RiSignature RiConstantPool_lookupSignature(long vmId, int cpi);
 
     @Override
-    public native RiSignature RiConstantPool_lookupSignature(Class<?> constantPoolOop, int cpi);
+    public native RiType RiConstantPool_lookupType(long vmId, int cpi);
 
     @Override
-    public native RiType RiConstantPool_lookupType(Class<?> constantPoolOop, int cpi);
+    public native RiField RiConstantPool_lookupField(long vmId, int cpi);
 
     @Override
-    public native RiField RiConstantPool_lookupField(Class<?> constantPoolOop, int cpi);
+    public native boolean RiType_isArrayClass(long vmId);
 
     @Override
-    public native String RiType_name(Class<?> klassOop);
+    public native boolean RiType_isInstanceClass(long vmId);
 
     @Override
-    public native boolean RiType_isArrayClass(Class<?> klassOop);
+    public native boolean RiType_isInterface(long vmId);
 
     @Override
-    public native boolean RiType_isInstanceClass(Class<?> klassOop);
+    public native RiConstantPool RiType_constantPool(long vmId);
 
     @Override
-    public native boolean RiType_isInterface(Class<?> klassOop);
+    public native void installMethod(HotSpotTargetMethod targetMethod);
 
     @Override
-    public native void installCode(HotSpotTargetMethod targetMethod);
+    public native long installStub(HotSpotTargetMethod targetMethod);
 
     @Override
     public native HotSpotVMConfig getConfiguration();
+
 }
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExits.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExits.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,27 +1,48 @@
-package com.sun.hotspot.c1x;
+/*
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
 
-import java.lang.reflect.*;
+package com.sun.hotspot.c1x;
 
 import com.sun.cri.ci.*;
 import com.sun.cri.ri.*;
 
+/**
+ * Exits from the HotSpot VM into Java code.
+ *
+ * @author Thomas Wuerthinger, Lukas Stadler
+ */
 public interface VMExits {
 
-    public abstract void compileMethod(Method method, int entry_bci);
+    public abstract void compileMethod(long methodVmId, String name, int entry_bci);
 
-    public abstract RiMethod createRiMethod(Method methodOop);
+    public abstract RiMethod createRiMethod(long vmId, String name);
 
     public abstract RiSignature createRiSignature(String signature);
 
     public abstract RiField createRiField(RiType holder, String name, RiType type, int offset);
 
-    public abstract RiType createRiType(Class<?> klassOop);
+    public abstract RiType createRiType(long vmId, String name);
 
     public abstract RiType createRiTypePrimitive(int basicType);
 
-    public abstract RiType createRiTypeUnresolved(String name, Class<?> accessingKlassOop);
+    public abstract RiType createRiTypeUnresolved(String name, long accessingClassVmId);
 
-    public abstract RiConstantPool createRiConstantPool(Class<?> constantPoolOop);
+    public abstract RiConstantPool createRiConstantPool(long vmId);
 
     public abstract CiConstant createCiConstantInt(int value);
 
@@ -31,6 +52,6 @@
 
     public abstract CiConstant createCiConstantDouble(double value);
 
-    public abstract CiConstant createCiConstantObject(Object value);
+    public abstract CiConstant createCiConstantObject(long vmId);
 
 }
\ No newline at end of file
--- a/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java	Mon Aug 02 15:44:38 2010 -0700
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/VMExitsNative.java	Mon Aug 16 18:59:36 2010 -0700
@@ -1,5 +1,5 @@
 /*
- * Copyright (c) 2009 Sun Microsystems, Inc. All rights reserved.
+ * Copyright (c) 2009-2010 Sun Microsystems, Inc. All rights reserved.
  *
  * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
  * described in this document. In particular, and without limitation, these intellectual property rights may include one
@@ -18,10 +18,11 @@
 
 package com.sun.hotspot.c1x;
 
-import java.lang.reflect.*;
+import java.io.*;
 
 import com.sun.cri.ci.*;
 import com.sun.cri.ri.*;
+import com.sun.hotspot.c1x.logging.*;
 
 /**
  * Exits from the HotSpot VM into Java code.
@@ -31,32 +32,31 @@
 public class VMExitsNative implements VMExits {
 
     @Override
-    public void compileMethod(Method method, int entry_bci) {
+    public void compileMethod(long methodVmId, String name, int entry_bci) {
         try {
+            Logger.info("compiling " + name + " (" + methodVmId + ")");
             Compiler compiler = Compiler.getInstance();
-            HotSpotMethod riMethod = new HotSpotMethod(method);
+            HotSpotMethod riMethod = new HotSpotMethod(methodVmId, name);
             CiResult result = compiler.getCompiler().compileMethod(riMethod, null);
 
             if (result.bailout() != null) {
-                System.out.println("Bailout:");
-                result.bailout().printStackTrace();
+                StringWriter out = new StringWriter();
+                result.bailout().printStackTrace(new PrintWriter(out));
+                Logger.info("Bailout:\n" + out.toString());
             } else {
                 Logger.log("Compilation result: " + result.targetMethod());
-                HotSpotTargetMethod.installCode(compiler.getConfig(), riMethod, result.targetMethod());
+                HotSpotTargetMethod.installMethod(riMethod, result.targetMethod());
             }
         } catch (Throwable t) {
-            System.out.println("Compilation interrupted:");
-            t.printStackTrace();
-            if (t instanceof RuntimeException) {
-                throw (RuntimeException) t;
-            }
-            throw new RuntimeException(t);
+            StringWriter out = new StringWriter();
+            t.printStackTrace(new PrintWriter(out));
+            Logger.info("Compilation interrupted:\n" + out.toString());
         }
     }
 
     @Override
-    public RiMethod createRiMethod(Method method) {
-        RiMethod m = new HotSpotMethod(method);
+    public RiMethod createRiMethod(long vmId, String name) {
+        RiMethod m = new HotSpotMethod(vmId, name);
         return m;
     }
 
@@ -71,8 +71,8 @@
     }
 
     @Override
-    public RiType createRiType(Class<?> klassOop) {
-        return new HotSpotType(klassOop);
+    public RiType createRiType(long vmId, String name) {
+        return new HotSpotTypeResolved(vmId, name);
     }
 
     @Override
@@ -113,13 +113,13 @@
     }
 
     @Override
-    public RiType createRiTypeUnresolved(String name, Class<?> accessingKlassOop) {
-        return new HotSpotTypeUnresolved(name);
+    public RiType createRiTypeUnresolved(String name, long accessingClassVmId) {
+        return new HotSpotTypeUnresolved(name, accessingClassVmId);
     }
 
     @Override
-    public RiConstantPool createRiConstantPool(Class<?> constantPoolOop) {
-        return new HotSpotConstantPool(constantPoolOop);
+    public RiConstantPool createRiConstantPool(long vmId) {
+        return new HotSpotConstantPool(vmId);
     }
 
     @Override
@@ -143,7 +143,7 @@
     }
 
     @Override
-    public CiConstant createCiConstantObject(Object value) {
-        return CiConstant.forObject(value);
+    public CiConstant createCiConstantObject(long vmId) {
+        return CiConstant.forObject(vmId);
     }
 }
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/Logger.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,150 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x.logging;
+
+import java.io.*;
+import java.lang.reflect.*;
+import java.util.*;
+/**
+ * Scoped logging class used to display the call hierarchy of VMEntries/VMExits calls
+ *
+ * @author Lukas Stadler
+ */
+public class Logger {
+
+    private static final boolean ENABLED = true;
+    private static final int SPACING = 4;
+    private static Deque<Boolean> openStack = new LinkedList<Boolean>();
+    private static boolean open = false;
+    private static int level = 0;
+
+    private final static PrintStream out;
+
+    static {
+        PrintStream ps;
+        try {
+            ps = new PrintStream(new FileOutputStream("output.txt"));
+        } catch (FileNotFoundException e) {
+            e.printStackTrace();
+            ps = null;
+        }
+        out = ps;
+        out.println("start: " + new Date());
+    }
+
+    public static void info(String message) {
+        log(message);
+        out.println(message);
+        out.flush();
+    }
+
+    public static void log(String message) {
+        if (ENABLED) {
+            for (String line : message.split("\n")) {
+                if (open) {
+                    System.out.println("...");
+                    open = false;
+                }
+                System.out.print(space(level));
+                System.out.println(line);
+            }
+        }
+    }
+
+    public static void startScope(String message) {
+        if (ENABLED) {
+            if (open) {
+                System.out.println("...");
+                open = false;
+            }
+            System.out.print(space(level));
+            System.out.print(message);
+            openStack.push(open);
+            open = true;
+            level++;
+        }
+    }
+
+    public static void endScope(String message) {
+        if (ENABLED) {
+            level--;
+            if (open)
+                System.out.println(message);
+            else
+                System.out.println(space(level) + "..." + message);
+            open = openStack.pop();
+        }
+    }
+
+    private static String[] spaces = new String[50];
+
+    private static String space(int count) {
+        assert count >= 0;
+        String result;
+        if (count >= spaces.length || spaces[count] == null) {
+            StringBuilder str = new StringBuilder();
+            for (int i = 0; i < count * SPACING; i++)
+                str.append(' ');
+            result = str.toString();
+            if (count < spaces.length)
+                spaces[count] = result;
+        } else {
+            result = spaces[count];
+        }
+        return result;
+    }
+
+    public static String pretty(Object value) {
+        if (value == null) {
+            return "null";
+        }
+
+        Class<?> klass = value.getClass();
+        if (value instanceof Void) {
+            return "void";
+        } else if (value instanceof String) {
+            return "\"" + value + "\"";
+        } else if (value instanceof Method) {
+            return "method \"" + ((Method) value).getName() + "\"";
+        } else if (value instanceof Class<?>) {
+            return "class \"" + ((Class<?>) value).getSimpleName() + "\"";
+        } else if (value instanceof Integer) {
+            if ((Integer) value < 10)
+                return value.toString();
+            return value + " (0x" + Integer.toHexString((Integer) value) + ")";
+        } else if (value instanceof Long) {
+            if ((Long) value < 10)
+                return value + "l";
+            return value + "l (0x" + Long.toHexString((Long) value) + "l)";
+        } else if (klass.isArray()) {
+            StringBuilder str = new StringBuilder();
+            int dimensions = 0;
+            while (klass.isArray()) {
+                dimensions++;
+                klass = klass.getComponentType();
+            }
+            str.append(klass.getSimpleName()).append('[').append(Array.getLength(value)).append(']');
+            for (int i = 1; i < dimensions; i++) {
+                str.append("[]");
+            }
+            return str.toString();
+        }
+
+        return value.toString();
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/logging/LoggingProxy.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x.logging;
+
+import java.lang.reflect.*;
+
+/**
+ * A java.lang.reflect proxy that hierarchically logs all method invocations along with their parameters and return values.
+ *
+ * @author Lukas Stadler
+ */
+public class LoggingProxy<T> implements InvocationHandler {
+
+    private T delegate;
+
+    public LoggingProxy(T delegate) {
+        this.delegate = delegate;
+    }
+
+    @Override
+    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
+        int argCount = args == null ? 0 : args.length;
+        if (method.getParameterTypes().length != argCount)
+            throw new RuntimeException("wrong parameter count");
+        StringBuilder str = new StringBuilder();
+        str.append(method.getReturnType().getSimpleName() + " " + method.getDeclaringClass().getSimpleName() + "." + method.getName() + "(");
+        for (int i = 0; i < argCount; i++) {
+            str.append(i == 0 ? "" : ", ");
+            str.append(Logger.pretty(args[i]));
+        }
+        str.append(")");
+        Logger.startScope(str.toString());
+        final Object result;
+        try {
+            if (args == null) {
+                result = method.invoke(delegate);
+            } else {
+                result = method.invoke(delegate, args);
+            }
+        } catch (InvocationTargetException e) {
+            Logger.endScope(" = Exception " + e.getMessage());
+            throw e.getCause();
+        }
+        Logger.endScope(" = " + Logger.pretty(result));
+        return result;
+    }
+
+    public static <T> T getProxy(Class<T> interf, T delegate) {
+        Object obj = Proxy.newProxyInstance(interf.getClassLoader(), new Class[] { interf}, new LoggingProxy<T>(delegate));
+        return interf.cast(obj);
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/c1x4hotspotsrc/HotSpotVM/src/com/sun/hotspot/c1x/server/CompilationServer.java	Mon Aug 16 18:59:36 2010 -0700
@@ -0,0 +1,138 @@
+/*
+ * Copyright (c) 2010 Sun Microsystems, Inc. All rights reserved.
+ *
+ * Sun Microsystems, Inc. has intellectual property rights relating to technology embodied in the product that is
+ * described in this document. In particular, and without limitation, these intellectual property rights may include one
+ * or more of the U.S. patents listed at http://www.sun.com/patents and one or more additional patents or pending patent
+ * applications in the U.S. and in other countries.
+ *
+ * U.S. Government Rights - Commercial software. Government users are subject to the Sun Microsystems, Inc. standard
+ * license agreement and applicable provisions of the FAR and its supplements.
+ *
+ * Use is subject to license terms. Sun, Sun Microsystems, the Sun logo, Java and Solaris are trademarks or registered
+ * trademarks of Sun Microsystems, Inc. in the U.S. and other countries. All SPARC trademarks are used under license and
+ * are trademarks or registered trademarks of SPARC International, Inc. in the U.S. and other countries.
+ *
+ * UNIX is a registered trademark in the U.S. and other countries, exclusively licensed through X/Open Company, Ltd.
+ */
+package com.sun.hotspot.c1x.server;
+
+import java.io.*;
+import java.lang.reflect.Proxy;
+import java.net.*;
+import java.rmi.registry.*;
+
+import javax.net.*;
+
+import com.sun.cri.ci.*;
+import com.sun.cri.ci.CiDebugInfo.Frame;
+import com.sun.cri.ri.*;
+import com.sun.hotspot.c1x.*;
+import com.sun.hotspot.c1x.Compiler;
+import com.sun.hotspot.c1x.logging.*;
+
+/**
+ * Server side of the client/server compilation model.
+ *
+ * @author Lukas Stadler
+ */
+public class CompilationServer {
+
+    private Registry registry;
+    private ServerSocket serverSocket;
+    private Socket socket;
+    private ObjectOutputStream output;
+    private ObjectInputStream input;
+
+    public static void main(String[] args) throws Exception {
+        new CompilationServer().run();
+    }
+
+    public static class Container implements Serializable {
+
+        public final Class<?> clazz;
+        public final Object[] values;
+
+        public Container(Class<?> clazz, Object... values) {
+            this.clazz = clazz;
+            this.values = values;
+        }
+    }
+
+    /**
+     * Replaces certain cir objects that cannot easily be made Serializable.
+     */
+    public static class ReplacingOutputStream extends ObjectOutputStream {
+
+        public ReplacingOutputStream(OutputStream out) throws IOException {
+            super(out);
+            enableReplaceObject(true);
+        }
+
+        @Override
+        protected Object replaceObject(Object obj) throws IOException {
+            Class<? extends Object> clazz = obj.getClass();
+            if (clazz == CiConstant.class) {
+                CiConstant o = (CiConstant) obj;
+                return new Container(clazz, o.kind, o.boxedValue());
+            } else if (clazz == CiDebugInfo.class) {
+                CiDebugInfo o = (CiDebugInfo)obj;
+                return new Container(clazz, o.codePos, o.frame, o.registerRefMap, o.frameRefMap);
+            } else if(clazz == CiCodePos.class) {
+                CiCodePos o = (CiCodePos)obj;
+                return new Container(clazz, o.caller, o.method, o.bci);
+            }
+            return obj;
+        }
+    }
+
+    /**
+     * Replaces certain cir objects that cannot easily be made Serializable.
+     */
+    public static class ReplacingInputStream extends ObjectInputStream {
+
+        public ReplacingInputStream(InputStream in) throws IOException {
+            super(in);
+            enableResolveObject(true);
+        }
+
+        @Override
+        protected Object resolveObject(Object obj) throws IOException {
+            if (obj instanceof Container) {
+                Container c = (Container)obj;
+                if( c.clazz == CiConstant.class) {
+                    return CiConstant.forBoxed((CiKind) c.values[0], c.values[1]);
+                } else if (c.clazz == CiDebugInfo.class) {
+                    return new CiDebugInfo((CiCodePos)c.values[0], (Frame)c.values[1], (byte[])c.values[2], (byte[])c.values[3]);
+                } else if (c.clazz == CiCodePos.class) {
+                    return new CiCodePos((CiCodePos)c.values[0], (RiMethod)c.values[1], (Integer)c.values[2]);
+                }
+                throw new RuntimeException("unexpected container class");
+            }
+            return obj;
+        }
+    }
+
+    private void run() throws IOException, ClassNotFoundException {
+        serverSocket = ServerSocketFactory.getDefault().createServerSocket(1199);
+        while (true) {
+            try {
+                Logger.log("Compilation server ready, waiting for client to connect...");
+                socket = serverSocket.accept();
+                Logger.log("Connected to " + socket.getRemoteSocketAddress());
+                output = new ReplacingOutputStream(socket.getOutputStream());
+                input = new ReplacingInputStream(socket.getInputStream());
+
+                InvocationSocket invocation = new InvocationSocket(output, input);
+                VMEntries entries = (VMEntries) Proxy.newProxyInstance(VMEntries.class.getClassLoader(), new Class<?>[] { VMEntries.class}, invocation);
+                VMExits exits = Compiler.initializeServer(entries);
+                invocation.setDelegate(exits);
+
+                invocation.waitForResult();
+            } catch (IOException e) {
+                e.printStackTrace();
+                socket.close();
+            }
+        }
+    }
+}
\ No newline at end of file
--- a/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/cpu/x86/vm/c1_Runtime1_x86.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -1366,10 +1366,17 @@
         __ movptr(rsi, Address(rsp, (klass_off) * VMRegImpl::stack_slot_size)); // subclass
         __ movptr(rax, Address(rsp, (sup_k_off) * VMRegImpl::stack_slot_size)); // superclass
 
+        Label success;
         Label miss;
+        if (UseC1X) {
+          // TODO this should really be within the XirSnippets
+          __ check_klass_subtype_fast_path(rsi, rax, rcx, &success, &miss, NULL);
+        };
+
         __ check_klass_subtype_slow_path(rsi, rax, rcx, rdi, NULL, &miss);
 
         // fallthrough on success:
+        __ bind(success);
         __ movptr(Address(rsp, (result_off) * VMRegImpl::stack_slot_size), 1); // result
         __ pop(rax);
         __ pop(rcx);
--- a/src/share/vm/c1x/c1x_Compiler.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/c1x/c1x_Compiler.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -31,7 +31,7 @@
 void C1XCompiler::initialize() {
   if (_initialized) return;
   _initialized = true;
-	TRACE_C1X_1("initialize");
+    TRACE_C1X_1("initialize");
 
   JNIEnv *env = ((JavaThread *)Thread::current())->jni_environment();
   jclass klass = env->FindClass("com/sun/hotspot/c1x/VMEntriesNative");
@@ -39,6 +39,8 @@
   env->RegisterNatives(klass, VMEntries_methods, VMEntries_methods_count() );
   
   check_pending_exception("Could not register natives");
+
+  compute_offsets();
 }
 
 // Compilation entry point for methods
@@ -50,9 +52,14 @@
   ResourceMark rm;
   HandleMark hm;
 
+  C1XObjects::initializeObjects();
+
   CompilerThread::current()->set_compiling(true);
-  VMExits::compileMethod((methodOop)target->get_oop(), entry_bci);
+  methodOop method = (methodOop)target->get_oop();
+  VMExits::compileMethod(C1XObjects::add<methodOop>(method), C1XObjects::toString<Handle>(method->name(), THREAD), entry_bci);
   CompilerThread::current()->set_compiling(false);
+
+  C1XObjects::cleanupLocalObjects();
 }
 
 // Print compilation timers and statistics
@@ -60,129 +67,128 @@
 	TRACE_C1X_1("print_timers");
 }
 
-oop C1XCompiler::get_RiType(oop name, klassOop accessingType, TRAPS) {
-  symbolOop klass = java_lang_String::as_symbol_or_null(name);
-
-  if (klass == vmSymbols::byte_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_BYTE, THREAD);
-  } else if (klass == vmSymbols::char_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_CHAR, THREAD);
-  } else if (klass == vmSymbols::double_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_DOUBLE, THREAD);
-  } else if (klass == vmSymbols::float_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_FLOAT, THREAD);
-  } else if (klass == vmSymbols::int_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_INT, THREAD);
-  } else if (klass == vmSymbols::long_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_LONG, THREAD);
-  } else if (klass == vmSymbols::bool_signature()) {
-    return VMExits::createRiTypePrimitive((int)T_BOOLEAN, THREAD);
-  }
-  Handle classloader;
-  if (accessingType != NULL) {
-    classloader = accessingType->klass_part()->class_loader();
-  }
-  klassOop resolved_type = SystemDictionary::resolve_or_null(klass, classloader, accessingType->klass_part()->protection_domain(), Thread::current());
-  if (resolved_type != NULL) {
-    return VMExits::createRiType(resolved_type, THREAD);
-  } else {
-    return VMExits::createRiTypeUnresolved(klass, accessingType, THREAD);
-  }
-}
-
 oop C1XCompiler::get_RiType(ciType *type, klassOop accessor, TRAPS) {
   if (type->is_loaded()) {
     if (type->is_primitive_type()) {
       return VMExits::createRiTypePrimitive((int)type->basic_type(), THREAD);
     }
-    return VMExits::createRiType((klassOop)type->get_oop(), THREAD);
+    klassOop klass = (klassOop)type->get_oop();
+    return VMExits::createRiType(C1XObjects::add<klassOop>(klass), C1XObjects::toString<Handle>(klass->klass_part()->name(), THREAD), THREAD);
   } else {
-    return VMExits::createRiTypeUnresolved(((ciKlass *)type)->name()->get_symbolOop(), accessor, THREAD);
+    symbolOop name = ((ciKlass *)type)->name()->get_symbolOop();
+    return VMExits::createRiTypeUnresolved(C1XObjects::toString<Handle>(name, THREAD), C1XObjects::add<klassOop>(accessor), THREAD);
   }
 }
 
 oop C1XCompiler::get_RiField(ciField *field, TRAPS) {
   oop field_holder = get_RiType(field->holder(), NULL, CHECK_0);
   oop field_type = get_RiType(field->type(), NULL, CHECK_0);
-  symbolOop field_name = field->name()->get_symbolOop();
+  Handle field_name = C1XObjects::toString<Handle>(field->name()->get_symbolOop(), CHECK_0);
   int offset = field->offset();
 
   // TODO: implement caching
   return VMExits::createRiField(field_holder, field_name, field_type, offset, THREAD);
 }
 
-/*
-oop C1XCompiler::get_RiMethod(ciMethod *method, TRAPS) {
-  methodOop m = (methodOop)method->get_oop();
-  return get_RiMethod(m, THREAD);
+// C1XObjects implementation
+
+GrowableArray<address>* C1XObjects::_stubs = NULL;
+GrowableArray<jobject>* C1XObjects::_localHandles = NULL;
+
+void C1XObjects::initializeObjects() {
+  if (_stubs == NULL) {
+    assert(_localHandles == NULL, "inconsistent state");
+    _stubs = new(ResourceObj::C_HEAP) GrowableArray<address>(64, true);
+    _localHandles = new(ResourceObj::C_HEAP) GrowableArray<jobject>(64, true);
+  }
+  assert(_localHandles->length() == 0, "invalid state");
+}
+
+void C1XObjects::cleanupLocalObjects() {
+  for (int i=0; i<_localHandles->length(); i++) {
+    JNIHandles::destroy_global(_localHandles->at(i));
+  }
+  _localHandles->clear();
+}
+
+jlong C1XObjects::addStub(address stub) {
+  assert(!_stubs->contains(stub), "duplicate stub");
+  return _stubs->append(stub) | STUB;
 }
 
-oop C1XCompiler::get_RiMethod(methodOop m, TRAPS) {
-  // TODO: implement caching
-  return VMExits::createRiMethod(m, THREAD);
+jlong C1XObjects::add(Handle obj, CompilerObjectType type) {
+  assert(!obj.is_null(), "cannot add NULL handle");
+  int idx = -1;
+  for (int i=0; i<_localHandles->length(); i++)
+    if (JNIHandles::resolve_non_null(_localHandles->at(i)) == obj()) {
+      idx = i;
+      break;
+    }
+  if (idx = -1) {
+    if (JavaThread::current()->thread_state() == _thread_in_vm) {
+      idx = _localHandles->append(JNIHandles::make_global(obj));
+    } else {
+      VM_ENTRY_MARK;
+      idx = _localHandles->append(JNIHandles::make_global(obj));
+    }
+  }
+  return idx | type;
+}
+
+address C1XObjects::getStub(jlong id) {
+  assert((id & TYPE_MASK) == STUB, "wrong id type, STUB expected");
+  assert((id & ~TYPE_MASK) >= 0 && (id & ~TYPE_MASK) < _stubs->length(), "STUB index out of bounds");
+  return _stubs->at(id & ~TYPE_MASK);
+}
+
+oop C1XObjects::getObject(jlong id) {
+  assert((id & TYPE_MASK) != STUB, "wrong id type");
+  assert((id & ~TYPE_MASK) >= 0 && (id & ~TYPE_MASK) < _localHandles->length(), "index out of bounds");
+  return JNIHandles::resolve_non_null(_localHandles->at(id & ~TYPE_MASK));
 }
 
 
-oop C1XCompiler::get_RiType(klassOop klass, TRAPS) {
-  // TODO: implement caching
-  return VMExits::createRiType(klass, THREAD);
-}
-
-oop C1XCompiler::get_RiConstantPool(constantPoolOop cp, TRAPS) {
-  // TODO: implement caching
-  return VMExits::createRiConstantPool(cp, THREAD);
-}
+static void compute_offset(int &dest_offset, klassOop klass_oop, const char* name, const char* signature) {
+  symbolOop name_symbol = SymbolTable::probe(name, strlen(name));
+  symbolOop signature_symbol = SymbolTable::probe(signature, strlen(signature));
+  assert(name_symbol != NULL, "symbol not found - class layout changed?");
+  assert(signature_symbol != NULL, "symbol not found - class layout changed?");
 
-oop C1XCompiler::get_unresolved_RiType(symbolOop klass, klassOop accessingType, TRAPS)  {
-  // TODO: implement caching
-  return VMExits::createRiTypeUnresolved(klass, accessingType, THREAD);
-}
-*/
-
-// conversion internal objects -> reflected objects
-
-oop C1XObjects::getReflectedMethod(methodOop method, TRAPS) {
-  if (method->is_initializer()) {
-    return Reflection::new_constructor(method, CHECK_0);
-  } else {
-    return Reflection::new_method(method, UseNewReflection, false, CHECK_0);
+  instanceKlass* ik = instanceKlass::cast(klass_oop);
+  fieldDescriptor fd;
+  if (!ik->find_field(name_symbol, signature_symbol, &fd)) {
+    ResourceMark rm;
+    tty->print_cr("Invalid layout of %s at %s", ik->external_name(), name_symbol->as_C_string());
+    fatal("Invalid layout of preloaded class");
   }
-}
-
-oop C1XObjects::getReflectedClass(klassOop klass) {
-  return klass->klass_part()->java_mirror();
+  dest_offset = fd.offset();
 }
 
-oop C1XObjects::getReflectedSymbol(symbolOop symbol, TRAPS) {
-  return java_lang_String::create_from_symbol(symbol, THREAD)();
+// create the compute_class
+#define START_CLASS(name) { klassOop k = SystemDictionary::name##_klass();
+
+#define END_CLASS }
+
+#define FIELD(klass, name, signature) compute_offset(klass::_##name##_offset, k, #name, signature);
+#define CHAR_FIELD(klass, name) FIELD(klass, name, "C")
+#define INT_FIELD(klass, name) FIELD(klass, name, "I")
+#define LONG_FIELD(klass, name) FIELD(klass, name, "J")
+#define OOP_FIELD(klass, name, signature) FIELD(klass, name, signature)
+
+
+void C1XCompiler::compute_offsets() {
+  COMPILER_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, LONG_FIELD, OOP_FIELD)
 }
 
-// conversion reflected objects -> internal objects
-
-methodOop C1XObjects::getInternalMethod(oop method) {
-  // copied from JNIEnv::FromReflectedMethod
-  oop mirror     = NULL;
-  int slot       = 0;
+#define EMPTY0
+#define EMPTY1(x)
+#define EMPTY2(x,y)
+#define FIELD2(klass, name) int klass::_##name##_offset = 0;
+#define FIELD3(klass, name, sig) FIELD2(klass, name)
 
-  if (method->klass() == SystemDictionary::reflect_Constructor_klass()) {
-    mirror = java_lang_reflect_Constructor::clazz(method);
-    slot   = java_lang_reflect_Constructor::slot(method);
-  } else {
-    assert(method->klass() == SystemDictionary::reflect_Method_klass(), "wrong type");
-    mirror = java_lang_reflect_Method::clazz(method);
-    slot   = java_lang_reflect_Method::slot(method);
-  }
-  klassOop k     = java_lang_Class::as_klassOop(mirror);
-  return instanceKlass::cast(k)->method_with_idnum(slot);
-}
-
-klassOop C1XObjects::getInternalClass(oop klass) {
-  return java_lang_Class::as_klassOop(klass);
-}
-
-symbolOop C1XObjects::getInternalSymbol(oop string) {
-  return java_lang_String::as_symbol_or_null(string);
-}
+COMPILER_CLASSES_DO(EMPTY1, EMPTY0, FIELD2, FIELD2, FIELD2, FIELD3)
 
 
 
+
+
--- a/src/share/vm/c1x/c1x_Compiler.hpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/c1x/c1x_Compiler.hpp	Mon Aug 16 18:59:36 2010 -0700
@@ -51,10 +51,18 @@
   // Print compilation timers and statistics
   virtual void print_timers();
 
-  static oop get_RiType(oop klass, klassOop accessingType, TRAPS);
   static oop get_RiType(ciType *klass, klassOop accessor, TRAPS);
   static oop get_RiField(ciField *ciField, TRAPS);
 
+  static void compute_offsets();
+
+  // this needs to correspond to HotSpotXirGenerator.java
+  enum MarkId {
+    MARK_VERIFIED_ENTRY     = 1,
+    MARK_UNVERIFIED_ENTRY   = 2,
+    MARK_STATIC_CALL_STUB   = 1000
+  };
+
 /*
   static oop get_RiMethod(ciMethod *ciMethod, TRAPS);
   static oop get_RiType(klassOop klass, TRAPS);
@@ -66,25 +74,101 @@
 
 class C1XObjects : public AllStatic {
 
+private:
+  static GrowableArray<address>* _stubs;
+  static GrowableArray<jobject>* _localHandles;
+
+  static oop getObject(jlong id);
+
 public:
-  static oop getReflectedMethod(methodOop method, TRAPS);
-  static oop getReflectedClass(klassOop klass);
-  static oop getReflectedSymbol(symbolOop symbol, TRAPS);
+  // this enum needs to have the same values as the one in HotSpotProxy.java
+  enum CompilerObjectType {
+    STUB          = 0x100000000000000l,
+    METHOD        = 0x200000000000000l,
+    CLASS         = 0x300000000000000l,
+    SYMBOL        = 0x400000000000000l,
+    CONSTANT_POOL = 0x500000000000000l,
+    CONSTANT      = 0x600000000000000l,
+    TYPE_MASK     = 0xf00000000000000l
+  };
 
-  static methodOop getInternalMethod(oop method);
-  static klassOop getInternalClass(oop klass);
-  static symbolOop getInternalSymbol(oop string);
+  static void initializeObjects();
+  static void cleanupLocalObjects();
+
+  static jlong addStub(address stub);
+  static jlong add(Handle obj, CompilerObjectType type);
+  template <typename T> static jlong add(T obj);
+
+  static address getStub(jlong id);
+  template <typename T> static T get(jlong id);
+
+  template <typename T> static T toString(symbolOop symbol, TRAPS);
+  static symbolOop toSymbol(jstring string);
+};
 
-  static methodOop getInternalMethod(jobject method) {
-    return getInternalMethod(JNIHandles::resolve(method));
-  }
-  static klassOop getInternalClass(jobject klass) {
-    return getInternalClass(JNIHandles::resolve(klass));
-  }
-  static symbolOop getInternalSymbol(jobject string) {
-    return getInternalSymbol(JNIHandles::resolve(string));
-  }
-};
+template <> inline jlong C1XObjects::add<methodOop>(methodOop obj){
+  assert(obj != NULL && obj->is_method(), "trying to add NULL or mistyped object");
+  return add(Handle(obj), METHOD);
+}
+template <> inline jlong C1XObjects::add<klassOop>(klassOop obj) {
+  assert(obj != NULL && obj->is_klass(), "trying to add NULL or mistyped object");
+  return add(Handle(obj), CLASS);
+}
+template <> inline jlong C1XObjects::add<symbolOop>(symbolOop obj) {
+  assert(obj != NULL && obj->is_symbol(), "trying to add NULL or mistyped object");
+  return add(Handle(obj), SYMBOL);
+}
+template <> inline jlong C1XObjects::add<constantPoolOop>(constantPoolOop obj) {
+  assert(obj != NULL && obj->is_constantPool(), "trying to add NULL or mistyped object");
+  return add(Handle(obj), CONSTANT_POOL);
+}
+template <> inline jlong C1XObjects::add<oop>(oop obj) {
+  assert(obj != NULL && obj->is_oop(), "trying to add NULL or mistyped object");
+  return add(Handle(obj), CONSTANT);
+}
+
+template <> inline methodOop C1XObjects::get<methodOop>(jlong id){
+  assert((id & TYPE_MASK) == METHOD, "METHOD expected");
+  assert(getObject(id)->is_method(), "methodOop expected");
+  return (methodOop)getObject(id);
+}
+template <> inline klassOop C1XObjects::get<klassOop>(jlong id) {
+  assert((id & TYPE_MASK) == CLASS, "CLASS expected");
+  assert(getObject(id)->is_klass(), "klassOop expected");
+  return (klassOop)getObject(id);
+}
+template <> inline symbolOop C1XObjects::get<symbolOop>(jlong id) {
+  assert((id & TYPE_MASK) == SYMBOL, "SYMBOL expected");
+  assert(getObject(id)->is_symbol(), "symbolOop expected");
+  return (symbolOop)getObject(id);
+}
+template <> inline constantPoolOop C1XObjects::get<constantPoolOop>(jlong id) {
+  assert((id & TYPE_MASK) == CONSTANT_POOL, "CONSTANT_POOL expected");
+  assert(getObject(id)->is_constantPool(), "constantPoolOop expected");
+  return (constantPoolOop)getObject(id);
+}
+template <> inline oop C1XObjects::get<oop>(jlong id) {
+  assert((id & TYPE_MASK) == CONSTANT, "CONSTANT expected");
+  assert(getObject(id)->is_oop(true), "oop expected");
+  return (oop)getObject(id);
+}
+
+template <> inline Handle C1XObjects::toString<Handle>(symbolOop symbol, TRAPS) {
+  return java_lang_String::create_from_symbol(symbol, THREAD);
+}
+template <> inline oop C1XObjects::toString<oop>(symbolOop symbol, TRAPS) {
+  return toString<Handle>(symbol, THREAD)();
+}
+template <> inline jstring C1XObjects::toString<jstring>(symbolOop symbol, TRAPS) {
+  return (jstring)JNIHandles::make_local(toString<oop>(symbol, THREAD));
+}
+template <> inline jobject C1XObjects::toString<jobject>(symbolOop symbol, TRAPS) {
+  return JNIHandles::make_local(toString<oop>(symbol, THREAD));
+}
+
+inline symbolOop C1XObjects::toSymbol(jstring string) {
+  return java_lang_String::as_symbol_or_null(JNIHandles::resolve(string));
+}
 
 // Tracing macros
 
@@ -99,3 +183,123 @@
 #define TRACE_C1X_3 if (TraceC1X >= 3) tty->print("      TraceC1X-3: "); if (TraceC1X >= 3) tty->print_cr
 #define TRACE_C1X_4 if (TraceC1X >= 4) tty->print("         TraceC1X-4: "); if (TraceC1X >= 4) tty->print_cr
 #define TRACE_C1X_5 if (TraceC1X >= 5) tty->print("            TraceC1X-5: "); if (TraceC1X >= 5) tty->print_cr
+
+
+// defines the structure of the CiTargetMethod - classes
+// this will generate classes with accessors similar to javaClasses.hpp
+
+#define COMPILER_CLASSES_DO(start_class, end_class, char_field, int_field, long_field, oop_field)   \
+  start_class(HotSpotTypeResolved)                                                      \
+    long_field(HotSpotTypeResolved, vmId)                                               \
+  end_class                                                                             \
+  start_class(HotSpotMethod)                                                            \
+    long_field(HotSpotMethod, vmId)                                                     \
+  end_class                                                                             \
+  start_class(HotSpotTargetMethod)                                                      \
+    oop_field(HotSpotTargetMethod, targetMethod, "Lcom/sun/cri/ci/CiTargetMethod;")     \
+    oop_field(HotSpotTargetMethod, method, "Lcom/sun/hotspot/c1x/HotSpotMethod;")       \
+    oop_field(HotSpotTargetMethod, name, "Ljava/lang/String;")                          \
+    oop_field(HotSpotTargetMethod, sites, "[Lcom/sun/cri/ci/CiTargetMethod$Site;")      \
+  end_class                                                                             \
+  start_class(CiTargetMethod)                                                           \
+    int_field(CiTargetMethod, frameSize)                                                \
+    oop_field(CiTargetMethod, targetCode, "[B")                                         \
+    int_field(CiTargetMethod, targetCodeSize)                                           \
+    int_field(CiTargetMethod, referenceRegisterCount)                                   \
+  end_class                                                                             \
+  start_class(CiTargetMethod_Site)                                                      \
+    int_field(CiTargetMethod_Site, pcOffset)                                            \
+  end_class                                                                             \
+  start_class(CiTargetMethod_Call)                                                      \
+    oop_field(CiTargetMethod_Call, runtimeCall, "Lcom/sun/cri/ci/CiRuntimeCall;")       \
+    oop_field(CiTargetMethod_Call, method, "Lcom/sun/cri/ri/RiMethod;")                 \
+    oop_field(CiTargetMethod_Call, symbol, "Ljava/lang/String;")                        \
+    oop_field(CiTargetMethod_Call, globalStubID, "Ljava/lang/Object;")                  \
+    oop_field(CiTargetMethod_Call, debugInfo, "Lcom/sun/cri/ci/CiDebugInfo;")           \
+    oop_field(CiTargetMethod_Call, stackMap, "[B")                                      \
+    oop_field(CiTargetMethod_Call, registerMap, "[B")                                   \
+  end_class                                                                             \
+  start_class(CiTargetMethod_DataPatch)                                                 \
+    oop_field(CiTargetMethod_DataPatch, constant, "Lcom/sun/cri/ci/CiConstant;")        \
+  end_class                                                                             \
+  start_class(CiTargetMethod_Safepoint)                                                 \
+    oop_field(CiTargetMethod_Safepoint, debugInfo, "Lcom/sun/cri/ci/CiDebugInfo;")      \
+  end_class                                                                             \
+  start_class(CiTargetMethod_ExceptionHandler)                                          \
+    int_field(CiTargetMethod_ExceptionHandler, handlerPos)                              \
+    oop_field(CiTargetMethod_ExceptionHandler, exceptionType, "Lcom/sun/cri/ri/RiType;")\
+  end_class                                                                             \
+  start_class(CiTargetMethod_Mark)                                                      \
+    oop_field(CiTargetMethod_Mark, id, "Ljava/lang/Object;")                            \
+    oop_field(CiTargetMethod_Mark, references, "[Lcom/sun/cri/ci/CiTargetMethod$Mark;") \
+  end_class                                                                             \
+  start_class(CiDebugInfo)                                                              \
+    oop_field(CiDebugInfo, codePos, "Lcom/sun/cri/ci/CiCodePos;")                       \
+    oop_field(CiDebugInfo, frame, "Lcom/sun/cri/ci/CiDebugInfo$Frame;")                 \
+    oop_field(CiDebugInfo, registerRefMap, "[B")                                        \
+    oop_field(CiDebugInfo, frameRefMap, "[B")                                           \
+  end_class                                                                             \
+  start_class(CiDebugInfo_Frame)                                                        \
+    oop_field(CiDebugInfo_Frame, caller, "Lcom/sun/cri/ci/CiDebugInfo$Frame;")          \
+    oop_field(CiDebugInfo_Frame, codePos, "Lcom/sun/cri/ci/CiCodePos;")                 \
+    oop_field(CiDebugInfo_Frame, values, "[Lcom/sun/cri/ci/CiValue;")                   \
+    int_field(CiDebugInfo_Frame, numLocals)                                             \
+    int_field(CiDebugInfo_Frame, numStack)                                              \
+    int_field(CiDebugInfo_Frame, numLocks)                                              \
+  end_class                                                                             \
+  start_class(CiCodePos)                                                                \
+    oop_field(CiCodePos, caller, "Lcom/sun/cri/ci/CiCodePos;")                          \
+    oop_field(CiCodePos, method, "Lcom/sun/cri/ri/RiMethod;")                           \
+    int_field(CiCodePos, bci)                                                           \
+  end_class                                                                             \
+  start_class(CiConstant)                                                               \
+    oop_field(CiConstant, kind, "Lcom/sun/cri/ci/CiKind;")                              \
+    oop_field(CiConstant, object, "Ljava/lang/Object;")                                 \
+    long_field(CiConstant, primitive)                                                   \
+  end_class                                                                             \
+  start_class(CiKind)                                                                   \
+    char_field(CiKind, typeChar)                                                        \
+  end_class                                                                             \
+  start_class(CiRuntimeCall)                                                            \
+  end_class                                                                             \
+  start_class(RiMethod)                                                                 \
+  end_class                                                                             \
+  start_class(CiRegisterValue)                                                          \
+  end_class                                                                             \
+  start_class(CiStackSlot)                                                              \
+  end_class                                                                             \
+  /* end*/
+
+#define START_CLASS(name)                       \
+  class name : AllStatic {                      \
+  private:                                      \
+    friend class C1XCompiler;                   \
+    static void check(oop obj) { assert(obj != NULL, "NULL field access"); assert(obj->is_a(SystemDictionary::name##_klass()), "wrong class, " #name " expected"); } \
+    static void compute_offsets();              \
+  public:                                       \
+    static klassOop klass() { return SystemDictionary::name##_klass(); }
+
+#define END_CLASS };
+
+#define FIELD(name, type, accessor)             \
+    static int _##name##_offset;                \
+    static type name(oop obj)                   { check(obj); return obj->accessor(_##name##_offset); } \
+    static type name(jobject obj)               { check(JNIHandles::resolve(obj)); return JNIHandles::resolve(obj)->accessor(_##name##_offset); } \
+    static void set_##name(oop obj, type x)     { check(obj); obj->accessor##_put(_##name##_offset, x); } \
+    static void set_##name(jobject obj, type x) { check(JNIHandles::resolve(obj)); JNIHandles::resolve(obj)->accessor##_put(_##name##_offset, x); }
+
+#define CHAR_FIELD(klass, name) FIELD(name, jchar, char_field)
+#define INT_FIELD(klass, name) FIELD(name, jint, int_field)
+#define LONG_FIELD(klass, name) FIELD(name, jlong, long_field)
+#define OOP_FIELD(klass, name, signature) FIELD(name, oop, obj_field)
+
+COMPILER_CLASSES_DO(START_CLASS, END_CLASS, CHAR_FIELD, INT_FIELD, LONG_FIELD, OOP_FIELD)
+#undef START_CLASS
+#undef END_CLASS
+#undef FIELD
+#undef CHAR_FIELD
+#undef INT_FIELD
+#undef LONG_FIELD
+#undef OOP_FIELD
+
+
--- a/src/share/vm/c1x/c1x_VMEntries.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/c1x/c1x_VMEntries.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -27,103 +27,96 @@
 # include "incls/_c1x_VMEntries.cpp.incl"
 
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_code
-* Signature: (Ljava/lang/reflect/Method;)[B
-*/
-JNIEXPORT jbyteArray JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code(JNIEnv *env, jobject, jobject method) {
-  methodOop m = C1XObjects::getInternalMethod(method);
-  int code_size = m->code_size();
+
+
+// public byte[] RiMethod_code(HotSpotProxy method);
+JNIEXPORT jbyteArray JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code(JNIEnv *env, jobject, jlong vmId) {
+  methodOop method = C1XObjects::get<methodOop>(vmId);
+  int code_size = method->code_size();
   jbyteArray result = env->NewByteArray(code_size);
-  env->SetByteArrayRegion(result, 0, code_size, (const jbyte *)m->code_base());
+  env->SetByteArrayRegion(result, 0, code_size, (const jbyte *)method->code_base());
   return result;
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_maxStackSize
-* Signature: (Ljava/lang/reflect/Method;)I
-*/
-JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize(JNIEnv *, jobject, jobject method) {
-  return C1XObjects::getInternalMethod(method)->max_stack();
+// public int RiMethod_maxStackSize(HotSpotProxy method);
+JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize(JNIEnv *, jobject, jlong vmId) {
+  return C1XObjects::get<methodOop>(vmId)->max_stack();
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_maxLocals
-* Signature: (Ljava/lang/reflect/Method;)I
-*/
-JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals(JNIEnv *, jobject, jobject method) {
-  return C1XObjects::getInternalMethod(method)->max_locals();
+// public int RiMethod_maxLocals(HotSpotProxy method);
+JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals(JNIEnv *, jobject, jlong vmId) {
+  return C1XObjects::get<methodOop>(vmId)->max_locals();
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_holder
-* Signature: (Ljava/lang/reflect/Method;)Lcom/sun/cri/ri/RiType;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder(JNIEnv *, jobject, jobject method) {
+// public RiType RiMethod_holder(HotSpotProxy method);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder(JNIEnv *, jobject, jlong vmId) {
   VM_ENTRY_MARK
-  oop holder = VMExits::createRiType(C1XObjects::getInternalMethod(method)->method_holder(), THREAD);
+  klassOop klass = C1XObjects::get<methodOop>(vmId)->method_holder();
+  jlong klassVmId = C1XObjects::add<klassOop>(klass);
+  Handle name = C1XObjects::toString<Handle>(klass->klass_part()->name(), CHECK_NULL);
+  oop holder = VMExits::createRiType(klassVmId, name, THREAD);
   return JNIHandles::make_local(THREAD, holder);
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_signature
-* Signature: (Ljava/lang/reflect/Method;)Lcom/sun/cri/ri/RiSignature;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature(JNIEnv *env, jobject, jobject method) {
+// public String RiMethod_signature(HotSpotProxy method);
+JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature(JNIEnv *env, jobject, jlong vmId) {
   VM_ENTRY_MARK
-  return (jstring)JNIHandles::make_local(java_lang_String::create_from_symbol(C1XObjects::getInternalMethod(method)->signature(), Thread::current())());
+  methodOop method = C1XObjects::get<methodOop>(vmId);
+  return C1XObjects::toString<jstring>(method->signature(), THREAD);
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_name
-* Signature: (Ljava/lang/reflect/Method;)Ljava/lang/String;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1name(JNIEnv *env, jobject, jobject method) {
-  VM_ENTRY_MARK
-  return (jstring)JNIHandles::make_local(java_lang_String::create_from_symbol(C1XObjects::getInternalMethod(method)->name(), Thread::current())());
+// public int RiMethod_accessFlags(HotSpotProxy method);
+JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags(JNIEnv *, jobject, jlong vmId) {
+  return C1XObjects::get<methodOop>(vmId)->access_flags().as_int();
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_accessFlags
-* Signature: (Ljava/lang/reflect/Method;)I
-*/
-JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags(JNIEnv *, jobject, jobject method) {
-  return C1XObjects::getInternalMethod(method)->access_flags().as_int();
-}
+// public RiType RiSignature_lookupType(String returnType, HotSpotProxy accessingClass);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType(JNIEnv *, jobject, jstring jname, jlong accessingClassVmId) {
+  VM_ENTRY_MARK;
+
+  symbolOop nameSymbol = C1XObjects::toSymbol(jname);
+  Handle name = JNIHandles::resolve(jname);
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiSignature_lookupType
-* Signature: (Ljava/lang/String;Lcom/sun/cri/ri/RiType;)Lcom/sun/cri/ri/RiType;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType(JNIEnv *, jobject, jstring name, jobject accessor) {
-  VM_ENTRY_MARK
-  klassOop k = C1XObjects::getInternalClass(accessor);
-  oop n = JNIHandles::resolve(name);
-  if (n == NULL) {
-    THROW_MSG_(vmSymbols::java_lang_NullPointerException(), "Name must not be null.", NULL);
+  oop result;
+  if (nameSymbol == vmSymbols::int_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_INT, THREAD);
+  } else if (nameSymbol == vmSymbols::long_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_LONG, THREAD);
+  } else if (nameSymbol == vmSymbols::bool_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_BOOLEAN, THREAD);
+  } else if (nameSymbol == vmSymbols::char_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_CHAR, THREAD);
+  } else if (nameSymbol == vmSymbols::short_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_SHORT, THREAD);
+  } else if (nameSymbol == vmSymbols::byte_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_BYTE, THREAD);
+  } else if (nameSymbol == vmSymbols::double_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_DOUBLE, THREAD);
+  } else if (nameSymbol == vmSymbols::float_signature()) {
+    result = VMExits::createRiTypePrimitive((int)T_FLOAT, THREAD);
+  } else {
+    Handle classloader;
+    Handle protectionDomain;
+    if (accessingClassVmId != 0) {
+      classloader = C1XObjects::get<klassOop>(accessingClassVmId)->klass_part()->class_loader();
+      protectionDomain = C1XObjects::get<klassOop>(accessingClassVmId)->klass_part()->protection_domain();
+    }
+    klassOop resolved_type = SystemDictionary::resolve_or_null(nameSymbol, classloader, protectionDomain, THREAD);
+    if (resolved_type != NULL) {
+      result = VMExits::createRiType(C1XObjects::add<klassOop>(resolved_type), name, THREAD);
+    } else {
+      result = VMExits::createRiTypeUnresolved(name, accessingClassVmId, THREAD);
+    }
   }
-  oop result = C1XCompiler::get_RiType(n, k, THREAD);
+
   return JNIHandles::make_local(THREAD, result);
 }
 
+// public Object RiConstantPool_lookupConstant(HotSpotProxy constantPool, int cpi);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant(JNIEnv *env, jobject, jlong vmId, jint index) {
+  VM_ENTRY_MARK;
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupConstant
-* Signature: (Ljava/lang/Class;I)Ljava/lang/Object;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant(JNIEnv *env, jobject, jobject cpHandle, jint index) {
-  VM_ENTRY_MARK;
-  klassOop klass = C1XObjects::getInternalClass(cpHandle);
-  constantPoolOop cp = instanceKlass::cast(klass)->constants();
+  constantPoolOop cp = C1XObjects::get<constantPoolOop>(vmId);
 
   oop result = NULL;
   constantTag tag = cp->tag_at(index);
@@ -148,9 +141,9 @@
         return NULL;
       }
     }
-    result = VMExits::createCiConstantObject(string, CHECK_0);
+    result = VMExits::createCiConstantObject(C1XObjects::add<oop>(string), CHECK_0);
   } else if (tag.is_klass() || tag.is_unresolved_klass()) {
-    
+
     // TODO: Return RiType object
     ShouldNotReachHere();
     // 4881222: allow ldc to take a class type
@@ -167,7 +160,7 @@
   } else if (tag.is_object()) {
     oop obj = cp->object_at(index);
     assert(obj->is_instance(), "must be an instance");
-    result = VMExits::createCiConstantObject(obj, CHECK_0);
+    result = VMExits::createCiConstantObject(C1XObjects::add<oop>(obj), CHECK_0);
   } else {
     ShouldNotReachHere();
   }
@@ -175,102 +168,71 @@
   return JNIHandles::make_local(THREAD, result);
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupMethod
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiMethod;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod(JNIEnv *env, jobject, jobject cpHandle, jint index, jbyte byteCode) {
+// public RiMethod RiConstantPool_lookupMethod(HotSpotProxy constantPool, int cpi, byte byteCode
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod(JNIEnv *env, jobject, jlong vmId, jint index, jbyte byteCode) {
   VM_ENTRY_MARK;
-  klassOop klass = C1XObjects::getInternalClass(cpHandle);
-  constantPoolOop cp = instanceKlass::cast(klass)->constants();
-//  assert(cp->tag_at(cp->cache() != NULL ? cp->cache()->entry_at(index)->constant_pool_index() : index).is_method(), "reading field from non-field cp index");
+
+  constantPoolOop cp = C1XObjects::get<constantPoolOop>(vmId);
+
   Bytecodes::Code bc = (Bytecodes::Code)(((int)byteCode) & 0xFF);
   ciInstanceKlass* loading_klass = (ciInstanceKlass *)CURRENT_ENV->get_object(cp->pool_holder());
-  ciMethod *method = CURRENT_ENV->get_method_by_index(cp, index, bc, loading_klass);
-  return JNIHandles::make_local(THREAD, VMExits::createRiMethod((methodOop)method->get_oop(), THREAD));
+  ciMethod *cimethod = CURRENT_ENV->get_method_by_index(cp, index, bc, loading_klass);
+  methodOop method = (methodOop)cimethod->get_oop();
+  Handle name = C1XObjects::toString<Handle>(method->name(), CHECK_NULL);
+  return JNIHandles::make_local(THREAD, VMExits::createRiMethod(C1XObjects::add<methodOop>(method), name, THREAD));
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupSignature
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiSignature;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature(JNIEnv *env, jobject, jobject cpHandle, jint index) {
+// public RiSignature RiConstantPool_lookupSignature(HotSpotProxy constantPool, int cpi);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature(JNIEnv *env, jobject, jlong vmId, jint index) {
   fatal("currently unsupported");
   return NULL;
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupType
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiType;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType(JNIEnv *env, jobject, jobject cpHandle, jint index) {
+// public RiType RiConstantPool_lookupType(HotSpotProxy constantPool, int cpi);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType(JNIEnv *env, jobject, jlong vmId, jint index) {
   VM_ENTRY_MARK;
-  klassOop cpKlass = C1XObjects::getInternalClass(cpHandle);
-  constantPoolOop cp = instanceKlass::cast(cpKlass)->constants();
-  ciInstanceKlass* loading_klass = (ciInstanceKlass *)CURRENT_ENV->get_object(cpKlass);
+
+  constantPoolOop cp = C1XObjects::get<constantPoolOop>(vmId);
+
+  ciInstanceKlass* loading_klass = (ciInstanceKlass *)CURRENT_ENV->get_object(cp->pool_holder());
   bool is_accessible = false;
   ciKlass *klass = CURRENT_ENV->get_klass_by_index(cp, index, is_accessible, loading_klass);
-  return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, cpKlass, THREAD));
+  return JNIHandles::make_local(THREAD, C1XCompiler::get_RiType(klass, cp->klass(), THREAD));
 
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupField
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiField;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField(JNIEnv *env, jobject, jobject cpHandle, jint index) {
+// public RiField RiConstantPool_lookupField(HotSpotProxy constantPool, int cpi);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField(JNIEnv *env, jobject, jlong vmId, jint index) {
   VM_ENTRY_MARK;
-  klassOop klass = C1XObjects::getInternalClass(cpHandle);
-  constantPoolOop cp = instanceKlass::cast(klass)->constants();
-//  assert(cp->tag_at(cp->cache() != NULL ? cp->cache()->entry_at(index)->constant_pool_index() : index).is_field(), "reading field from non-field cp index");
+
+  constantPoolOop cp = C1XObjects::get<constantPoolOop>(vmId);
+
   ciInstanceKlass* loading_klass = (ciInstanceKlass *)CURRENT_ENV->get_object(cp->pool_holder());
   ciField *field = CURRENT_ENV->get_field_by_index(loading_klass, index);
   return JNIHandles::make_local(THREAD, C1XCompiler::get_RiField(field, THREAD));
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_name
-* Signature: (Ljava/lang/Class;)Ljava/lang/String;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1name(JNIEnv *env, jobject, jobject klass) {
-  VM_ENTRY_MARK
-  klassOop k = C1XObjects::getInternalClass(klass);
-  return (jstring)JNIHandles::make_local(java_lang_String::create_from_symbol(k->klass_part()->name(), Thread::current())());
+// public RiConstantPool RiType_constantPool(HotSpotProxy type);
+JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1constantPool(JNIEnv *, jobject, jlong vmId) {
+  VM_ENTRY_MARK;
+
+  constantPoolOop constantPool = instanceKlass::cast(C1XObjects::get<klassOop>(vmId))->constants();
+  return JNIHandles::make_local(VMExits::createRiConstantPool(C1XObjects::add<constantPoolOop>(constantPool), THREAD));
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_isArrayClass
-* Signature: (Ljava/lang/Class;)Z
-*/
-JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isArrayClass(JNIEnv *, jobject, jobject klass) {
-  klassOop o = C1XObjects::getInternalClass(klass);
-  return o->klass_part()->oop_is_array();
+// public boolean RiType_isArrayClass(HotSpotProxy klass);
+JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isArrayClass(JNIEnv *, jobject, jlong vmId) {
+  return C1XObjects::get<klassOop>(vmId)->klass_part()->oop_is_javaArray();
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_isInstanceClass
-* Signature: (Ljava/lang/Class;)Z
-*/
-JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInstanceClass(JNIEnv *, jobject, jobject klass) {
-  klassOop o = C1XObjects::getInternalClass(klass);
-  return o->klass_part()->oop_is_instanceKlass();
+// public boolean RiType_isInstanceClass(HotSpotProxy klass);
+JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInstanceClass(JNIEnv *, jobject, jlong vmId) {
+  return C1XObjects::get<klassOop>(vmId)->klass_part()->oop_is_instance();
 }
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_isInterface
-* Signature: (Ljava/lang/Class;)Z
-*/
-JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInterface(JNIEnv *, jobject, jobject klass) {
-  klassOop o = C1XObjects::getInternalClass(klass);
-  return o->klass_part()->is_interface();
+// public boolean RiType_isInterface(HotSpotProxy klass);
+JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInterface(JNIEnv *, jobject, jlong vmId) {
+  return C1XObjects::get<klassOop>(vmId)->klass_part()->is_interface();
 }
 
 
@@ -287,149 +249,20 @@
 void set_boolean(JNIEnv* env, jobject obj, const char* name, bool value) { env->SetBooleanField(obj, getFieldID(env, obj, name, "Z"), value); }
 void set_int(JNIEnv* env, jobject obj, const char* name, int value) { env->SetIntField(obj, getFieldID(env, obj, name, "I"), value); }
 void set_long(JNIEnv* env, jobject obj, const char* name, long value) { env->SetLongField(obj, getFieldID(env, obj, name, "J"), value); }
+void set_object(JNIEnv* env, jobject obj, const char* name, jobject value) { env->SetObjectField(obj, getFieldID(env, obj, name, "Ljava/lang/Object;"), value); }
+void set_int_array(JNIEnv* env, jobject obj, const char* name, jarray value) { env->SetObjectField(obj, getFieldID(env, obj, name, "[I"), value); }
 
 jboolean get_boolean(JNIEnv* env, jobject obj, const char* name) { return env->GetBooleanField(obj, getFieldID(env, obj, name, "Z")); }
 jint get_int(JNIEnv* env, jobject obj, const char* name) { return env->GetIntField(obj, getFieldID(env, obj, name, "I")); }
+jlong get_long(JNIEnv* env, jobject obj, const char* name) { return env->GetLongField(obj, getFieldID(env, obj, name, "J")); }
 jobject get_object(JNIEnv* env, jobject obj, const char* name) { return env->GetObjectField(obj, getFieldID(env, obj, name, "Ljava/lang/Object;")); }
 jobject get_object(JNIEnv* env, jobject obj, const char* name, const char* sig) { return env->GetObjectField(obj, getFieldID(env, obj, name, sig)); }
 
 
-// Helpful routine for computing field offsets at run time rather than hardcoding them
-int compute_offset(klassOop klass_oop, const char* name, const char* sig) {
-  JavaThread* THREAD = JavaThread::current();
-  fieldDescriptor fd;
-  instanceKlass* ik = instanceKlass::cast(klass_oop);
-  symbolOop name_symbol = SymbolTable::probe(name, (int)strlen(name));
-  symbolOop signature_symbol   = SymbolTable::probe(sig, (int)strlen(sig));
-  if (name_symbol == NULL || signature_symbol == NULL || !ik->find_local_field(name_symbol, signature_symbol, &fd)) {
-    ResourceMark rm;
-    tty->print_cr("Invalid layout of %s at %s", ik->external_name(), name_symbol->as_C_string());
-    fatal("Invalid layout of c1x4hotspot class");
-  }
-  return fd.offset();
-}
-
-
-class TypeHelper {
-public:
-  jclass        jniHotSpotType;
-  jclass        jniHotSpotTargetMethod;
-  klassOop      HotSpotType;
-  klassOop      HotSpotTargetMethod;
-  int           HotSpotType_klassOop;
-
-  TypeHelper(JNIEnv* jniEnv) {
-    jniHotSpotType = jniEnv->FindClass("com/sun/hotspot/c1x/HotSpotType");
-    jniHotSpotTargetMethod = jniEnv->FindClass("com/sun/hotspot/c1x/HotSpotTargetMethod");
-  }
-
-  void initialize() {
-    HotSpotType = java_lang_Class::as_klassOop(JNIHandles::resolve(jniHotSpotType));
-    HotSpotTargetMethod = java_lang_Class::as_klassOop(JNIHandles::resolve(jniHotSpotTargetMethod));
-    HotSpotType_klassOop = compute_offset(HotSpotType, "klass", "Ljava/lang/Class;");
-  }
-};
-
-
-
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    installCode
-* Signature: (Lcom/sun/hotspot/c1x/HotSpotTargetMethod;)V
-*/
-JNIEXPORT void JNICALL Java_com_sun_hotspot_c1x_VMEntries_installCode(JNIEnv *jniEnv, jobject, jobject targetMethod) {
-  TypeHelper types(jniEnv);
-
-  methodOop m = C1XObjects::getInternalMethod(get_object(jniEnv, targetMethod, "method", "Ljava/lang/reflect/Method;"));
-  jbyteArray code = (jbyteArray)get_object(jniEnv, targetMethod, "code", "[B");
-  jint codeSize = get_int(jniEnv, targetMethod, "codeSize");
-  jintArray relocationOffsetsObj = (jintArray)get_object(jniEnv, targetMethod, "relocationOffsets", "[I");
-  jobjectArray relocationDataObj = (jobjectArray)get_object(jniEnv, targetMethod, "relocationData", "[Ljava/lang/Object;");
-  jint frameSize = get_int(jniEnv, targetMethod, "frameSize");
-
-  assert(codeSize > 0 && codeSize <= ((arrayOop)JNIHandles::resolve(code))->length(), "invalid codeSize");
-
-  CodeOffsets offsets;
-
-  // TODO: This is a hack.. Produce correct entries.
-  offsets.set_value(CodeOffsets::Exceptions, 0);
-  offsets.set_value(CodeOffsets::Deopt, 0);
-
-  offsets.set_value(CodeOffsets::Entry, get_int(jniEnv, targetMethod, "unverifiedEntrypoint"));
-  offsets.set_value(CodeOffsets::Verified_Entry, get_int(jniEnv, targetMethod, "verifiedEntrypoint"));
-
-  VM_ENTRY_MARK;
-  ciEnv *env = CURRENT_ENV;
+BasicType basicTypes[] = { T_BOOLEAN, T_BYTE, T_SHORT, T_CHAR, T_INT, T_FLOAT, T_LONG, T_DOUBLE, T_OBJECT };
+int basicTypeCount = sizeof(basicTypes) / sizeof(BasicType);
 
-  types.initialize();
-
-  env->set_oop_recorder(new OopRecorder(env->arena()));
-  env->set_debug_info(new DebugInformationRecorder(env->oop_recorder()));
-  env->set_dependencies(new Dependencies(env));
-  ciMethod *ciMethodObject = (ciMethod *)env->get_object(m);
-
-  int relocationCount = relocationOffsetsObj == NULL ? 0 : ((arrayOop)JNIHandles::resolve(relocationOffsetsObj))->length();
-
-  CodeBuffer buffer("c1x nmethod", codeSize, relocationCount * relocInfo::length_limit);
-  buffer.initialize_oop_recorder(env->oop_recorder());
-
-  // copy the code into the newly created CodeBuffer
-  CodeSection* instructions = buffer.insts();
-  memcpy(instructions->start(), ((arrayOop)JNIHandles::resolve(code))->base(T_BYTE), codeSize);
-  instructions->set_end(instructions->start() + codeSize);
-
-  if (relocationCount > 0) {
-    jint* relocationOffsets = (jint*)((arrayOop)JNIHandles::resolve(relocationOffsetsObj))->base(T_INT);
-    oop* relocationObjects = (oop*)((arrayOop)JNIHandles::resolve(relocationDataObj))->base(T_OBJECT);
-
-    for (int i=0; i<relocationCount; i++) {
-      address inst = (address)instructions->start() + relocationOffsets[i];
-      u_char inst_byte = *inst;
-      oop obj = relocationObjects[i];
-      assert(obj != NULL, "NULL oop needn't be patched");
-
-      if (java_lang_boxing_object::is_instance(obj, T_LONG)) {
-          address operand = Assembler::locate_operand(inst, Assembler::call32_operand);
-          long dest = obj->long_field(java_lang_boxing_object::value_offset_in_bytes(T_LONG));
-          long disp = dest - (long)(operand + 4);
-          assert(disp == (int) disp, "disp doesn't fit in 32 bits");
-          *((int*)operand) = (int)disp;
-
-          instructions->relocate(inst, runtime_call_Relocation::spec(), Assembler::call32_operand);
-          tty->print_cr("relocating (Long) %02x at %016x/%016x", inst_byte, inst, operand);
-      } else if (obj->is_a(types.HotSpotType)) {
-          address operand = Assembler::locate_operand(inst, Assembler::imm_operand);
-
-          *((jobject*)operand) = JNIHandles::make_local(C1XObjects::getInternalClass(obj->obj_field(types.HotSpotType_klassOop)));
-          instructions->relocate(inst, oop_Relocation::spec_for_immediate(), Assembler::imm_operand);
-          tty->print_cr("relocating (HotSpotType) %02x at %016x/%016x", inst_byte, inst, operand);
-      } else {
-          tty->print_cr("unknown relocation type");
-      }
-    }
-  }
-
-  buffer.print();
-
-  address entry = instructions->start() + offsets.value(CodeOffsets::Verified_Entry);
-
-
-  OopMapSet oop_map_set;
-  ExceptionHandlerTable handler_table;
-  ImplicitExceptionTable inc_table;
-  {
-    ThreadToNativeFromVM t((JavaThread*)THREAD);
-    env->register_method(ciMethodObject, -1, &offsets, 0, &buffer, frameSize, &oop_map_set, &handler_table, &inc_table, NULL, env->comp_level(), false, false);
-
-  }
-}
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    getConfiguration
-* Signature: ()Lcom/sun/hotspot/c1x/HotSpotVMConfig;
-*/
+// public HotSpotVMConfig getConfiguration();
 JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getConfiguration(JNIEnv *env, jobject) {
   tty->print_cr("Java_com_sun_hotspot_c1x_VMEntries_getConfiguration");
   jclass klass = env->FindClass("com/sun/hotspot/c1x/HotSpotVMConfig");
@@ -445,32 +278,521 @@
   set_int(env, config, "stackShadowPages", StackShadowPages);
   set_int(env, config, "hubOffset", oopDesc::klass_offset_in_bytes());
   set_int(env, config, "arrayLengthOffset", arrayOopDesc::length_offset_in_bytes());
-  set_long(env, config, "instanceofStub", (long)Runtime1::entry_for(Runtime1::slow_subtype_check_id));
-  set_long(env, config, "debugStub", (long)warning);
+
+  set_long(env, config, "instanceofStub", C1XObjects::addStub(Runtime1::entry_for(Runtime1::slow_subtype_check_id)));
+  set_long(env, config, "debugStub", C1XObjects::addStub((address)warning));
+  set_long(env, config, "resolveStaticCallStub", C1XObjects::addStub(SharedRuntime::get_resolve_static_call_stub()));
+  jintArray arrayOffsets = env->NewIntArray(basicTypeCount);
+  for (int i=0; i<basicTypeCount; i++) {
+    jint offset = arrayOopDesc::base_offset_in_bytes(basicTypes[i]);
+    env->SetIntArrayRegion(arrayOffsets, i, 1, &offset);
+  }
+  set_int_array(env, config, "arrayOffsets", arrayOffsets);
+  set_int(env, config, "arrayClassElementOffset", objArrayKlass::element_klass_offset_in_bytes() + sizeof(oopDesc));
   return config;
 }
 
+#define C1X_REGISTER_COUNT 32
+
+VMReg get_hotspot_reg(jint c1x_reg) {
+  Register cpu_registers[] = { rax, rcx, rdx, rbx, rsp, rbp, rsi, rdi, r8, r9, r10, r11, r12, r13, r14, r15 };
+  XMMRegister xmm_registers[] = { xmm0, xmm1, xmm2,  xmm3,  xmm4,  xmm5,  xmm6,  xmm7, xmm8, xmm9, xmm10, xmm11, xmm12, xmm13, xmm14, xmm15 };
+
+  if (c1x_reg < 16) {
+    return cpu_registers[c1x_reg]->as_VMReg();
+  } else {
+    assert(c1x_reg < C1X_REGISTER_COUNT, "invalid register number");
+    return xmm_registers[c1x_reg - 16]->as_VMReg();
+  }
+
+}
+
+static OopMap* create_oop_map(jint frame_size, jint parameter_count, oop debug_info) {
+  OopMap* map = new OopMap(frame_size, parameter_count);
+  arrayOop register_map = (arrayOop)CiDebugInfo::registerRefMap(debug_info);
+  arrayOop frame_map = (arrayOop)CiDebugInfo::frameRefMap(debug_info);
+
+  jint register_count = VMRegImpl::stack2reg(0)->value();
+  tty->print_cr("register count: %i", register_count);
+
+  for (jint i=0; i<C1X_REGISTER_COUNT; i++) {
+    unsigned char byte = ((unsigned char*)register_map->base(T_BYTE))[i / 8];
+    bool is_oop = (byte & (1 << (i % 8))) != 0;
+    VMReg reg = get_hotspot_reg(i);
+    if (is_oop) {
+      map->set_oop(reg);
+    } else {
+      map->set_value(reg);
+    }
+  }
+
+  for (jint i=0; i<frame_size; i++) {
+    unsigned char byte = ((unsigned char*)frame_map->base(T_BYTE))[i / 8];
+    bool is_oop = (byte & (1 << (i % 8))) != 0;
+    VMReg reg = VMRegImpl::stack2reg(i);
+    if (is_oop) {
+      map->set_oop(reg);
+    } else {
+      map->set_value(reg);
+    }
+  }
+
+  // TODO parameters?
+  return map;
+}
+
+static ScopeValue* get_hotspot_value(oop value) {
+  fatal("not implemented");
+  if (value->is_a(CiRegisterValue::klass())) {
+    tty->print("register value");
+    value->print();
+  } else if (value->is_a(CiStackSlot::klass())) {
+    tty->print("stack value");
+    value->print();
+  } else {
+    ShouldNotReachHere();
+  }
+}
+
 
+class CodeInstaller {
+private:
+  ciEnv*        _env;
+
+  oop           _citarget_method;
+  oop           _hotspot_method;
+  oop           _name;
+  arrayOop      _sites;
+  CodeOffsets   _offsets;
+
+  arrayOop      _code;
+  jint          _code_size;
+  jint          _frame_size;
+  jint          _parameter_count;
+  jint          _constants_size;
+  jint          _total_size;
+
+  CodeSection*  _instructions;
+  CodeSection*  _constants;
+
+  OopRecorder*  _oop_recorder;
+  DebugInformationRecorder* _debug_recorder;
+  Dependencies* _dependencies;
+
+public:
+
+  // constructor used to create a method
+  CodeInstaller(oop target_method) {
+    VM_ENTRY_MARK;
+    _env = CURRENT_ENV;
+
+    initialize_fields(target_method);
+    assert(_hotspot_method != NULL && _name == NULL, "installMethod needs NON-NULL method and NULL name");
+
+
+    // TODO: This is a hack.. Produce correct entries.
+    _offsets.set_value(CodeOffsets::Exceptions, 0);
+    _offsets.set_value(CodeOffsets::Deopt, 0);
+
+    methodOop method = C1XObjects::get<methodOop>(HotSpotMethod::vmId(_hotspot_method));
+    ciMethod *ciMethodObject = (ciMethod *)_env->get_object(method);
+    _parameter_count = method->size_of_parameters();
+
+    // (very) conservative estimate: each site needs a relocation
+    CodeBuffer buffer("temp c1x method", _total_size, _sites->length() * relocInfo::length_limit);
+    initialize_buffer(buffer);
+    ExceptionHandlerTable handler_table;
+    ImplicitExceptionTable inc_table;
+    {
+      ThreadToNativeFromVM t((JavaThread*)THREAD);
+      _env->register_method(ciMethodObject, -1, &_offsets, 0, &buffer, _frame_size, _debug_recorder->_oopmaps, &handler_table, &inc_table, NULL, _env->comp_level(), false, false);
+    }
+  }
+
+  // constructor used to create a stub
+  CodeInstaller(oop target_method, jlong& id) {
+    VM_ENTRY_MARK;
+    _env = CURRENT_ENV;
+
+    initialize_fields(target_method);
+    assert(_hotspot_method == NULL && _name != NULL, "installMethod needs NON-NULL name and NULL method");
+
+    // (very) conservative estimate: each site needs a relocation
+    CodeBuffer buffer("temp c1x stub", _total_size, _sites->length() * relocInfo::length_limit);
+    initialize_buffer(buffer);
+
+    const char* cname = java_lang_String::as_utf8_string(_name);
+    BufferBlob* blob = BufferBlob::create(strdup(cname), &buffer);          // this is leaking strings... but only a limited number of stubs will be created
+    Disassembler::decode((CodeBlob*)blob);
+    id = C1XObjects::addStub(blob->instructions_begin());
+  }
+
+private:
+  void initialize_fields(oop target_method) {
+    _citarget_method = HotSpotTargetMethod::targetMethod(target_method);
+    _hotspot_method = HotSpotTargetMethod::method(target_method);
+    _name = HotSpotTargetMethod::name(target_method);
+    _sites = (arrayOop)HotSpotTargetMethod::sites(target_method);
+
+    _code = (arrayOop)CiTargetMethod::targetCode(_citarget_method);
+    _code_size = CiTargetMethod::targetCodeSize(_citarget_method);
+    _frame_size = CiTargetMethod::frameSize(_citarget_method);
+
+    // (very) conservative estimate: each site needs a constant section entry
+    _constants_size = _sites->length() * BytesPerLong;
+    _total_size = align_size_up(_code_size, HeapWordSize) + _constants_size;
+  }
+
+  void site_Safepoint(CodeBuffer& buffer, jint pc_offset, oop site) {
+
+  }
+
+  void record_frame(jint pc_offset, oop code_pos, oop frame) {
+    oop caller_pos = CiCodePos::caller(code_pos);
+    if (caller_pos != NULL) {
+      oop caller_frame = CiDebugInfo_Frame::caller(frame);
+      record_frame(pc_offset, caller_pos, caller_frame);
+    } else {
+      assert(frame == NULL || CiDebugInfo_Frame::caller(frame) == NULL, "unexpected layout - different nesting of Frame and CiCodePos");
+    }
+
+    assert(frame == NULL || code_pos == CiDebugInfo_Frame::codePos(frame), "unexpected CiCodePos layout");
+
+    oop hotspot_method = CiCodePos::method(code_pos);
+    methodOop method = C1XObjects::get<methodOop>(HotSpotMethod::vmId(hotspot_method));
+    ciMethod *cimethod = (ciMethod *)_env->get_object(method);
+    jint bci = CiCodePos::bci(code_pos);
+
+    if (frame != NULL) {
+      jint local_count = CiDebugInfo_Frame::numLocals(frame);
+      jint expression_count = CiDebugInfo_Frame::numStack(frame);
+      jint monitor_count = CiDebugInfo_Frame::numLocks(frame);
+      arrayOop values = (arrayOop)CiDebugInfo_Frame::values(frame);
+
+      assert(local_count + expression_count + monitor_count == values->length(), "unexpected values length");
+      assert(monitor_count == 0, "monitors not supported");
+
+      GrowableArray<ScopeValue*>* locals = new GrowableArray<ScopeValue*>();
+      GrowableArray<ScopeValue*>* expressions = new GrowableArray<ScopeValue*>();
+      GrowableArray<MonitorValue*>* monitors = new GrowableArray<MonitorValue*>();
+
+      for (jint i=0; i<values->length(); i++) {
+        ScopeValue* value = get_hotspot_value(((oop*)values->base(T_OBJECT))[i]);
+
+        if (i < local_count) {
+          locals->append(value);
+        } else if (i < local_count + expression_count) {
+          expressions->append(value);
+        } else {
+          ShouldNotReachHere();
+          // monitors->append(value);
+        }
+      }
+      DebugToken* locals_token = _debug_recorder->create_scope_values(locals);
+      DebugToken* expressions_token = _debug_recorder->create_scope_values(expressions);
+      DebugToken* monitors_token = _debug_recorder->create_monitor_values(monitors);
+
+      _debug_recorder->describe_scope(pc_offset, cimethod, bci, false, false, false, locals_token, expressions_token, monitors_token);
+    } else {
+      _debug_recorder->describe_scope(pc_offset, cimethod, bci, false, false, false, NULL, NULL, NULL);
+    }
+  }
+
+  void site_Call(CodeBuffer& buffer, jint pc_offset, oop site) {
+    oop runtime_call = CiTargetMethod_Call::runtimeCall(site);
+    oop hotspot_method = CiTargetMethod_Call::method(site);
+    oop symbol = CiTargetMethod_Call::symbol(site);
+    oop global_stub = CiTargetMethod_Call::globalStubID(site);
+
+    oop debug_info = CiTargetMethod_Call::debugInfo(site);
+    arrayOop stack_map = (arrayOop)CiTargetMethod_Call::stackMap(site);
+    arrayOop register_map = (arrayOop)CiTargetMethod_Call::registerMap(site);
+
+    assert((runtime_call ? 1 : 0) + (hotspot_method ? 1 : 0) + (symbol ? 1 : 0) + (global_stub ? 1 : 0) == 1, "Call site needs exactly one type");
+
+    if (runtime_call != NULL) {
+      tty->print_cr("runtime_call");
+    } else if (global_stub != NULL) {
+      tty->print_cr("global_stub_id");
+    } else if (symbol != NULL) {
+      tty->print_cr("symbol");
+    } else { // method != NULL
+      assert(hotspot_method->is_a(SystemDictionary::HotSpotMethod_klass()), "unexpected RiMethod subclass");
+      methodOop method = C1XObjects::get<methodOop>(HotSpotMethod::vmId(hotspot_method));
+
+      address instruction = _instructions->start() + pc_offset;
+      address operand = Assembler::locate_operand(instruction, Assembler::call32_operand);
+      address next_instruction = Assembler::locate_next_instruction(instruction);
+      jint next_pc_offset = next_instruction - _instructions->start();
+
+      assert(debug_info != NULL, "debug info expected");
+      _debug_recorder->add_safepoint(next_pc_offset, create_oop_map(_frame_size, _parameter_count, debug_info));
+      oop code_pos = CiDebugInfo::codePos(debug_info);
+      oop frame = CiDebugInfo::frame(debug_info);
+      record_frame(next_pc_offset, code_pos, frame);
+
+      if (method->is_static()) {
+        tty->print_cr("static method");
+
+
+        address dest = SharedRuntime::get_resolve_static_call_stub();
+        long disp = dest - next_instruction;
+        assert(disp == (jint) disp, "disp doesn't fit in 32 bits");
+        *((jint*)operand) = (jint)disp;
+
+        _instructions->relocate(instruction, relocInfo::static_call_type, Assembler::call32_operand);
+        tty->print_cr("relocating (Long) %016x/%016x", instruction, operand);
+      } else {
+        tty->print_cr("non-static method");
+        ShouldNotReachHere();
+      }
+
+      _debug_recorder->end_safepoint(pc_offset);
+    }
+  }
+
+  void site_DataPatch(CodeBuffer& buffer, jint pc_offset, oop site) {
+    oop constant = CiTargetMethod_DataPatch::constant(site);
+    oop kind = CiConstant::kind(constant);
+
+    address instruction = _instructions->start() + pc_offset;
+    address operand = Assembler::locate_operand(instruction, Assembler::disp32_operand);
+    address next_instruction = Assembler::locate_next_instruction(instruction);
+
+    switch(CiKind::typeChar(kind)) {
+      case 'z':
+      case 'b':
+      case 's':
+      case 'c':
+      case 'i':
+        fatal("int-sized values not expected in DataPatch");
+        break;
+      case 'f':
+      case 'l':
+      case 'd': {
+        // we don't care if this is a long/double/etc., the primitive field contains the right bits
+        address dest = _constants->end();
+        *(jlong*)dest = CiConstant::primitive(constant);
+        _constants->set_end(dest + BytesPerLong);
+
+        long disp = dest - next_instruction;
+        assert(disp == (jint) disp, "disp doesn't fit in 32 bits");
+        *((jint*)operand) = (jint)disp;
+
+        _instructions->relocate(instruction, section_word_Relocation::spec((address)dest, CodeBuffer::SECT_CONSTS), Assembler::disp32_operand);
+        tty->print_cr("relocating (Float/Long/Double) at %016x/%016x", instruction, operand);
+        break;
+      }
+      case 'a':
+        CiConstant::object(constant)->print();
+        tty->print_cr("DataPatch of object type");
+        break;
+      default:
+        fatal("unexpected CiKind in DataPatch");
+        break;
+    }
+  }
+
+  void site_ExceptionHandler(CodeBuffer& buffer, jint pc_offset, oop site) {
+
+  }
+
+  void site_Mark(CodeBuffer& buffer, jint pc_offset, oop site) {
+    oop id_obj = CiTargetMethod_Mark::id(site);
+    arrayOop references = (arrayOop)CiTargetMethod_Mark::references(site);
+
+    if (id_obj != NULL) {
+      assert(java_lang_boxing_object::is_instance(id_obj, T_INT), "Integer id expected");
+      jint id = id_obj->int_field(java_lang_boxing_object::value_offset_in_bytes(T_INT));
+
+      address instruction = _instructions->start() + pc_offset;
+
+      switch (id) {
+        case C1XCompiler::MARK_UNVERIFIED_ENTRY:
+          _offsets.set_value(CodeOffsets::Entry, pc_offset);
+          break;
+        case C1XCompiler::MARK_VERIFIED_ENTRY:
+          _offsets.set_value(CodeOffsets::Verified_Entry, pc_offset);
+          break;
+        case C1XCompiler::MARK_STATIC_CALL_STUB: {
+          assert(references->length() == 1, "static call stub needs one reference");
+          oop ref = ((oop*)references->base(T_OBJECT))[0];
+          address call_pc = _instructions->start() + CiTargetMethod_Site::pcOffset(ref);
+          _instructions->relocate(instruction, static_stub_Relocation::spec(call_pc));
+          break;
+        }
+      }
+    }
+  }
+
+  // perform data and call relocation on the CodeBuffer
+  void initialize_buffer(CodeBuffer& buffer) {
+    _oop_recorder = new OopRecorder(_env->arena());
+    _env->set_oop_recorder(_oop_recorder);
+    _debug_recorder = new DebugInformationRecorder(_env->oop_recorder());
+    _debug_recorder->set_oopmaps(new OopMapSet());
+    _dependencies = new Dependencies(_env);
+
+    _env->set_oop_recorder(_oop_recorder);
+    _env->set_debug_info(_debug_recorder);
+    _env->set_dependencies(_dependencies);
+    buffer.initialize_oop_recorder(_oop_recorder);
+
+    buffer.initialize_consts_size(_constants_size);
+    _instructions = buffer.insts();
+    _constants = buffer.consts();
+
+    // copy the code into the newly created CodeBuffer
+    memcpy(_instructions->start(), _code->base(T_BYTE), _code_size);
+    _instructions->set_end(_instructions->start() + _code_size);
+
+    oop* sites = (oop*)_sites->base(T_OBJECT);
+    for (int i=0; i<_sites->length(); i++) {
+      oop site = sites[i];
+      jint pc_offset = CiTargetMethod_Site::pcOffset(site);
+
+      if (site->is_a(CiTargetMethod_Safepoint::klass())) {
+        tty->print_cr("safepoint at %i", pc_offset);
+        site_Safepoint(buffer, pc_offset, site);
+      } else if (site->is_a(CiTargetMethod_Call::klass())) {
+        tty->print_cr("call at %i", pc_offset);
+        site_Call(buffer, pc_offset, site);
+      } else if (site->is_a(CiTargetMethod_DataPatch::klass())) {
+        tty->print_cr("datapatch at %i", pc_offset);
+        site_DataPatch(buffer, pc_offset, site);
+      } else if (site->is_a(CiTargetMethod_ExceptionHandler::klass())) {
+        tty->print_cr("exception handler at %i", pc_offset);
+        site_ExceptionHandler(buffer, pc_offset, site);
+      } else if (site->is_a(CiTargetMethod_Mark::klass())) {
+        tty->print_cr("mark at %i", pc_offset);
+        site_Mark(buffer, pc_offset, site);
+      } else {
+        ShouldNotReachHere();
+      }
+    }
+
+/*
+    if (_relocation_count > 0) {
+      jint* relocation_offsets = (jint*)((arrayOop)JNIHandles::resolve(_relocation_offsets))->base(T_INT);
+      oop* relocation_objects = (oop*)((arrayOop)JNIHandles::resolve(_relocation_data))->base(T_OBJECT);
+
+      for (int i = 0; i < _relocation_count; i++) {
+        address inst = (address)instructions->start() + relocation_offsets[i];
+        u_char inst_byte = *inst;
+        oop obj = relocation_objects[i];
+        assert(obj != NULL, "NULL oop needn't be patched");
+
+        if (obj->is_a(SystemDictionary::HotSpotProxy_klass())) {
+          jlong id = com_sun_hotspot_c1x_HotSpotProxy::get_id(obj);
+          switch (id & C1XObjects::TYPE_MASK) {
+            case C1XObjects::CONSTANT: {
+              address operand = Assembler::locate_operand(inst, Assembler::imm_operand);
+
+              *((jobject*)operand) = JNIHandles::make_local(C1XObjects::get<oop>(id));
+              instructions->relocate(inst, oop_Relocation::spec_for_immediate(), Assembler::imm_operand);
+              tty->print_cr("relocating (HotSpotType) %02x at %016x/%016x", inst_byte, inst, operand);
+              break;
+            }
+            case C1XObjects::STUB: {
+              address operand = Assembler::locate_operand(inst, Assembler::call32_operand);
+
+              long dest = (long)C1XObjects::getStub(id);
+              long disp = dest - (long)(operand + 4);
+              assert(disp == (int) disp, "disp doesn't fit in 32 bits");
+              *((int*)operand) = (int)disp;
+
+              instructions->relocate(inst, runtime_call_Relocation::spec(), Assembler::call32_operand);
+              tty->print_cr("relocating (Long) %02x at %016x/%016x", inst_byte, inst, operand);
+              break;
+            }
+          }
+        } else if (java_lang_boxing_object::is_instance(obj)) {
+          address operand = Assembler::locate_operand(inst, Assembler::disp32_operand);
+          long dest = (long)constants->end();
+          if (java_lang_boxing_object::is_instance(obj, T_LONG)) {
+            // tty->print("relocate: %l\n", obj->long_field(java_lang_boxing_object::value_offset_in_bytes(T_LONG)));
+            *(jlong*)constants->end() = obj->long_field(java_lang_boxing_object::value_offset_in_bytes(T_LONG));
+          } else if (java_lang_boxing_object::is_instance(obj, T_DOUBLE)) {
+            // tty->print("relocate: %f\n", obj->double_field(java_lang_boxing_object::value_offset_in_bytes(T_DOUBLE)));
+            *(jdouble*)constants->end() = obj->double_field(java_lang_boxing_object::value_offset_in_bytes(T_DOUBLE));
+          } else if (java_lang_boxing_object::is_instance(obj, T_FLOAT)) {
+            // tty->print("relocate: %f\n", obj->double_field(java_lang_boxing_object::value_offset_in_bytes(T_DOUBLE)));
+            *(jfloat*)constants->end() = obj->float_field(java_lang_boxing_object::value_offset_in_bytes(T_FLOAT));
+          }
+          constants->set_end(constants->end() + 8);
+
+          long disp = dest - (long)(operand + 4);
+          assert(disp == (int) disp, "disp doesn't fit in 32 bits");
+          *((int*)operand) = (int)disp;
+
+          instructions->relocate(inst, section_word_Relocation::spec((address)dest, CodeBuffer::SECT_CONSTS), Assembler::disp32_operand);
+          tty->print_cr("relocating (Long/Double) %02x at %016x/%016x", inst_byte, inst, operand);
+        } else if (obj->is_a(_types.HotSpotTypeResolved)) {
+          address operand = Assembler::locate_operand(inst, Assembler::imm_operand);
+
+          *((jobject*)operand) = JNIHandles::make_local(C1XObjects::get<klassOop>(obj->obj_field(_types.HotSpotTypeResolved_klassOop)));
+          instructions->relocate(inst, oop_Relocation::spec_for_immediate(), Assembler::imm_operand);
+          tty->print_cr("relocating (HotSpotType) %02x at %016x/%016x", inst_byte, inst, operand);
+        } else {
+          tty->print_cr("unknown relocation type");
+          obj->print();
+        }
+      }
+    }*/
+  }
+};
+
+// public void installMethod(HotSpotTargetMethod targetMethod);
+JNIEXPORT void JNICALL Java_com_sun_hotspot_c1x_VMEntries_installMethod(JNIEnv *jniEnv, jobject, jobject targetMethod) {
+  CodeInstaller installer(JNIHandles::resolve(targetMethod));
+}
+
+// public HotSpotProxy installStub(HotSpotTargetMethod targetMethod, String name);
+JNIEXPORT jlong JNICALL Java_com_sun_hotspot_c1x_VMEntries_installStub(JNIEnv *jniEnv, jobject, jobject targetMethod) {
+  jlong id;
+  CodeInstaller installer(JNIHandles::resolve(targetMethod), id);
+  return id;
+}
+
+
+
+
+#define CC (char*)  /*cast a literal from (const char*)*/
+#define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f)
+
+#define PROXY           "J"
+#define TYPE            "Lcom/sun/cri/ri/RiType;"
+#define METHOD          "Lcom/sun/cri/ri/RiMethod;"
+#define SIGNATURE       "Lcom/sun/cri/ri/RiSignature;"
+#define FIELD           "Lcom/sun/cri/ri/RiField;"
+#define CONSTANT_POOL   "Lcom/sun/cri/ri/RiConstantPool;"
+#define TARGET_METHOD   "Lcom/sun/hotspot/c1x/HotSpotTargetMethod;"
+#define CONFIG          "Lcom/sun/hotspot/c1x/HotSpotVMConfig;"
+#define HS_METHOD       "Lcom/sun/hotspot/c1x/HotSpotMethod;"
+#define CI_CONSTANT     "Lcom/sun/cri/ci/CiConstant;"
+#define STRING          "Ljava/lang/String;"
+#define OBJECT          "Ljava/lang/Object;"
+
 JNINativeMethod VMEntries_methods[] = {
-  {CC"RiMethod_code",                   CC"(Ljava/lang/reflect/Method;)[B",                                         FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code)},
-  {CC"RiMethod_maxStackSize",           CC"(Ljava/lang/reflect/Method;)I",                                          FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize)},
-  {CC"RiMethod_maxLocals",              CC"(Ljava/lang/reflect/Method;)I",                                          FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals)},
-  {CC"RiMethod_holder",                 CC"(Ljava/lang/reflect/Method;)Lcom/sun/cri/ri/RiType;",                    FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder)},
-  {CC"RiMethod_signature",              CC"(Ljava/lang/reflect/Method;)Ljava/lang/String;",                         FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature)},
-  {CC"RiMethod_name",                   CC"(Ljava/lang/reflect/Method;)Ljava/lang/String;",                         FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1name)},
-  {CC"RiMethod_accessFlags",            CC"(Ljava/lang/reflect/Method;)I",                                          FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags)},
-  {CC"RiSignature_lookupType",          CC"(Ljava/lang/String;Ljava/lang/Class;)Lcom/sun/cri/ri/RiType;",           FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType)},
-  {CC"RiType_name",                     CC"(Ljava/lang/Class;)Ljava/lang/String;",                                  FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1name)},
-  {CC"RiConstantPool_lookupConstant",   CC"(Ljava/lang/Class;I)Ljava/lang/Object;",                                 FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant)},
-  {CC"RiConstantPool_lookupMethod",     CC"(Ljava/lang/Class;IB)Lcom/sun/cri/ri/RiMethod;",                         FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod)},
-  {CC"RiConstantPool_lookupSignature",  CC"(Ljava/lang/Class;I)Lcom/sun/cri/ri/RiSignature;",                       FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature)},
-  {CC"RiConstantPool_lookupType",       CC"(Ljava/lang/Class;I)Lcom/sun/cri/ri/RiType;",                            FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType)},
-  {CC"RiConstantPool_lookupField",      CC"(Ljava/lang/Class;I)Lcom/sun/cri/ri/RiField;",                           FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField)},
-  {CC"RiType_isArrayClass",             CC"(Ljava/lang/Class;)Z",                                                   FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1isArrayClass)},
-  {CC"RiType_isInstanceClass",          CC"(Ljava/lang/Class;)Z",                                                   FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInstanceClass)},
-  {CC"RiType_isInterface",              CC"(Ljava/lang/Class;)Z",                                                   FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInterface)},
-  {CC"installCode",                     CC"(Lcom/sun/hotspot/c1x/HotSpotTargetMethod;)V",                           FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_installCode)},
-  {CC"getConfiguration",                CC"()Lcom/sun/hotspot/c1x/HotSpotVMConfig;",                                FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_getConfiguration)}
+  {CC"RiMethod_code",                   CC"("PROXY")[B",                    FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code)},
+  {CC"RiMethod_maxStackSize",           CC"("PROXY")I",                     FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize)},
+  {CC"RiMethod_maxLocals",              CC"("PROXY")I",                     FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals)},
+  {CC"RiMethod_holder",                 CC"("PROXY")"TYPE,                  FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder)},
+  {CC"RiMethod_signature",              CC"("PROXY")"STRING,                FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature)},
+  {CC"RiMethod_accessFlags",            CC"("PROXY")I",                     FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags)},
+  {CC"RiSignature_lookupType",          CC"("STRING PROXY")"TYPE,           FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType)},
+  {CC"RiConstantPool_lookupConstant",   CC"("PROXY"I)"CI_CONSTANT,          FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant)},
+  {CC"RiConstantPool_lookupMethod",     CC"("PROXY"IB)"METHOD,              FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod)},
+  {CC"RiConstantPool_lookupSignature",  CC"("PROXY"I)"SIGNATURE,            FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature)},
+  {CC"RiConstantPool_lookupType",       CC"("PROXY"I)"TYPE,                 FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType)},
+  {CC"RiConstantPool_lookupField",      CC"("PROXY"I)"FIELD,                FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField)},
+  {CC"RiType_constantPool",             CC"("PROXY")"CONSTANT_POOL,         FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1constantPool)},
+  {CC"RiType_isArrayClass",             CC"("PROXY")Z",                     FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1isArrayClass)},
+  {CC"RiType_isInstanceClass",          CC"("PROXY")Z",                     FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInstanceClass)},
+  {CC"RiType_isInterface",              CC"("PROXY")Z",                     FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInterface)},
+  {CC"getConfiguration",                CC"()"CONFIG,                       FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_getConfiguration)},
+  {CC"installMethod",                   CC"("TARGET_METHOD")V",             FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_installMethod)},
+  {CC"installStub",                     CC"("TARGET_METHOD")"PROXY,         FN_PTR(Java_com_sun_hotspot_c1x_VMEntries_installStub)}
 };
 
 int VMEntries_methods_count() {
--- a/src/share/vm/c1x/c1x_VMEntries.hpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/c1x/c1x_VMEntries.hpp	Mon Aug 16 18:59:36 2010 -0700
@@ -22,183 +22,9 @@
  *
  */
 
-#define CC (char*)  /*cast a literal from (const char*)*/
-#define FN_PTR(f) CAST_FROM_FN_PTR(void*, &f)
-
-#ifdef SOLARIS
-#define JNIEXPORT
-#define JNICALL
-#endif
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_code
-* Signature: (Ljava/lang/reflect/Method;)[B
-*/
-JNIEXPORT jbyteArray JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1code
-  (JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_maxStackSize
-* Signature: (Ljava/lang/reflect/Method;)I
-*/
-JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxStackSize
-  (JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_maxLocals
-* Signature: (Ljava/lang/reflect/Method;)I
-*/
-JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1maxLocals
-  (JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_holder
-* Signature: (Ljava/lang/reflect/Method;)Lcom/sun/cri/ri/RiType;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1holder
-  (JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_signature
-* Signature: (Ljava/lang/reflect/Method;)Lcom/sun/cri/ri/RiSignature;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1signature
-  (JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_name
-* Signature: (Ljava/lang/reflect/Method;)Ljava/lang/String;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1name
-  (JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiMethod_accessFlags
-* Signature: (Ljava/lang/reflect/Method;)I
-*/
-JNIEXPORT jint JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiMethod_1accessFlags
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiSignature_lookupType
-* Signature: (Ljava/lang/String;Lcom/sun/cri/ri/RiType;)Lcom/sun/cri/ri/RiType;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1lookupType
-    (JNIEnv *, jobject, jstring, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiSignature_symbolToString
-* Signature: (Ljava/lang/Object;)Ljava/lang/String;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiSignature_1symbolToString
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_javaClass
-* Signature: (Ljava/lang/Object;)Ljava/lang/Class;
-*/
-JNIEXPORT jclass JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1javaClass
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_name
-* Signature: (Ljava/lang/Object;)Ljava/lang/String;
-*/
-JNIEXPORT jstring JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1name
-(JNIEnv *, jobject, jobject);
+extern JNINativeMethod VMEntries_methods[];
+int VMEntries_methods_count();
 
 
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupConstant
-* Signature: (Ljava/lang/Object;I)Ljava/lang/Object;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupConstant
-(JNIEnv *, jobject, jobject, jint);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupMethod
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiMethod;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupMethod
-(JNIEnv *, jobject, jobject, jint, jbyte);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupSignature
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiSignature;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupSignature
-(JNIEnv *, jobject, jobject, jint);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupType
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiType;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupType
-(JNIEnv *, jobject, jobject, jint);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiConstantPool_lookupField
-* Signature: (Ljava/lang/Object;I)Lcom/sun/cri/ri/RiField;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiConstantPool_1lookupField
-(JNIEnv *, jobject, jobject, jint);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_isArrayClass
-* Signature: (Ljava/lang/Object;)Z
-*/
-JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isArrayClass
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_isInstanceClass
-* Signature: (Ljava/lang/Object;)Z
-*/
-JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInstanceClass
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    RiType_isInterface
-* Signature: (Ljava/lang/Object;)Z
-*/
-JNIEXPORT jboolean JNICALL Java_com_sun_hotspot_c1x_VMEntries_RiType_1isInterface
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    installCode
-* Signature: (Lcom/sun/hotspot/c1x/HotSpotTargetMethod;)V
-*/
-JNIEXPORT void JNICALL Java_com_sun_hotspot_c1x_VMEntries_installCode
-(JNIEnv *, jobject, jobject);
-
-/*
-* Class:     com_sun_hotspot_c1x_VMEntries
-* Method:    getConfiguration
-* Signature: ()Lcom/sun/hotspot/c1x/HotSpotVMConfig;
-*/
-JNIEXPORT jobject JNICALL Java_com_sun_hotspot_c1x_VMEntries_getConfiguration
-(JNIEnv *, jobject);
 
 
-extern JNINativeMethod VMEntries_methods[];
-int VMEntries_methods_count();
--- a/src/share/vm/c1x/c1x_VMExits.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/c1x/c1x_VMExits.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -25,9 +25,13 @@
 # include "incls/_precompiled.incl"
 # include "incls/_c1x_VMExits.cpp.incl"
 
+// these are *local* handles, and they need to be cleared before compileMethod returns
 KlassHandle     VMExits::_vmExitsKlass;
 Handle          VMExits::_vmExitsObject;
 
+// this is a *global* handle
+jobject         VMExits::_vmExitsPermObject;
+
 KlassHandle &VMExits::vmExitsKlass() {
   if (_vmExitsKlass.is_null()) {
     _vmExitsKlass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_VMExits(), SystemDictionary::java_system_loader(), NULL, Thread::current());
@@ -40,62 +44,72 @@
 
 Handle &VMExits::instance() {
   if (_vmExitsObject.is_null()) {
-    KlassHandle compiler_klass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_Compiler(), SystemDictionary::java_system_loader(), NULL, Thread::current());
-    JavaValue result(T_OBJECT);
-    JavaCallArguments args;
-    JavaCalls::call_static(&result, compiler_klass(), vmSymbols::getVMExits_name(), vmSymbols::getVMExits_signature(), &args, Thread::current());
-    check_pending_exception("Couldn't get VMExits");
-    oop res = (oop)result.get_jobject();
-    _vmExitsObject = res;
+    if (JNIHandles::resolve(_vmExitsPermObject) == NULL) {
+      KlassHandle compiler_klass = SystemDictionary::resolve_or_null(vmSymbols::com_sun_hotspot_c1x_Compiler(), SystemDictionary::java_system_loader(), NULL, Thread::current());
+      JavaValue result(T_OBJECT);
+      JavaCallArguments args;
+      JavaCalls::call_static(&result, compiler_klass(), vmSymbols::getVMExits_name(), vmSymbols::getVMExits_signature(), &args, Thread::current());
+      check_pending_exception("Couldn't get VMExits");
+      oop res = (oop)result.get_jobject();
+      _vmExitsPermObject = JNIHandles::make_global(res);
+    }
+    _vmExitsObject = JNIHandles::resolve(_vmExitsPermObject);
   }
   return _vmExitsObject;
 }
 
-void VMExits::compileMethod(methodOop method, int entry_bci) {
-  assert(method != NULL, "just checking");
-  oop reflected_method = C1XObjects::getReflectedMethod(method, Thread::current());
+void VMExits::compileMethod(jlong methodVmId, Handle name, int entry_bci) {
+  assert(!name.is_null(), "just checking");
+  Thread* THREAD = Thread::current();
   JavaValue result(T_VOID);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(reflected_method);
+  args.push_long(methodVmId);
+  args.push_oop(name);
   args.push_int(entry_bci);
-  JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::compileMethod_name(), vmSymbols::compileMethod_signature(), &args, Thread::current());
+  JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::compileMethod_name(), vmSymbols::compileMethod_signature(), &args, THREAD);
   check_pending_exception("Error while calling compileMethod");
+
+  // TODO hack hack
+  _vmExitsKlass = KlassHandle();
+  _vmExitsObject = Handle();
 }
 
-oop VMExits::createRiMethod(methodOop m, TRAPS) {
-  assert(m != NULL, "just checking");
-  oop reflected_method = C1XObjects::getReflectedMethod(m, CHECK_0);
+oop VMExits::createRiMethod(jlong vmId, Handle name, TRAPS) {
+  assert(!name.is_null(), "just checking");
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(reflected_method);
+  args.push_long(vmId);
+  args.push_oop(name);
   JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiMethod_name(), vmSymbols::createRiMethod_signature(), &args, THREAD);
   check_pending_exception("Error while calling createRiMethod");
   return (oop)result.get_jobject();
 }
 
-oop VMExits::createRiField(oop field_holder, symbolOop field_name, oop field_type, int index, TRAPS) {
-  assert(field_holder != NULL && field_name != NULL && field_type != NULL, "just checking");
-  oop name = C1XObjects::getReflectedSymbol(field_name, CHECK_0);
+oop VMExits::createRiField(Handle holder, Handle name, Handle type, int index, TRAPS) {
+  assert(!holder.is_null(), "just checking");
+  assert(!name.is_null(), "just checking");
+  assert(!type.is_null(), "just checking");
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(field_holder);
+  args.push_oop(holder);
   args.push_oop(name);
-  args.push_oop(field_type);
+  args.push_oop(type);
   args.push_int(index);
   JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiField_name(), vmSymbols::createRiField_signature(), &args, THREAD);
   check_pending_exception("Error while calling createRiField");
   return (oop)result.get_jobject();
 }
 
-oop VMExits::createRiType(klassOop k, TRAPS) {
-  assert(k != NULL, "just checking");
+oop VMExits::createRiType(jlong vmId, Handle name, TRAPS) {
+  assert(!name.is_null(), "just checking");
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(C1XObjects::getReflectedClass(k));
+  args.push_long(vmId);
+  args.push_oop(name);
   JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiType_name(), vmSymbols::createRiType_signature(), &args, THREAD);
   check_pending_exception("Error while calling createRiType");
   return (oop)result.get_jobject();
@@ -111,35 +125,34 @@
   return (oop)result.get_jobject();
 }
 
-oop VMExits::createRiTypeUnresolved(symbolOop name, klassOop accessor, TRAPS) {
-//  assert(name != NULL && accessor != NULL, "just checking");
+oop VMExits::createRiTypeUnresolved(Handle name, jlong accessingClassVmId, TRAPS) {
+  assert(!name.is_null(), "just checking");
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(C1XObjects::getReflectedSymbol(name, THREAD));
-  args.push_oop(C1XObjects::getReflectedClass(accessor));
+  args.push_oop(name);
+  args.push_long(accessingClassVmId);
   JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiTypeUnresolved_name(), vmSymbols::createRiTypeUnresolved_signature(), &args, THREAD);
   check_pending_exception("Error while calling createRiTypeUnresolved");
   return (oop)result.get_jobject();
 }
 
-oop VMExits::createRiConstantPool(constantPoolOop cp, TRAPS) {
-  assert(cp != NULL, "just checking");
+oop VMExits::createRiConstantPool(jlong vmId, TRAPS) {
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(C1XObjects::getReflectedClass(cp->klass()));
+  args.push_long(vmId);
   JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiConstantPool_name(), vmSymbols::createRiConstantPool_signature(), &args, THREAD);
   check_pending_exception("Error while calling createRiConstantPool");
   return (oop)result.get_jobject();
 }
 
-oop VMExits::createRiSignature(symbolOop symbol, TRAPS) {
-  assert(symbol != NULL, "just checking");
+oop VMExits::createRiSignature(Handle name, TRAPS) {
+  assert(!name.is_null(), "just checking");
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(C1XObjects::getReflectedSymbol(symbol, THREAD));
+  args.push_oop(name);
   JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createRiSignature_name(), vmSymbols::createRiSignature_signature(), &args, THREAD);
   check_pending_exception("Error while calling createRiSignature");
   return (oop)result.get_jobject();
@@ -188,12 +201,12 @@
   return (oop)result.get_jobject();
 }
 
-oop VMExits::createCiConstantObject(oop value, TRAPS) {
+oop VMExits::createCiConstantObject(jlong vmId, TRAPS) {
   JavaValue result(T_OBJECT);
   JavaCallArguments args;
   args.push_oop(instance());
-  args.push_oop(value);
-  JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createCiConstantObject_name(), vmSymbols::createCiConstantObject_signature(), &args, THREAD);
+  args.push_long(vmId);
+  JavaCalls::call_interface(&result, vmExitsKlass(), vmSymbols::createCiConstantObject_name(), vmSymbols::createCiConstantLong_signature(), &args, THREAD);
   check_pending_exception("Error while calling createCiConstantObject");
   return (oop)result.get_jobject();
 }
--- a/src/share/vm/c1x/c1x_VMExits.hpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/c1x/c1x_VMExits.hpp	Mon Aug 16 18:59:36 2010 -0700
@@ -21,49 +21,57 @@
  * have any questions.
  *
  */
-/*
-class OopCache : public AllStatic {
 
-private:
-  static Handle* handles;
-  static Handle* mirrors;
-  static int capacity;
-  static int used;
-
-public:
-  static void initialize();
-  static Handle mirror(oop internal_object);
-  static Handle resolve(oop mirror);
-
-};
-*/
 class VMExits : public AllStatic {
 
 private:
-
   static KlassHandle _vmExitsKlass;
   static Handle _vmExitsObject;
-
-public:
+  static jobject _vmExitsPermObject;
 
   static KlassHandle& vmExitsKlass();
   static Handle& instance();
 
+public:
 
-  static void compileMethod(methodOop method, int entry_bci);
+  // public abstract void compileMethod(HotSpotProxy method, String name, int entry_bci);
+  static void compileMethod(jlong vmId, Handle name, int entry_bci);
+
+  // public abstract RiMethod createRiMethod(HotSpotProxy method, String name);
+  static oop createRiMethod(jlong vmId, Handle name, TRAPS);
+
+  // public abstract RiField createRiField(RiType holder, String name, RiType type, int offset);
+  static oop createRiField(Handle holder, Handle name, Handle type, int index, TRAPS);
+
+  // public abstract RiType createRiType(HotSpotProxy klassOop, String name);
+  static oop createRiType(jlong vmId, Handle name, TRAPS);
+
+  // public abstract RiConstantPool createRiConstantPool(HotSpotProxy constantPool);
+  static oop createRiConstantPool(jlong vmId, TRAPS);
+
+  // public abstract RiType createRiTypeUnresolved(String name, HotSpotProxy accessingKlass);
+  static oop createRiTypeUnresolved(Handle name, jlong accessingClassVmId, TRAPS);
 
-  static oop createRiMethod(methodOop method, TRAPS);
-  static oop createRiField(oop field_holder, symbolOop field_name, oop field_type, int index, TRAPS);
-  static oop createRiType(klassOop k, TRAPS);
-  static oop createRiConstantPool(constantPoolOop cp, TRAPS);
-  static oop createRiTypeUnresolved(symbolOop name, klassOop accessor, TRAPS);
-  static oop createRiSignature(symbolOop name, TRAPS);
+  // public abstract RiType createRiTypePrimitive(int basicType);
+  static oop createRiTypePrimitive(int basicType, TRAPS);
+
+  // public abstract RiSignature createRiSignature(String signature);
+  static oop createRiSignature(Handle name, TRAPS);
+
+  // public abstract CiConstant createCiConstantInt(int value);
   static oop createCiConstantInt(jint value, TRAPS);
+
+  // public abstract CiConstant createCiConstantLong(long value);
   static oop createCiConstantLong(jlong value, TRAPS);
+
+  // public abstract CiConstant createCiConstantFloat(float value);
   static oop createCiConstantFloat(jfloat value, TRAPS);
+
+  // public abstract CiConstant createCiConstantDouble(double value);
   static oop createCiConstantDouble(jdouble value, TRAPS);
-  static oop createCiConstantObject(oop value, TRAPS);
-  static oop createRiTypePrimitive(int basic_type, TRAPS);
+
+  // public abstract CiConstant createCiConstantObject(HotSpotProxy value);
+  static oop createCiConstantObject(jlong vmId, TRAPS);
 };
 
 inline void check_pending_exception(const char* message) {
--- a/src/share/vm/classfile/systemDictionary.hpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/classfile/systemDictionary.hpp	Mon Aug 16 18:59:36 2010 -0700
@@ -170,6 +170,27 @@
   template(Short_klass,                  java_lang_Short,                Pre) \
   template(Integer_klass,                java_lang_Integer,              Pre) \
   template(Long_klass,                   java_lang_Long,                 Pre) \
+                                                                              \
+  template(HotSpotTypeResolved_klass,    com_sun_hotspot_c1x_HotSpotTypeResolved, Pre)                  \
+  template(HotSpotMethod_klass,          com_sun_hotspot_c1x_HotSpotMethod, Pre)                        \
+  template(HotSpotTargetMethod_klass,    com_sun_hotspot_c1x_HotSpotTargetMethod, Pre)                  \
+  template(CiTargetMethod_klass,         com_sun_cri_ci_CiTargetMethod, Pre)                            \
+  template(CiTargetMethod_Site_klass,    com_sun_cri_ci_CiTargetMethod_Site, Pre)                       \
+  template(CiTargetMethod_Call_klass,    com_sun_cri_ci_CiTargetMethod_Call, Pre)                       \
+  template(CiTargetMethod_DataPatch_klass, com_sun_cri_ci_CiTargetMethod_DataPatch, Pre)                \
+  template(CiTargetMethod_Safepoint_klass, com_sun_cri_ci_CiTargetMethod_Safepoint, Pre)                \
+  template(CiTargetMethod_ExceptionHandler_klass, com_sun_cri_ci_CiTargetMethod_ExceptionHandler, Pre)  \
+  template(CiTargetMethod_Mark_klass,    com_sun_cri_ci_CiTargetMethod_Mark, Pre)                       \
+  template(CiDebugInfo_klass,            com_sun_cri_ci_CiDebugInfo, Pre)                               \
+  template(CiDebugInfo_Frame_klass,      com_sun_cri_ci_CiDebugInfo_Frame, Pre)                         \
+  template(CiRegisterValue_klass,        com_sun_cri_ci_CiRegisterValue, Pre)                           \
+  template(CiStackSlot_klass,            com_sun_cri_ci_CiStackSlot, Pre)                               \
+  template(CiCodePos_klass,              com_sun_cri_ci_CiCodePos, Pre)                                 \
+  template(CiConstant_klass,             com_sun_cri_ci_CiConstant, Pre)                                \
+  template(CiKind_klass,                 com_sun_cri_ci_CiKind, Pre)                                    \
+  template(CiRuntimeCall_klass,          com_sun_cri_ci_CiRuntimeCall, Pre)                             \
+  template(RiMethod_klass,               com_sun_cri_ri_RiMethod, Pre)                                  \
+
   /*end*/
 
 
--- a/src/share/vm/classfile/vmSymbols.hpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/classfile/vmSymbols.hpp	Mon Aug 16 18:59:36 2010 -0700
@@ -246,26 +246,45 @@
                                                                                                                         \
   /* support for C1X */                                                                                                 \
   template(com_sun_hotspot_c1x_VMExits,               "com/sun/hotspot/c1x/VMExits")                                    \
+  template(com_sun_hotspot_c1x_HotSpotMethod,         "com/sun/hotspot/c1x/HotSpotMethod")                              \
+  template(com_sun_hotspot_c1x_HotSpotTargetMethod,   "com/sun/hotspot/c1x/HotSpotTargetMethod")                        \
+  template(com_sun_hotspot_c1x_HotSpotTypeResolved,   "com/sun/hotspot/c1x/HotSpotTypeResolved")                        \
+  template(com_sun_hotspot_c1x_Compiler,              "com/sun/hotspot/c1x/Compiler")                                   \
   template(com_sun_cri_ri_RiMethod,                   "com/sun/cri/ri/RiMethod")                                        \
   template(com_sun_cri_ri_RiField,                    "com/sun/cri/ri/RiField")                                         \
   template(com_sun_cri_ri_RiType,                     "com/sun/cri/ri/RiType")                                          \
   template(com_sun_cri_ri_RiConstantPool,             "com/sun/cri/ri/RiConstantPool")                                  \
+  template(com_sun_cri_ci_CiTargetMethod,             "com/sun/cri/ci/CiTargetMethod")                                  \
+  template(com_sun_cri_ci_CiTargetMethod_Site,        "com/sun/cri/ci/CiTargetMethod$Site")                             \
+  template(com_sun_cri_ci_CiTargetMethod_Call,        "com/sun/cri/ci/CiTargetMethod$Call")                             \
+  template(com_sun_cri_ci_CiTargetMethod_DataPatch,   "com/sun/cri/ci/CiTargetMethod$DataPatch")                        \
+  template(com_sun_cri_ci_CiTargetMethod_Safepoint,   "com/sun/cri/ci/CiTargetMethod$Safepoint")                        \
+  template(com_sun_cri_ci_CiTargetMethod_ExceptionHandler, "com/sun/cri/ci/CiTargetMethod$ExceptionHandler")            \
+  template(com_sun_cri_ci_CiTargetMethod_Mark,        "com/sun/cri/ci/CiTargetMethod$Mark")                             \
+  template(com_sun_cri_ci_CiDebugInfo,                "com/sun/cri/ci/CiDebugInfo")                                     \
+  template(com_sun_cri_ci_CiDebugInfo_Frame,          "com/sun/cri/ci/CiDebugInfo$Frame")                               \
+  template(com_sun_cri_ci_CiRegisterValue,            "com/sun/cri/ci/CiRegisterValue")                                 \
+  template(com_sun_cri_ci_CiStackSlot,                "com/sun/cri/ci/CiStackSlot")                                     \
+  template(com_sun_cri_ci_CiCodePos,                  "com/sun/cri/ci/CiCodePos")                                       \
+  template(com_sun_cri_ci_CiConstant,                 "com/sun/cri/ci/CiConstant")                                      \
+  template(com_sun_cri_ci_CiKind,                     "com/sun/cri/ci/CiKind")                                          \
+  template(com_sun_cri_ci_CiRuntimeCall,              "com/sun/cri/ci/CiRuntimeCall")                                   \
   template(compileMethod_name,                        "compileMethod")                                                  \
-  template(compileMethod_signature,                   "(Ljava/lang/reflect/Method;I)V")                                 \
+  template(compileMethod_signature,                   "(JLjava/lang/String;I)V")                                        \
   template(createRiMethod_name,                       "createRiMethod")                                                 \
-  template(createRiMethod_signature,                  "(Ljava/lang/reflect/Method;)Lcom/sun/cri/ri/RiMethod;")          \
+  template(createRiMethod_signature,                  "(JLjava/lang/String;)Lcom/sun/cri/ri/RiMethod;")                 \
   template(createRiSignature_name,                    "createRiSignature")                                              \
   template(createRiSignature_signature,               "(Ljava/lang/String;)Lcom/sun/cri/ri/RiSignature;")               \
   template(createRiField_name,                        "createRiField")                                                  \
   template(createRiField_signature,                   "(Lcom/sun/cri/ri/RiType;Ljava/lang/String;Lcom/sun/cri/ri/RiType;I)Lcom/sun/cri/ri/RiField;") \
   template(createRiType_name,                         "createRiType")                                                   \
-  template(createRiType_signature,                    "(Ljava/lang/Class;)Lcom/sun/cri/ri/RiType;")                     \
+  template(createRiType_signature,                    "(JLjava/lang/String;)Lcom/sun/cri/ri/RiType;")                   \
   template(createRiTypePrimitive_name,                "createRiTypePrimitive")                                          \
   template(createRiTypePrimitive_signature,           "(I)Lcom/sun/cri/ri/RiType;")                                     \
   template(createRiTypeUnresolved_name,               "createRiTypeUnresolved")                                         \
-  template(createRiTypeUnresolved_signature,          "(Ljava/lang/String;Ljava/lang/Class;)Lcom/sun/cri/ri/RiType;")   \
+  template(createRiTypeUnresolved_signature,          "(Ljava/lang/String;J)Lcom/sun/cri/ri/RiType;")                   \
   template(createRiConstantPool_name,                 "createRiConstantPool")                                           \
-  template(createRiConstantPool_signature,            "(Ljava/lang/Class;)Lcom/sun/cri/ri/RiConstantPool;")             \
+  template(createRiConstantPool_signature,            "(J)Lcom/sun/cri/ri/RiConstantPool;")                             \
   template(createCiConstantInt_name,                  "createCiConstantInt")                                            \
   template(createCiConstantInt_signature,             "(I)Lcom/sun/cri/ci/CiConstant;")                                 \
   template(createCiConstantLong_name,                 "createCiConstantLong")                                           \
@@ -275,8 +294,6 @@
   template(createCiConstantDouble_name,               "createCiConstantDouble")                                         \
   template(createCiConstantDouble_signature,          "(D)Lcom/sun/cri/ci/CiConstant;")                                 \
   template(createCiConstantObject_name,               "createCiConstantObject")                                         \
-  template(createCiConstantObject_signature,          "(Ljava/lang/Object;)Lcom/sun/cri/ci/CiConstant;")                \
-  template(com_sun_hotspot_c1x_Compiler,              "com/sun/hotspot/c1x/Compiler")                                   \
   template(getVMExits_name,                           "getVMExits")                                                     \
   template(getVMExits_signature,                      "()Lcom/sun/hotspot/c1x/VMExits;")                                \
                                                                                                                         \
@@ -373,6 +390,7 @@
   template(form_name,                                 "form")                                     \
   template(erasedType_name,                           "erasedType")                               \
   template(append_name,                               "append")                                   \
+  template(id_name,                                   "id")                                       \
                                                                                                   \
   /* non-intrinsic name/signature pairs: */                                                       \
   template(register_method_name,                      "register")                                 \
--- a/src/share/vm/code/compiledIC.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/code/compiledIC.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -514,7 +514,7 @@
   NativeJump*        jump          = nativeJump_at(method_holder->next_instruction_address());
 
   assert(method_holder->data()    == 0           || method_holder->data()    == (intptr_t)callee(), "a) MT-unsafe modification of inline cache");
-  assert(jump->jump_destination() == (address)-1 || jump->jump_destination() == entry, "b) MT-unsafe modification of inline cache");
+  assert(UseC1X || jump->jump_destination() == (address)-1 || jump->jump_destination() == entry, "b) MT-unsafe modification of inline cache");
 
   // Update stub
   method_holder->set_data((intptr_t)callee());
--- a/src/share/vm/code/nmethod.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/code/nmethod.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -2200,7 +2200,7 @@
         // information in a table.
         break;
     }
-    assert(stub == NULL || stub_contains(stub), "static call stub outside stub section");
+    assert(UseC1X || stub == NULL || stub_contains(stub), "static call stub outside stub section");
   }
 }
 
--- a/src/share/vm/interpreter/rewriter.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/interpreter/rewriter.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -177,12 +177,14 @@
       switch (c) {
         case Bytecodes::_lookupswitch   : {
 #ifndef CC_INTERP
-          Bytecode_lookupswitch* bc = Bytecode_lookupswitch_at(bcp);
-          bc->set_code(
-            bc->number_of_pairs() < BinarySwitchThreshold
-            ? Bytecodes::_fast_linearswitch
-            : Bytecodes::_fast_binaryswitch
-          );
+          if (!UseC1X) {
+            Bytecode_lookupswitch* bc = Bytecode_lookupswitch_at(bcp);
+            bc->set_code(
+              bc->number_of_pairs() < BinarySwitchThreshold
+              ? Bytecodes::_fast_linearswitch
+              : Bytecodes::_fast_binaryswitch
+            );
+          }
 #endif
           break;
         }
--- a/src/share/vm/interpreter/templateTable.cpp	Mon Aug 02 15:44:38 2010 -0700
+++ b/src/share/vm/interpreter/templateTable.cpp	Mon Aug 16 18:59:36 2010 -0700
@@ -427,7 +427,8 @@
   def(Bytecodes::_jsr                 , ubcp|disp|____|____, vtos, vtos, jsr                 ,  _           ); // result is not an oop, so do not transition to atos
   def(Bytecodes::_ret                 , ubcp|disp|____|____, vtos, vtos, ret                 ,  _           );
   def(Bytecodes::_tableswitch         , ubcp|disp|____|____, itos, vtos, tableswitch         ,  _           );
-  def(Bytecodes::_lookupswitch        , ubcp|disp|____|____, itos, itos, lookupswitch        ,  _           );
+//  def(Bytecodes::_lookupswitch        , ubcp|disp|____|____, itos, itos, lookupswitch        ,  _           );
+  def(Bytecodes::_lookupswitch        , ubcp|disp|____|____, itos, vtos, fast_linearswitch   ,  _           );
   def(Bytecodes::_ireturn             , ____|disp|clvm|____, itos, itos, _return             , itos         );
   def(Bytecodes::_lreturn             , ____|disp|clvm|____, ltos, ltos, _return             , ltos         );
   def(Bytecodes::_freturn             , ____|disp|clvm|____, ftos, ftos, _return             , ftos         );