diff --git a/src/asmjit/x86/x86assembler.cpp b/src/asmjit/x86/x86assembler.cpp index eb94a15..348f74d 100644 --- a/src/asmjit/x86/x86assembler.cpp +++ b/src/asmjit/x86/x86assembler.cpp @@ -2142,7 +2142,6 @@ _GroupPop_Gp: if (encoded == ENC_OPS(Reg, Reg, None)) { opReg = x86OpReg(o0); rmReg = x86OpReg(o1); - rmReg += opReg; // We switch to the alternative opcode if the first operand is zero. if (opReg == 0) { @@ -2151,6 +2150,7 @@ _EmitFpArith_Reg: goto _EmitFpuOp; } else if (rmReg == 0) { + rmReg = opReg; opCode = 0xDC00 + ((opCode >> 0) & 0xFF) + static_cast(rmReg); goto _EmitFpuOp; } diff --git a/src/test/asmjit_bench_x86.cpp b/src/test/asmjit_bench_x86.cpp index d5ed2c9..e387e22 100644 --- a/src/test/asmjit_bench_x86.cpp +++ b/src/test/asmjit_bench_x86.cpp @@ -106,6 +106,8 @@ int main(int argc, char* argv[]) { void* p = a.make(); runtime.release(p); + + a.reset(); } perf.end(); }