[vmkit-commits] [vmkit] r198299 - Implement i2c

Gael Thomas gael.thomas at lip6.fr
Thu Jan 2 03:58:34 PST 2014


Author: gthomas
Date: Thu Jan  2 05:58:33 2014
New Revision: 198299

URL: http://llvm.org/viewvc/llvm-project?rev=198299&view=rev
Log:
Implement i2c

Modified:
    vmkit/branches/mcjit/lib/j3/openjdk/j3unsafe.cc
    vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
    vmkit/branches/mcjit/lib/j3/vm/j3options.cc

Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3unsafe.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3unsafe.cc?rev=198299&r1=198298&r2=198299&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3unsafe.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3unsafe.cc Thu Jan  2 05:58:33 2014
@@ -51,6 +51,16 @@ extern "C" {
 																																	 jobject handle, jlong offset, jobject orig, jobject value) {
 		return handle->rawCASObject(offset, orig, value) == orig;
 	}
+
+	JNIEXPORT bool JNICALL Java_sun_misc_Unsafe_compareAndSwapInt(JNIEnv* env, jobject unsafe, 
+																																jobject handle, jlong offset, jint orig, jint value) {
+		return handle->rawCASInteger(offset, orig, value) == orig;
+	}
+
+	JNIEXPORT jint JNICALL Java_sun_misc_Unsafe_getIntVolatile(JNIEnv* env, jobject unsafe, 
+																														 jobject handle, jlong offset) {
+		return handle->rawGetInteger(offset);
+	}
 }
 
 

Modified: vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc?rev=198299&r1=198298&r2=198299&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Thu Jan  2 05:58:33 2014
@@ -1327,7 +1327,10 @@ void J3CodeGen::translate() {
 			case J3Cst::BC_d2l: nyi();                    /* 0x8f */
 			case J3Cst::BC_d2f: nyi();                    /* 0x90 */
 			case J3Cst::BC_i2b: nyi();                    /* 0x91 */
-			case J3Cst::BC_i2c: nyi();                    /* 0x92 */
+			case J3Cst::BC_i2c:                           /* 0x92 */
+				stack.push(builder->CreateZExt(builder->CreateTrunc(stack.pop(), builder->getInt16Ty()), builder->getInt32Ty()));
+				break;
+
 			case J3Cst::BC_i2s: nyi();                    /* 0x93 */
 
 			case J3Cst::BC_lcmp:                          /* 0x94 */

Modified: vmkit/branches/mcjit/lib/j3/vm/j3options.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3options.cc?rev=198299&r1=198298&r2=198299&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3options.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3options.cc Thu Jan  2 05:58:33 2014
@@ -15,7 +15,7 @@ J3Options::J3Options() {
 
 	debugEnterIndent = 1;
 
-	debugExecute = 0;
+	debugExecute = 2;
 	debugLoad = 0;
 	debugResolve = 0;
 	debugIniting = 0;





More information about the vmkit-commits mailing list