[PATCH] D76848: [CodeGen][ARM] Error when writing to specific reserved registers in inline asm

Manoj Gupta via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sun Apr 26 03:11:16 PDT 2020


manojgupta added a comment.

I believe chromium's version is a copy of compiler-rt's  implementation of clear_cache [1] .
@vhscampos Can you please fix compiler-rt version as well?

  #define __ARM_NR_cacheflush 0x0f0002
    register int start_reg __asm("r0") = (int)(intptr_t)start;
    const register int end_reg __asm("r1") = (int)(intptr_t)end;
    const register int flags __asm("r2") = 0;
    const register int syscall_nr __asm("r7") = __ARM_NR_cacheflush;
    __asm __volatile("svc 0x0"
                     : "=r"(start_reg)
                     : "r"(syscall_nr), "r"(start_reg), "r"(end_reg), "r"(flags));

[1]:  compiler-rt/lib/builtins/clear_cache.c <https://github.com/llvm/llvm-project/blob/master/compiler-rt/lib/builtins/clear_cache.c#L79>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D76848/new/

https://reviews.llvm.org/D76848





More information about the llvm-commits mailing list