dmd Arm64 - first function compile!
Walter Bright
newshound2 at digitalmars.com
Sun Jun 2 06:30:18 UTC 2024
In recent days, it has become abundantly clear that the x86 architecture appears
to be headed for obsolescence. The Arm processor is taking over. The Mac is
dropping the x86 in favor of Arm. Microsoft has announced Arm laptops.
Even my Raspberry Pi is an Arm64.
What to do about dmd? Many people in the D community have expressed interest in
creating an Arm backend for D. Since implementing a 64 bit code generator is
trivial, I thought I'd look into it.
I bought a couple books on the Arm, and have been studying the datasheet for it.
Most of the backend can be repurposed to Arm. The structure of it can remain the
same.
The goal is Arm64, not Arm32. Since even the Pi is Arm64, there is no purpose in
supporting the Arm32.
Hacking away listening to Brain Pain metal, the first function compiles:
```
void foo() { }
```
dmd -c test.d -vasm
producing:
```
_D4test3fooFZv:
0000: D6 5F 03 C0 ret
```
And there it is! Nothing else works, but what the heck.
https://github.com/WalterBright/dmd/commit/04546a8f72c10a09764f23675c67c5fbdf29628c
More information about the Digitalmars-d
mailing list