target/sh4: generate fences for SH4
authorAurelien Jarno <aurelien@aurel32.net>
Mon, 1 May 2017 21:20:43 +0000 (23:20 +0200)
committerAurelien Jarno <aurelien@aurel32.net>
Sat, 13 May 2017 09:18:26 +0000 (11:18 +0200)
synco is a SH4-A only instruction.

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <rth@twiddle.net>
Signed-off-by: Aurelien Jarno <aurelien@aurel32.net>
target/sh4/translate.c

index 7a504a7f5ab2f583bddc0fb592a9a39067a6bb49..d61b176a7dcda1987721b7efba91c5a7afd5492a 100644 (file)
@@ -1569,10 +1569,11 @@ static void _decode_opc(DisasContext * ctx)
        else
            break;
     case 0x00ab:               /* synco */
-       if (ctx->features & SH_FEATURE_SH4A)
-           return;
-       else
-           break;
+        if (ctx->features & SH_FEATURE_SH4A) {
+            tcg_gen_mb(TCG_MO_ALL | TCG_BAR_SC);
+            return;
+        }
+        break;
     case 0x4024:               /* rotcl Rn */
        {
            TCGv tmp = tcg_temp_new();