X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fibex%2Fnestedvm%2FInterpreter.java;h=d0e737983164f478365b4e478a077650af2ccb09;hb=79be771d6242d4ed6831d737c701587e87528572;hp=45d433c417fe9737e458e57d663f03c950b837d1;hpb=7e1e0dc49707b777e71e69c23c0a48e0a2665a4b;p=nestedvm.git diff --git a/src/org/ibex/nestedvm/Interpreter.java b/src/org/ibex/nestedvm/Interpreter.java index 45d433c..d0e7379 100644 --- a/src/org/ibex/nestedvm/Interpreter.java +++ b/src/org/ibex/nestedvm/Interpreter.java @@ -1,3 +1,7 @@ +// Copyright 2000-2005 the Contributors, as shown in the revision logs. +// Licensed under the Apache Public Source License 2.0 ("the License"). +// You may not use this file except in compliance with the License. + // Copyright 2003 Brian Alliet // Based on org.xwt.imp.MIPS by Adam Megacz // Portions Copyright 2003 Adam Megacz @@ -94,7 +98,7 @@ public class Interpreter extends UnixRuntime implements Cloneable { int tmp, addr; // temporaries r[ZERO] = 0; - + switch(op) { case 0: { switch(subcode) { @@ -125,7 +129,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 +147,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 +367,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;