[vmkit-commits] [vmkit] r199065 - Implements pop2 and wide, I have still 9 opcode to implements.

Gael Thomas gael.thomas at lip6.fr
Sun Jan 12 14:07:35 PST 2014


Author: gthomas
Date: Sun Jan 12 16:07:35 2014
New Revision: 199065

URL: http://llvm.org/viewvc/llvm-project?rev=199065&view=rev
Log:
Implements pop2 and wide, I have still 9 opcode to implements.

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

Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=199065&r1=199064&r2=199065&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Sun Jan 12 16:07:35 2014
@@ -314,8 +314,8 @@ void J3::printStackTrace() {
 
 		if(sf) {
 			J3Method* m = ((J3MethodCode*)sf->unit()->getSymbol(sf->functionName()))->self;
-			fprintf(stderr, "    in %s %s::%s index %d\n", m->signature()->name()->cStr(), m->cl()->name()->cStr(), m->name()->cStr(),
-							sf->sourceIndex());
+			fprintf(stderr, "    in %s::%s%s index %d\n", m->cl()->name()->cStr(), m->name()->cStr(),
+							m->signature()->name()->cStr(), sf->sourceIndex());
 		} else {
 			Dl_info info;
 			

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=199065&r1=199064&r2=199065&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3codegen.cc Sun Jan 12 16:07:35 2014
@@ -1144,7 +1144,11 @@ void J3CodeGen::translate() {
 				stack.pop();
 				break;
 
-			case J3Cst::BC_pop2: nyi();                   /* 0x58 */
+			case J3Cst::BC_pop2:                          /* 0x58 */
+				val1 = stack.pop();
+				if(!val1->getType()->isDoubleTy() && !val1->getType()->isIntegerTy(64))
+					stack.pop();
+				break;
 
 			case J3Cst::BC_dup:                           /* 0x59 */
 				stack.push(stack.top());
@@ -1520,7 +1524,10 @@ void J3CodeGen::translate() {
 				monitorExit(stack.pop());
 				break;
 
-			case J3Cst::BC_wide: nyi();                   /* 0xc4 */
+			case J3Cst::BC_wide:                          /* 0xc4 */
+				isWide = 1;
+				break;
+
 			case J3Cst::BC_multianewarray: nyi();         /* 0xc5 */
 			case J3Cst::BC_ifnull:                        /* 0xc6 */
 				condBr(builder->CreateIsNull(stack.pop()));





More information about the vmkit-commits mailing list