JVM test

Dependencies:   mbed

Revision:
9:4ea7773ea2b0
Parent:
6:b9d0d96b052f
diff -r d9e205196dfc -r 4ea7773ea2b0 ravem.cpp
--- a/ravem.cpp	Thu Aug 29 14:15:47 2013 +0000
+++ b/ravem.cpp	Sat Sep 07 04:59:10 2013 +0000
@@ -637,6 +637,11 @@
 				setIntegerToStack(cl,getIntegerFromOperandStack(cl) + getIntegerFromOperandStack(cl));
 				break;
 
+			case JAVA_iinc:
+				cl.local_reg[*bc_seek(now_code + 1, 1)] = cl.local_reg[*bc_seek(now_code + 1, 1)] + (int8_t)(*bc_seek(now_code + 2, 1));
+				now_code = now_code + 3;
+				break;
+
 			case JAVA_getstatic:
 				now_code = now_code + 3;
 				break;
@@ -645,6 +650,7 @@
 				cl = getField(cl,(*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1));
 				now_code = now_code + 3;
 				break;
+			
 			case JAVA_putfield:
 				cl = putField(cl,(*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1));
 				now_code = now_code + 3;
@@ -660,6 +666,42 @@
 				cl = changeStackType(cl, Stack_CharType);	
 				break;
 			
+			case JAVA_if_icmplt:
+				if(getIntegerFromOperandStack(cl) > getIntegerFromOperandStack(cl)){
+					now_code = now_code +(int16_t)((*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1)); // goto
+					break;
+				}else{
+					now_code = now_code + 3;
+ 				}
+				break;
+			
+			case JAVA_if_icmpge:
+				if(getIntegerFromOperandStack(cl) <= getIntegerFromOperandStack(cl)){
+					now_code = now_code +(int16_t)((*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1)); // goto
+					break;
+				}else{
+					now_code = now_code + 3;
+ 				}				
+				break;
+				
+			case JAVA_if_icmpgt:
+				if(getIntegerFromOperandStack(cl) < getIntegerFromOperandStack(cl)){
+					now_code = now_code +(int16_t)((*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1)); // goto
+					break;
+				}else{
+					now_code = now_code + 3;
+ 				}
+				break;
+			
+			case JAVA_if_icmple:
+				if(getIntegerFromOperandStack(cl) >= getIntegerFromOperandStack(cl)){
+					now_code = now_code +(int16_t)((*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1)); // goto
+					break;
+				}else{
+					now_code = now_code + 3;
+ 				}
+				break;
+								
 			case JAVA_goto:
 				now_code = now_code +(int16_t)((*bc_seek(now_code + 1, 1) << 8) + *bc_seek(now_code + 2, 1));
 				break;
@@ -707,6 +749,7 @@
 	return cl;
 }
 
+
 class_st invokespecial_callFunction(class_st cl, int cp_num){
 
 	char* func_name = (char *)seekNameAndType_name(cp_num).stack_pt;