diff --git a/bootfiles/19a/boot4.lisp b/bootfiles/19a/boot4.lisp new file mode 100644 index 0000000000000000000000000000000000000000..bf2313bb8d6fc3299d0a39fbd28637a8294ba61c --- /dev/null +++ b/bootfiles/19a/boot4.lisp @@ -0,0 +1,19 @@ +;; Allocation macro for PPC to abstract out all allocation. +#+ppc +(in-package "PPC") +(setf lisp::*enable-package-locked-errors* nil) +#+ppc +(defmacro allocation (result-tn size lowtag &key stack-p temp-tn) + (declare (ignore stack-p temp-tn)) + (let ((alloc-size (gensym))) + `(let ((,alloc-size ,size)) + (if (logbitp (1- lowtag-bits) ,lowtag) + (progn + (inst ori ,result-tn alloc-tn ,lowtag)) + (progn + (inst clrrwi ,result-tn alloc-tn lowtag-bits) + (inst ori ,result-tn ,result-tn ,lowtag))) + (if (numberp ,alloc-size) + (inst addi alloc-tn alloc-tn ,alloc-size) + (inst add alloc-tn alloc-tn ,alloc-size))))) +