diff --git a/src/compile.cpp b/src/compile.cpp index de7bf835ac..a48398874e 100644 --- a/src/compile.cpp +++ b/src/compile.cpp @@ -18,7 +18,7 @@ vmJump(void* address, void* base, void* stack, void* thread); namespace { -const bool Verbose = true; +const bool Verbose = false; const bool DebugTraces = false; class MyThread: public Thread { @@ -2296,7 +2296,7 @@ compile(MyThread* t, Frame* initialFrame, unsigned ip) case l2i: { Operand* a = frame->popLong(); - frame->pushInt(a); + frame->pushInt(c->select4(a)); c->release(a); } break; diff --git a/src/compiler.cpp b/src/compiler.cpp index f37c5676a5..e892c7279f 100644 --- a/src/compiler.cpp +++ b/src/compiler.cpp @@ -1659,7 +1659,7 @@ MemoryOperand::apply(Context* c, Operation operation) dx->accept(c, mov, high); ax->apply(c, neg); - dx->accept(c, addc, immediate(c, 0), dx); + dx->accept(c, addc, immediate(c, 0)); dx->apply(c, neg); low->accept(c, mov, ax); @@ -1749,7 +1749,7 @@ MemoryOperand::accept(Context* c, Operation operation, operand->apply(c, push); apply(c, push); - immediate_(c, reinterpret_cast(divideLong))->apply(c, call); + immediate(c, reinterpret_cast(divideLong))->apply(c, call); accept(c, mov, register_(c, rax, rdx, S8Selection)); } } break; @@ -1821,8 +1821,8 @@ MemoryOperand::accept(Context* c, Operation operation, ax->accept(c, mul, lowSrc); dx->accept(c, add, tmp); - lowDst->accept(c, mov, rax); - highDst->accept(c, mov, rdx); + lowDst->accept(c, mov, ax); + highDst->accept(c, mov, dx); tmp->release(c); ax->release(c); @@ -1855,7 +1855,7 @@ MemoryOperand::accept(Context* c, Operation operation, operand->apply(c, push); apply(c, push); - immediate_(c, reinterpret_cast(moduloLong))->apply(c, call); + immediate(c, reinterpret_cast(moduloLong))->apply(c, call); accept(c, mov, register_(c, rax, rdx, S8Selection)); } } break;