Search
20:05:55
stassats
the hard part is adding descriptions to all instructions
20:06:07
stassats
including their flag usage
20:10:59
karlosz
yeah, that's just a data input problem
20:11:16
karlosz
mips kinda has those annotations
20:11:23
karlosz
for the scheduling assembler
20:11:33
stassats
it's tedious and easy to get wrong
20:11:38
karlosz
it was actually pretty easy to solve the move-if problem
20:11:51
karlosz
canonicalize then to always be the register and inverting the condition worked
20:12:08
karlosz
i only did it for the single flag case though
20:12:17
karlosz
i don't understand multiple flags
20:12:25
karlosz
the not-p case makes not much sense to me
20:12:47
stassats
i was very scared by that too
20:13:26
karlosz
im just going to assume not much stuff cares about multiple flags
20:14:00
karlosz
yeah, then not a priority
20:14:08
stassats
(declare (double-float x)) (> x 1d0)
20:14:08
karlosz
not that float code doesnt matter
20:14:20
karlosz
but xchg is not something i want to deal with
20:22:24
karlosz
of course crashes in cold init
20:22:30
karlosz
because it can never be that easy
20:23:31
karlosz
https://pastebin.com/gdhyCZvN
20:24:12
karlosz
works fine for stuff like functionp
20:28:14
karlosz
(if (functionp x) t 'a) is broken
20:37:34
karlosz
moving :target res to the then branch makes it work
23:06:47
karlosz
i guess i could solve the fixup issue by making fixups relative to null-tn
23:15:14
karlosz
oh, ppc already has asm-routine-nil-offset
23:51:35
karlosz
need to make asm-routine-nil-offset* to really make things address independent