From 51bb640d69544b394c90cf830a50cd891fdc7590 Mon Sep 17 00:00:00 2001 From: toy <toy> Date: Fri, 10 May 2002 14:50:32 +0000 Subject: [PATCH] Initial revision for bootstrapping the Sparc allocation changes. --- bootfiles/18d/boot2.lisp | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 bootfiles/18d/boot2.lisp diff --git a/bootfiles/18d/boot2.lisp b/bootfiles/18d/boot2.lisp new file mode 100644 index 000000000..ab600246b --- /dev/null +++ b/bootfiles/18d/boot2.lisp @@ -0,0 +1,16 @@ +#+sparc +(in-package "SPARC") +#+sparc +(defmacro allocation (result-tn size lowtag) + ;; We assume we're in a pseudo-atomic so the pseudo-atomic bit is + ;; set. If the lowtag also has a 1 bit in the same position, we're all + ;; set. Otherwise, we need to zap out the lowtag from alloc-tn, and + ;; then or in the lowtag. + `(if (logbitp (1- lowtag-bits) ,lowtag) + (progn + (inst or ,result-tn alloc-tn ,lowtag) + (inst add alloc-tn ,size)) + (progn + (inst andn ,result-tn alloc-tn lowtag-mask) + (inst or ,result-tn ,lowtag) + (inst add alloc-tn ,size)))) -- GitLab