OSDN Git Service

tcg/mips: Fix tcg_out_qemu_ld_slow_path
authorRichard Henderson <richard.henderson@linaro.org>
Wed, 23 Jan 2019 20:40:40 +0000 (12:40 -0800)
committerRichard Henderson <richard.henderson@linaro.org>
Mon, 28 Jan 2019 15:04:10 +0000 (07:04 -0800)
Patch the branch after it has been emitted rather
than before it exists.

Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
tcg/mips/tcg-target.inc.c

index be0bc92..c5d7067 100644 (file)
@@ -1343,8 +1343,9 @@ static void tcg_out_qemu_ld_slow_path(TCGContext *s, TCGLabelQemuLdst *l)
         }
     }
 
-    reloc_pc16(s->code_ptr, l->raddr);
     tcg_out_opc_br(s, OPC_BEQ, TCG_REG_ZERO, TCG_REG_ZERO);
+    reloc_pc16(s->code_ptr - 1, l->raddr);
+
     /* delay slot */
     if (TCG_TARGET_REG_BITS == 64 && l->type == TCG_TYPE_I32) {
         /* we always sign-extend 32-bit loads */