better networking support
[nestedvm.git] / src / org / ibex / nestedvm / Interpreter.java
index 45d433c..df9a111 100644 (file)
@@ -94,7 +94,7 @@ public class Interpreter extends UnixRuntime implements Cloneable {
         int tmp, addr; // temporaries
         
         r[ZERO] = 0;
-    
+        
         switch(op) {
             case 0: {
                 switch(subcode) {
@@ -125,7 +125,7 @@ public class Interpreter extends UnixRuntime implements Cloneable {
                         continue OUTER;
                     case 12: // SYSCALL
                         this.pc = pc;
-                        r[V0] = syscall(r[V0],r[A0],r[A1],r[A2],r[A3]);
+                        r[V0] = syscall(r[V0],r[A0],r[A1],r[A2],r[A3],r[T0],r[T1]);
                         if(state != RUNNING) { this.pc = nextPC; break OUTER; }
                         break;
                     case 13: // BREAK
@@ -143,7 +143,7 @@ public class Interpreter extends UnixRuntime implements Cloneable {
                         lo = r[rs];
                         break;
                     case 24: { // MULT
-                        long hilo = (long)(r[rs]) * ((long)r[rt]);
+                        long hilo = ((long)r[rs]) * ((long)r[rt]);
                         hi = (int) (hilo >>> 32);
                         lo = (int) hilo;
                         break;
@@ -363,6 +363,9 @@ public class Interpreter extends UnixRuntime implements Cloneable {
                             case 60: // C.LT.S
                                 setFC(getFloat(fs) < getFloat(ft));
                                 break;
+                            case 62: // C.LE.S
+                                setFC(getFloat(fs) <= getFloat(ft));
+                                break;   
                             default: throw new ExecutionException("Invalid Instruction 17/" + rs + "/" + subcode + " at " + sourceLine(pc));
                         }
                         break;