fix compilation of synchronized methods which return values

This commit is contained in:
Joel Dice 2009-05-31 14:15:45 -06:00
parent f1ff0d75bf
commit b1d92fc6c2

View File

@ -2646,9 +2646,8 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
} break; } break;
case areturn: { case areturn: {
Compiler::Operand* value = frame->popObject();
handleExit(t, frame); handleExit(t, frame);
c->return_(BytesPerWord, value); c->return_(BytesPerWord, frame->popObject());
} return; } return;
case arraylength: { case arraylength: {
@ -3465,9 +3464,8 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
case ireturn: case ireturn:
case freturn: { case freturn: {
Compiler::Operand* value = frame->popInt();
handleExit(t, frame); handleExit(t, frame);
c->return_(4, value); c->return_(4, frame->popInt());
} return; } return;
case ishl: { case ishl: {
@ -3760,9 +3758,8 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip,
case lreturn: case lreturn:
case dreturn: { case dreturn: {
Compiler::Operand* value = frame->popLong();
handleExit(t, frame); handleExit(t, frame);
c->return_(8, value); c->return_(8, frame->popLong());
} return; } return;
case lshl: { case lshl: {