util: Specialize flush_idcache_range for aarch64
commit664a79735e4deb10dd652cee370c9b13d9b10db9
authorRichard Henderson <richard.henderson@linaro.org>
Sat, 12 Dec 2020 16:46:34 +0000 (12 10:46 -0600)
committerRichard Henderson <richard.henderson@linaro.org>
Thu, 7 Jan 2021 15:09:41 +0000 (7 05:09 -1000)
tree4a73897bf56d29f57b6e36dbda7fd709cbaeca48
parent1da8de39a39c55560cb4bf0cea94d598fea035cd
util: Specialize flush_idcache_range for aarch64

For darwin, the CTR_EL0 register is not accessible, but there
are system routines that we can use.

For other hosts, copy the single pointer implementation from
libgcc and modify it to support the double pointer interface
we require.  This halves the number of cache operations required
when split-rwx is enabled.

Reviewed-by: Joelle van Dyne <j@getutm.app>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
util/cacheflush.c