From 3097eb8356448e09ed10b9dcf48e07b8ddba04b5 Mon Sep 17 00:00:00 2001 From: Taylor R Campbell Date: Wed, 16 Jan 2019 04:48:27 +0000 Subject: [PATCH] Add a TODO. --- src/compiler/machines/aarch64/TODO | 11 +++++++++++ 1 file changed, 11 insertions(+) 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 -- 2.25.1