[arm64] use `dc civac` instead of `dc cvau`
authorBernhard Urban <bernhard.urban@xamarin.com>
Fri, 9 Sep 2016 22:43:40 +0000 (00:43 +0200)
committerBernhard Urban <bernhard.urban@xamarin.com>
Fri, 9 Sep 2016 22:43:40 +0000 (00:43 +0200)
suggested workaround for some Cortex A53 bugs, inspired by V8:
https://github.com/v8/v8/commit/fec99c689b8587b863df4a5c4793c601772ef663

mono/mini/mini-arm64.c

index 6417c11f6c34c5d7ebd2fca88f219eaa4cab5dec..995aea83d98094d62e65b814a85ba53c4744c5c1 100644 (file)
@@ -1795,7 +1795,7 @@ mono_arch_flush_icache (guint8 *code, gint size)
 
        addr = (guint64) code & ~(guint64) (dsize - 1);
        for (; addr < end; addr += dsize)
-               asm volatile("dc cvau, %0" : : "r" (addr) : "memory");
+               asm volatile("dc civac, %0" : : "r" (addr) : "memory");
        asm volatile("dsb ish" : : : "memory");
 
        addr = (guint64) code & ~(guint64) (isize - 1);