~akkartik/mu-x86_64

Nascent fork of Mu for x86_64
7f836189 — Kartik Agaram 3 months ago
fix some warnings from gcc 9
d0420b90 — Kartik Agaram 3 months ago
include termbox for browse_trace
02784a48 — Kartik Agaram 4 months ago
Give credit where it's due

refs

main
browse  log 

clone

read-only
https://git.sr.ht/~akkartik/mu-x86_64
read/write
git@git.sr.ht:~akkartik/mu-x86_64

You can also use your local clone with git send-email.

builds.sr.ht status

A half-done fork of https://github.com/akkartik/mu for the 64-bit x86 ISA in collaboration with Max Bernstein. Has just the bootstrap emulator for now.

./bootstrap test

It's unclear what the precise syntax for SubX should be.


Some reasons dealing with 64-bit sucks:

  • 16-digit hex numbers are less friendly than 8-digit (since 8 lies within 7±2)
  • ...

Some reasons dealing with x86_64 sucks:

  • REX bytes. There doesn't seem to be a clean syntax that can both show all the numbers that go into the binary and keep conceptually related bits together. In particular, if you want to fill in ___/r32/R15, you either have to lie and say 7 and then think about how to provide the REX.B bit, or you have to assume all instructions will implicitly decide whether to emit a REX byte.

    In x86 lots of unrelated bits get packed together, but at least related bits stay close together. In x86_64 we lose even that property X-(

  • 32-bit immediates. In particular, no way to push a 64-bit immediate.

    In x86 I was able to come up with a nice composable syntax for passing string literals into function calls. I just implemented string literals and function calls, and the combination worked cleanly. Now that's back to the drawing board X-(

  • ...