3 ms·
> I assume this was some toy compiler I dont know the definition of "toy compiler", but compare the following (x86 backend vs arm64 backend) https://github.co
by koito17 2y ago
> I assume this was some toy compiler
I dont know the definition of "toy compiler", but compare the following (x86 backend vs arm64 backend)
https://github.com/Clozure/ccl/blob/d960a0e/compiler/X86/x86-asm.lisp#L547 https://github.com/Clozure/ccl/blob/d960a0e/compiler/X86/x86...
https://github.com/Clozure/ccl/blob/d960a0e/compiler/ARM64/arm64-asm.lisp#L294 https://github.com/Clozure/ccl/blob/d960a0e/compiler/ARM64/a...
I would argue the former is a lot more complex compared to the functional equivalent in arm64
The specific extension to allow e.g. minss would look something like this
(def-x86-opcode minss ((:regxmm :insert-xmm-rm) (:regxmm :insert-xmm-reg))
#x0f5d #o300 #x0 #xf3)
Now try doing the same for e.g. movsxd, and you will have to be careful with the ModR/M byte, due to the VEX prefix changing semantics.