projects
/
nestedvm.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
interpreter fixes
[nestedvm.git]
/
src
/
org
/
ibex
/
nestedvm
/
Interpreter.java
diff --git
a/src/org/ibex/nestedvm/Interpreter.java
b/src/org/ibex/nestedvm/Interpreter.java
index
1fcdc4b
..
45d433c
100644
(file)
--- a/
src/org/ibex/nestedvm/Interpreter.java
+++ b/
src/org/ibex/nestedvm/Interpreter.java
@@
-7,7
+7,7
@@
package org.ibex.nestedvm;
import org.ibex.nestedvm.util.*;
import java.io.*;
import org.ibex.nestedvm.util.*;
import java.io.*;
-public class Interpreter extends UnixRuntime {
+public class Interpreter extends UnixRuntime implements Cloneable {
// Registers
private int[] registers = new int[32];
private int hi,lo;
// Registers
private int[] registers = new int[32];
private int hi,lo;
@@
-51,6
+51,13
@@
public class Interpreter extends UnixRuntime {
}
}
}
}
+ protected Object clone() throws CloneNotSupportedException {
+ Interpreter r = (Interpreter) super.clone();
+ r.registers = (int[]) registers.clone();
+ r.fpregs = (int[]) fpregs.clone();
+ return r;
+ }
+
// Main interpretor
// the return value is meaningless, its just to catch people typing "return" by accident
private final int runSome() throws FaultException,ExecutionException {
// Main interpretor
// the return value is meaningless, its just to catch people typing "return" by accident
private final int runSome() throws FaultException,ExecutionException {
@@
-415,6
+422,9
@@
public class Interpreter extends UnixRuntime {
}
case 20: { // Integer
switch(subcode) {
}
case 20: { // Integer
switch(subcode) {
+ case 32: // CVT.S.W
+ setFloat(fd,f[fs]);
+ break;
case 33: // CVT.D.W
setDouble(fd,f[fs]);
break;
case 33: // CVT.D.W
setDouble(fd,f[fs]);
break;