- Consider NaN-tagging.
- Write a disassembler.
- Share interrupt hook invocations.
+- Change TYPED-CONS to tag Free into a temporary _before_ writing to it.
+ Currently we do
+ str x1,[x20],#8 // *Free++ = x1
+ str x2,[x20],#8 // *Free++ = x2
+ sub x0,x20,#16 // x0 = Free - 2
+ orr x0,x0,#... // x0 = (cons-pointer ... x0)
+ We have enough temporaries that it shouldn't be a problem to allocate
+ a temporary first and skip the sub step:
+ orr x0,x20,#... // x0 = (cons-pointer ... Free)
+ str x1,[x20],#8 // *Free++ = x1
+ str x2,[x20],#8 // *Free++ = x2