X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;f=src%2Fcompiler%2Fgeneric%2Fvm-ir2tran.lisp;h=b0a2d3d68acca6644f41fd46021af5db2eb30692;hb=49e8403800426f37a54d9b87353a31af36e7af40;hp=0f5f92e84c8f809e1633ac19b68dfb3f3058e6b5;hpb=e840f481796d191997a47421d60cd039cd260613;p=sbcl.git diff --git a/src/compiler/generic/vm-ir2tran.lisp b/src/compiler/generic/vm-ir2tran.lisp index 0f5f92e..b0a2d3d 100644 --- a/src/compiler/generic/vm-ir2tran.lisp +++ b/src/compiler/generic/vm-ir2tran.lisp @@ -13,6 +13,7 @@ sb!vm:instance-header-widetag sb!vm:instance-pointer-lowtag nil) +#!+stack-allocatable-fixed-objects (defoptimizer (%make-structure-instance stack-allocate-result) ((&rest args) node dx) t) @@ -218,9 +219,7 @@ node block (list value-tn) (node-lvar node)))))))) ;;; Stack allocation optimizers per platform support -;;; -;;; Platforms with stack-allocatable vectors -#!+(or hppa mips x86 x86-64) +#!+stack-allocatable-vectors (progn (defoptimizer (allocate-vector stack-allocate-result) ((type length words) node dx) @@ -253,7 +252,7 @@ (annotate-1-value-lvar arg))))) ;;; ...lists -#!+(or alpha hppa mips ppc sparc x86 x86-64) +#!+stack-allocatable-lists (progn (defoptimizer (list stack-allocate-result) ((&rest args) node dx) (declare (ignore node dx)) @@ -266,7 +265,9 @@ t)) ;;; ...conses -#!+(or hppa mips x86 x86-64) -(defoptimizer (cons stack-allocate-result) ((&rest args) node dx) - (declare (ignore node dx)) - t) +#!+stack-allocatable-fixed-objects +(progn + (defoptimizer (cons stack-allocate-result) ((&rest args) node dx) + t) + (defoptimizer (%make-complex stack-allocate-result) ((&rest args) node dx) + t))