Stream: git-cranelift

Topic: cranelift / Issue #1342 arm32 support


view this post on Zulip GitHub (Jan 14 2020 at 10:18):

jmkrauz opened Issue #1342:

view this post on Zulip GitHub (Jan 14 2020 at 10:35):

bjorn3 commented on Issue #1342:

There is already an issue for arm64 support: https://github.com/bytecodealliance/cranelift/issues/719. Should this be merged, or is arm32 different enough at bit encoding or abi level to need a separate issue?

view this post on Zulip GitHub (Jan 14 2020 at 10:35):

bjorn3 edited a comment on Issue #1342:

There is already an issue for arm64 support: https://github.com/bytecodealliance/cranelift/issues/719. Should this be merged, or is arm32 different enough at instruction encoding or abi level to need a separate issue?

view this post on Zulip GitHub (Jan 14 2020 at 11:08):

jmkrauz commented on Issue #1342:

I don't know much about arm64, but I believe there are some important differences (for example on arm64 NEON supports double precision). However if someone thinks it should be merged, feel free to do it.

view this post on Zulip GitHub (Jan 14 2020 at 11:28):

bjorn3 commented on Issue #1342:

I was referring more to which bits represent an instruction. For x86/x86_64 the difference is small. Instructions with 32bit registers are often the same on x86 and x86_64, and the 64bit register variant just needs an extra byte (rex). I don't know if arm has something similar.

view this post on Zulip GitHub (Jan 14 2020 at 11:28):

bjorn3 edited a comment on Issue #1342:

I was referring to which bits represent an instruction. For x86/x86_64 the difference is small. Instructions with 32bit registers are often the same on x86 and x86_64, and the 64bit register variant just needs an extra byte (rex). I don't know if arm has something similar.

view this post on Zulip GitHub (Jan 14 2020 at 11:31):

jmkrauz commented on Issue #1342:

On arm differences are much bigger, encodings are definitely different.

view this post on Zulip GitHub (Jan 14 2020 at 11:31):

jmkrauz edited a comment on Issue #1342:

On arm differences are much bigger. Encodings are definitely different.

view this post on Zulip GitHub (Jan 14 2020 at 11:34):

julian-seward1 commented on Issue #1342:

arm32 and arm64 are majorly different, both architecturally and at the encoding level. I'd suggest that attempts to unify them will lead to big problems, and it would be easier to treat them as two completely unrelated architectures.

Also, it's worth being aware that arm32 has two different encodings: the traditional ARM encoding, and the newer Thumb2. It will be necessary to choose one or the other, and I believe the standard recommendation is to use Thumb2.

view this post on Zulip GitHub (Jan 14 2020 at 17:38):

cfallin commented on Issue #1342:

We're building a new instruction selector infrastructure (#1344), so it would likely be best for new backends to be built once that is ready (the hope is to land it in the next month or two at most!). As part of the work, we're building an ARM64 backend as well; this is quite different from ARM32, as Julian mentions, but it could serve as an example for someone building out an ARM32 backend.

view this post on Zulip GitHub (Jan 21 2020 at 08:01):

jmkrauz commented on Issue #1342:

Ok, I will wait then.

view this post on Zulip GitHub (Feb 28 2020 at 23:28):

alexcrichton transferred Issue #1342:


Last updated: Dec 23 2024 at 13:07 UTC