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