patch moveto stack
This commit is contained in:
@@ -570,10 +570,28 @@ public abstract class StackValue {
|
|||||||
int size = this.type.getSize();
|
int size = this.type.getSize();
|
||||||
if (size == 1) {
|
if (size == 1) {
|
||||||
v.swap();
|
v.swap();
|
||||||
} else if (size == 2) {
|
}
|
||||||
|
else if (size == 2) {
|
||||||
v.dupX2();
|
v.dupX2();
|
||||||
v.pop();
|
v.pop();
|
||||||
} else {
|
}
|
||||||
|
else {
|
||||||
|
throw new UnsupportedOperationException("don't know how to move type " + type + " to top of stack");
|
||||||
|
}
|
||||||
|
|
||||||
|
coerceTo(type, v);
|
||||||
|
}
|
||||||
|
else if (depth == 2) {
|
||||||
|
int size = this.type.getSize();
|
||||||
|
if (size == 1) {
|
||||||
|
v.dup2X1();
|
||||||
|
v.pop2();
|
||||||
|
}
|
||||||
|
else if (size == 2) {
|
||||||
|
v.dup2X2();
|
||||||
|
v.pop2();
|
||||||
|
}
|
||||||
|
else {
|
||||||
throw new UnsupportedOperationException("don't know how to move type " + type + " to top of stack");
|
throw new UnsupportedOperationException("don't know how to move type " + type + " to top of stack");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user