]> Git Repo - qemu.git/commitdiff
target-mips: don't use local temps for store conditional
authorAurelien Jarno <[email protected]>
Tue, 9 Oct 2012 19:53:21 +0000 (21:53 +0200)
committerAurelien Jarno <[email protected]>
Wed, 31 Oct 2012 21:20:48 +0000 (22:20 +0100)
Store conditional operations only need local temps in user mode. Fix
the code to use temp local only in user mode, this spares two memory
stores in system mode.

At the same time remove a wrong a wrong copied & pasted comment,
store operations don't have a register destination.

Reviewed-by: Richard Henderson <[email protected]>
Signed-off-by: Aurelien Jarno <[email protected]>
target-mips/translate.c

index 05d88c4bfc47ae6c477bd86f5f9cadf80d167638..2484b238dba7855c94cb9d744e7508f8e823dcfb 100644 (file)
@@ -1814,13 +1814,14 @@ static void gen_st_cond (DisasContext *ctx, uint32_t opc, int rt,
     const char *opn = "st_cond";
     TCGv t0, t1;
 
+#ifdef CONFIG_USER_ONLY
     t0 = tcg_temp_local_new();
-
-    gen_base_offset_addr(ctx, t0, base, offset);
-    /* Don't do NOP if destination is zero: we must perform the actual
-       memory access. */
-
     t1 = tcg_temp_local_new();
+#else
+    t0 = tcg_temp_new();
+    t1 = tcg_temp_new();
+#endif
+    gen_base_offset_addr(ctx, t0, base, offset);
     gen_load_gpr(t1, rt);
     switch (opc) {
 #if defined(TARGET_MIPS64)
This page took 0.048174 seconds and 4 git commands to generate.