X-Git-Url: http://repo.macrolet.net/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcompiler%2Fgtn.lisp;h=2752accd211eda8bbd3d6ca9d9b1d0472a6bc75f;hb=578d987735906eb05829f0c2235a3ba9225c2bc4;hp=1a22dd005c955597f9e1f13582fa62987fb1542f;hpb=d604a358d8e5eb5587989e0a4f1d31dbe6ac5ffe;p=sbcl.git diff --git a/src/compiler/gtn.lisp b/src/compiler/gtn.lisp index 1a22dd0..2752acc 100644 --- a/src/compiler/gtn.lisp +++ b/src/compiler/gtn.lisp @@ -108,11 +108,14 @@ ;;; -- It appears to be more efficient to use the standard convention, ;;; since there are no non-TR local calls that could benefit from ;;; a non-standard convention. +;;; -- We're compiling with RETURN-FROM-FRAME instrumentation, which +;;; only works (on x86 and x86-64) for the standard convention. (defun use-standard-returns (tails) (declare (type tail-set tails)) (let ((funs (tail-set-funs tails))) (or (and (find-if #'xep-p funs) (find-if #'has-full-call-use funs)) + (some (lambda (fun) (policy fun (>= insert-debug-catch 2))) funs) (block punt (dolist (fun funs t) (dolist (ref (leaf-refs fun))