On Linux you can do the following:
((void(*)())0xffff0fa0)();

That address contains a helper which does the “right” barrier, including if 
you’re not on an SMP system it’ll do nothing.

Details: https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt 
<https://www.kernel.org/doc/Documentation/arm/kernel_user_helpers.txt>
That file also lists other Linux helpers.

I think for ARMv6 it makes sense to use these helpers. AFAIK the mcr barrier 
instruction ins’t supported by all ARMv6 CPUs.

For ARMv7 and later, DMB ish is the right thing.


> On Jul 3, 2017, at 17:19, Caio Lima <ticaiol...@gmail.com> wrote:
> 
> Hi all.
> 
> I'm working in this patch
> (https://bugs.webkit.org/show_bug.cgi?id=172767) and Mark Lam raised
> some questions about the data memory barrier (DMB for short) in ARMv6
> using "mcr 15 ...". The point is that we are having divergences in ARM
> official reference manual about the semantics of this instruction. We
> have it discussed in the bug above and I would like to know if there
> is somebody with stronger ARM background that could help us there and
> then approve the patch to be committed.
> 
> I thanks in advance and best regards,
> Caio Lima.
> _______________________________________________
> webkit-dev mailing list
> webkit-dev@lists.webkit.org
> https://lists.webkit.org/mailman/listinfo/webkit-dev

_______________________________________________
webkit-dev mailing list
webkit-dev@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-dev

Reply via email to