Question for maintainers: ARCv3 port feasibility
Andrew Stubbs
ams@baylibre.com
Fri May 16 11:34:49 GMT 2025
On 16/05/2025 01:23, Paul Koning wrote:
>
>
>> On May 15, 2025, at 8:06 PM, Oleg Endo via Gcc <gcc@gcc.gnu.org> wrote:
>>
>> Hi,
>>
>> On Thu, 2025-05-15 at 17:41 +0100, Andrew Stubbs wrote:
>>> Dear GCC Maintainers and Steering Committee,
>>>
>>> I'm currently doing a feasibility study and effort estimate for
>>> upstreaming the existing ARCv3 out-of-tree port [1].
>>>
>>> Question: Is there likely to be any objection to adding a new "arc64"
>>> port in addition to the existing "arc" port?
>>>
>>> At this point, I would like to check that the general approach is likely
>>> to be accepted at the end of the project. Or, at least not rejected for
>>> this most fundamental of reasons.
>>>
>>> The ARCv3 port has been written as a new backend because it is not just
>>> a simple evolution of the ARC architecture and starting afresh made more
>>> sense to the developers at the time. I'm aware that there are some
>>> precedents for this (sh64, ia64, aarch64), so I think it's probably
>>> fine, right?
>>>
>>
>> SH5/SH64 was actually part of the original SH port, not a separate
>> standalone port. It made the port more complex and convoluted, but probably
>> made sense since the it was backwards compatible with the original SH ISA
>> (it was like ARM Thumb -- jump to select between classic SH ISA and new SH5
>> ISA, from what I remember).
>>
>> Best regards,
>> Oleg Endo
>
> Also: ia64 is a separate ISA. If you were thinking about x86-64, that's part of i386 ("ia-32"). Similarly, "mips" is both flavors (and all four ABIs). So there are several examples in both directions.
Apparently I hallucinated the sh64 being a separate port, which is weird
because I worked on that stuff (20 years ago). Probably it was separate
in some other tool(?)
I'm aware that IA64 Itanium was "slightly" more different to IA32 than
current x86_64 is, but still it kind of sits in this space.
Anyway, I don't think ARC/ARC64 is as different as IA32/IA64 but
probably about the same amount of difference as Arm/AArch64. Unlike x86,
you can't run v2 binaries on v3 hardware. I don't know the ISAs well, so
I can't (yet) speak with authority on this point, but I'm very sure that
(at this point) it'll be less work to keep arc64 independent, at least
for GCC.
Andrew
More information about the Gcc
mailing list