Implement unbound variable restarts for arm64.

This commit is contained in:
Stas Boukarev 2021-10-26 22:59:58 +03:00
parent 73c8c9f2ca
commit d7c22a0902
2 changed files with 7 additions and 4 deletions

View file

@ -131,9 +131,12 @@
LOCAL))))
(when check-boundp
(let ((err-lab (generate-error-code vop 'unbound-symbol-error symbol)))
(inst cmp value unbound-marker-widetag)
(inst b :eq err-lab)))))
(assemble ()
(let* ((*location-context* (make-restart-location RETRY value))
(err-lab (generate-error-code vop 'unbound-symbol-error symbol)))
(inst cmp value unbound-marker-widetag)
(inst b :eq err-lab))
RETRY))))
(define-vop (fast-symbol-value symbol-value)
(:policy :fast)

View file

@ -590,7 +590,7 @@
(defun ggg+1 () (1+ *ggg*))
(with-test (:name :restart-unbound-variable
:skipped-on (not (and :x86-64 :sb-thread)))
:skipped-on (not (and (or :arm64 :x86-64) :sb-thread)))
(let ((success nil))
(handler-bind
((unbound-variable