[PATCH] D36111: [COFF, ARM64] Add MS builtins __dmb, __dsb, __isb

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Jul 31 23:17:34 PDT 2017


mstorsjo added a comment.

In https://reviews.llvm.org/D36111#826878, @mgrang wrote:

> @mstorsjo I see that spec2000/eon calls __getReg, _ReadStatusReg and _WriteStatusReg intrinsics for ARM64. I think I would need to implement them in llvm. Do you know where can I find a doc explaining their behavior?


Sorry - I have no previous knowledge on them. Googling for `_ReadStatusReg` gets me to https://msdn.microsoft.com/en-us/library/hh875058.aspx at least (which is for ARM and not ARM64), which indicates that it'd map to the MRS instruction. And `__getReg`: https://msdn.microsoft.com/en-us/library/kcb3wece(v=vs.120).aspx

Since the ARM64 specifics of them aren't publicly known I guess you'd have to test MSVC to see what they expect in practice. For `__getReg` it seems to refer to `intrin.h` for register name constants - I guess `arm64intr.h` should define the constants for register numbers as well, or are they just called like `__getReg(30)` (to get the value of x30)?


https://reviews.llvm.org/D36111





More information about the llvm-commits mailing list