<html><head><meta http-equiv="Content-Type" content="text/html charset=utf-8"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space;" class="">Alternatively, the JIT can read the content of these addresses and write them back as-is 😭<div class=""><div><br class=""><blockquote type="cite" class=""><div class="">On Jul 5, 2017, at 09:01, Filip Pizlo <<a href="mailto:fpizlo@apple.com" class="">fpizlo@apple.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><meta http-equiv="content-type" content="text/html; charset=utf-8" class=""><div dir="auto" class="">We should not use those helpers, especially in the JIT. It does not make sense for the JIT to emit calls to system functions when the user is expecting it to emit an instruction. If we cannot perfectly select the right barrier on a particular CPU, we should disable concurrency on that CPU. <br class=""><br class=""><div class="">-Filip</div><div class=""><br class="">On Jul 5, 2017, at 8:41 AM, JF Bastien <<a href="mailto:jfbastien@apple.com" class="">jfbastien@apple.com</a>> wrote:<br class=""><br class=""></div><blockquote type="cite" class=""><div class=""><meta http-equiv="Content-Type" content="text/html charset=utf-8" class="">On Linux you can do the following:<blockquote style="margin: 0 0 0 40px; border: none; padding: 0px;" class=""><div class=""><font face="Courier" class="">((void(*)())0xffff0fa0)();</font></div></blockquote><div class=""><div class=""><br class=""></div><div class="">That address contains a helper which does the “right” barrier, including if you’re not on an SMP system it’ll do nothing.</div><div class=""><br class=""></div><div class="">Details: <a href="https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt" class="">https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt</a></div><div class="">That file also lists other Linux helpers.</div><div class=""><br class=""></div><div class="">I think for ARMv6 it makes sense to use these helpers. AFAIK the mcr barrier instruction ins’t supported by all ARMv6 CPUs.</div><div class=""><br class=""></div><div class="">For ARMv7 and later, <font face="Courier" class="">DMB ish</font> is the right thing.</div><div class=""><br class=""></div><div class=""><br class=""><blockquote type="cite" class=""><div class="">On Jul 3, 2017, at 17:19, Caio Lima <<a href="mailto:ticaiolima@gmail.com" class="">ticaiolima@gmail.com</a>> wrote:</div><br class="Apple-interchange-newline"><div class=""><div class="">Hi all.<br class=""><br class="">I'm working in this patch<br class="">(<a href="https://bugs.webkit.org/show_bug.cgi?id=172767" class="">https://bugs.webkit.org/show_bug.cgi?id=172767</a>) and Mark Lam raised<br class="">some questions about the data memory barrier (DMB for short) in ARMv6<br class="">using "mcr 15 ...". The point is that we are having divergences in ARM<br class="">official reference manual about the semantics of this instruction. We<br class="">have it discussed in the bug above and I would like to know if there<br class="">is somebody with stronger ARM background that could help us there and<br class="">then approve the patch to be committed.<br class=""><br class="">I thanks in advance and best regards,<br class="">Caio Lima.<br class="">_______________________________________________<br class="">webkit-dev mailing list<br class=""><a href="mailto:webkit-dev@lists.webkit.org" class="">webkit-dev@lists.webkit.org</a><br class=""><a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" class="">https://lists.webkit.org/mailman/listinfo/webkit-dev</a><br class=""></div></div></blockquote></div><br class=""></div></div></blockquote><blockquote type="cite" class=""><div class=""><span class="">_______________________________________________</span><br class=""><span class="">webkit-dev mailing list</span><br class=""><span class=""><a href="mailto:webkit-dev@lists.webkit.org" class="">webkit-dev@lists.webkit.org</a></span><br class=""><span class=""><a href="https://lists.webkit.org/mailman/listinfo/webkit-dev" class="">https://lists.webkit.org/mailman/listinfo/webkit-dev</a></span><br class=""></div></blockquote></div></div></blockquote></div><br class=""></div></body></html>