[cfe-dev] clang cannot compile ARM assembly in libcxxabi/src/Unwind ?
renato.golin at linaro.org
Tue Aug 5 01:58:17 PDT 2014
On 4 August 2014 20:35, Renato Golin <renato.golin at linaro.org> wrote:
> The IMM doesn't make much sense. Simply removing the hash fixes it,
> and it also works on GAS, so win win.
Reading it back again, it sounded a bit harsh from my part, I didn't
mean it, sorry.
What I meant is that the immediate syntax doesn't apply to that
argument, but still applies to other immediates. At least, that's what
I read from the ARM ARM, which only states that the value is encoded
in the immediate field, not that it has immediate syntax, and even
making it a separate syntax from the other immediate lines, rather
than an addressing mode, which would then imply similar syntax.
I'd be curious of how other people did it in the past and if the
default usage is with the hash, we may be forced to implement it that
way. GAS accepts both.
On the other hand, for ARMv5/6, you can already use cp10/cp11 in
coprocessor instructions, but not on v7/v8 and that's (now)
intentional. Access to those registers have been disabled in those
architectures in preference for direct vector instructions, and we'll
*have* to do it at least for AArch64, why not for v7 too?
I may be wrong, but I think it's a sane restriction. I'm CC'ing
Richard just in case he has more to say, or a better argument against
v7/v8 cp10/11 access and on the immediate syntax issue.
More information about the cfe-dev