From: Taylor R Campbell <campbell@mumble.net>
Date: Wed, 16 Jan 2019 04:48:27 +0000 (+0000)
Subject: Add a TODO.
X-Git-Tag: mit-scheme-pucked-10.1.20~11^2~66^2~73
X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=3097eb8356448e09ed10b9dcf48e07b8ddba04b5;p=mit-scheme.git

Add a TODO.
---

diff --git a/src/compiler/machines/aarch64/TODO b/src/compiler/machines/aarch64/TODO
index e90c62748..ee7e7e2fd 100644
--- a/src/compiler/machines/aarch64/TODO
+++ b/src/compiler/machines/aarch64/TODO
@@ -19,3 +19,14 @@
 - 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