aarch64: First Steps
It’s some kind of a tradition: Every time I want to learn a new ISA, a try to port my compiler from the compiler engineering lecture, which I did in 2010, to this architecture. Originally it was designed to emit code for
x86_64. That time, I played around with the Nintendo Wii a lot. Equipped with an
ppc32 core and running gc-linux on it, I literally had to port my compiler to that plattform :-)
Later, I got an ARM device (HTC Desire Z) with a Debian in a chroot environment, but for some reason I was too lazy to do a serious port.
Recently I played around with the ARMv8 ISA. There is no real hardware available yet, but an emulator—the Linaro group has some instructions. I’m used to have a restrained environment, for example the Nintendo Wii has an old CPU (remember Apple G3 times?) and there’re 88MB RAM available: I even encountered delays when scrolling in
vim! Doing a build (not to mention fire up a single test) was—compared to
x86_64—horribly slow. But I learned to be economical with the resources, and it was fun at some point.
aarch64 emulator is even slower. Building ox was a nice experience too: via
sshfs I pre-compiled with
yacc, since they failed on the emulator (although the image contains them). Building itself is really slow. Takes about a minute to build my quite simple compiler (it’s like some microseconds on
x86_64). Fortunately, RAM is not a problem (4 GB), but file access is utterly slow. And don’t dare to access multiple files at the same time…
dmesg exits with “Segmentation fault” on the emulator.
- set up cross-compiling and hack up a script that only executes necessary files on the emulator
- read the ARMv8 ISA documentation carefully
I’m looking forward to real hardware ;-)
blog comments powered by Disqus