From: Taylor R Campbell 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