[cfe-dev] [RFC] Make "requires arm" also include AArch64 in module map files

Ben Langmuir blangmuir at apple.com
Tue Jul 28 06:32:26 PDT 2015


> On Jul 24, 2015, at 3:34 AM, Renato Golin <renato.golin at linaro.org> wrote:
> 
> On 23 July 2015 at 22:38, Ben Langmuir <blangmuir at apple.com> wrote:
>> For “arm”:
>> * The closest I found is that GCC has a function attribute "target(arm)” that means to use the “A32” ISA, but this is to distinguish it from thumb (T32), not from aarch64/A64 it looks like.
>> * I don’t think this should stop us from using “arm” to mean arm32 || arm64.
> 
> "arm" has been used to mean the architecture, as well as the
> instruction set. Since Thumb operates on the same registers, flags and
> can inter-operate with ARM, including Thumb in "arm" is reasonable.
> Even v8 AArch32, which has some small differences, is an acceptable
> match for "arm". So much so that they're all in the same back-end on
> all compilers.
> 
> But AArch64 is quite a different beast. They're in completely separate
> worlds. Even though AArch64 has a compatibility mode (AArch32), it may
> not be usable if the system is not setup properly (4K pages instead of
> 64K pages). So, if joining both in the same modules means sometimes
> AArch32 code will be selected during 64-bit execution, this may break
> many things. The other way around will *never* work.
> 
> I don't think we should get "arm" to mean AArch64.
> 
> 
>> For “arm32”:
>> * I made this name up, and haven’t found any useful precedent for this or any other name.  The ISA is called A32, but I think the T32 ISA would also count as “arm32” in my scheme…
> 
> I'm not a big fan of "arm32" either, probably because I don't think
> "arm" should ever mean AArch64. I'd recommend you have a good talk
> with the ARM guys before any naming decision.

+ Tim

Do you have any thoughts on the specific target feature names for module maps I’m proposing (changing “arm” to include AArch64 and adding “arm32”)?  As I’ve said, my own (naive) expectation was that “arm” would include “AArch64”, and I was surprised when that wasn’t the case.

> 
> 
>> * Since no is actually asking for this feature, I suppose we could just not add it. Users who wanted arm32 could say “requires arm, !aarch64” for now and we could reconsider this once there is motivation
> 
> Expectation vs reality. When I "import arm", I expect to get ARM,
> maybe even Thumb, but never AArch64.
> 
> cheers,
> -renato





More information about the cfe-dev mailing list