From: Alastair B. <lis...@us...> - 2014-04-08 00:50:47
|
The branch "master" has been updated in SBCL: via 09610e6e65f70cbfa32a6890f7e0c44f85f6bf16 (commit) from 738b8a9226e9f8a78c2acea0ecdc9633a9b9433b (commit) - Log ----------------------------------------------------------------- commit 09610e6e65f70cbfa32a6890f7e0c44f85f6bf16 Author: Alastair Bridgewater <ny...@li...> Date: Mon Mar 17 07:40:51 2014 +0000 Move SPARC over to slimmed-down EMIT-ERROR-BREAK interface, part 1. * The prep-work has already been done in eliminating the continuable error bits, now it's time for the first part of the main show: adjusting the INTERFACE parts. * For this part we're just pushing a QUOTE from the guts of a macro code generation function out to the call sites, matching the other platforms that have already made this change. We'll do the actual implementation damage in part 2. --- src/assembly/sparc/arith.lisp | 6 +++--- src/assembly/sparc/assem-rtns.lisp | 4 ++-- src/compiler/generic/array.lisp | 16 ++++++++-------- src/compiler/sparc/arith.lisp | 10 +++++----- src/compiler/sparc/array.lisp | 2 +- src/compiler/sparc/call.lisp | 4 ++-- src/compiler/sparc/cell.lisp | 4 ++-- src/compiler/sparc/macros.lisp | 2 +- src/compiler/sparc/move.lisp | 2 +- src/compiler/sparc/subprim.lisp | 4 ++-- src/compiler/sparc/type-vops.lisp | 10 +++++----- src/compiler/sparc/values.lisp | 2 +- 12 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/assembly/sparc/arith.lisp b/src/assembly/sparc/arith.lisp index d3b52d2..4c8654a 100644 --- a/src/assembly/sparc/arith.lisp +++ b/src/assembly/sparc/arith.lisp @@ -283,7 +283,7 @@ (:res quo any-reg nl2-offset) (:res rem any-reg nl0-offset)) - (let ((error (generate-error-code nil division-by-zero-error + (let ((error (generate-error-code nil 'division-by-zero-error dividend divisor))) (inst cmp divisor) (inst b :eq error)) @@ -308,7 +308,7 @@ (:temp quo-sign any-reg nl5-offset) (:temp rem-sign any-reg nargs-offset)) - (let ((error (generate-error-code nil division-by-zero-error + (let ((error (generate-error-code nil 'division-by-zero-error dividend divisor))) (inst cmp divisor) (inst b :eq error)) @@ -358,7 +358,7 @@ (:temp quo-sign signed-reg nl5-offset) (:temp rem-sign signed-reg nargs-offset)) - (let ((error (generate-error-code nil division-by-zero-error + (let ((error (generate-error-code nil 'division-by-zero-error dividend divisor))) (inst cmp divisor) (inst b :eq error)) diff --git a/src/assembly/sparc/assem-rtns.lisp b/src/assembly/sparc/assem-rtns.lisp index 1957b6c..28d0d49 100644 --- a/src/assembly/sparc/assem-rtns.lisp +++ b/src/assembly/sparc/assem-rtns.lisp @@ -174,7 +174,7 @@ (:temp target-uwp any-reg nl2-offset)) (declare (ignore start count)) - (let ((error (generate-error-code nil invalid-unwind-error))) + (let ((error (generate-error-code nil 'invalid-unwind-error))) (inst cmp block) (inst b :eq error)) @@ -215,7 +215,7 @@ loop - (let ((error (generate-error-code nil unseen-throw-tag-error target))) + (let ((error (generate-error-code nil 'unseen-throw-tag-error target))) (inst cmp catch) (inst b :eq error) (inst nop)) diff --git a/src/compiler/generic/array.lisp b/src/compiler/generic/array.lisp index 744f89e..c906ec3 100644 --- a/src/compiler/generic/array.lisp +++ b/src/compiler/generic/array.lisp @@ -24,8 +24,8 @@ (:save-p :compute-only) (:generator 1 (error-call vop - #!+(or x86 x86-64 ppc) 'nil-array-accessed-error - #!-(or x86 x86-64 ppc) nil-array-accessed-error + #!+(or x86 x86-64 ppc sparc) 'nil-array-accessed-error + #!-(or x86 x86-64 ppc sparc) nil-array-accessed-error object))) ;;; It shouldn't be possible to fall through to here in normal user @@ -52,8 +52,8 @@ (:save-p :compute-only) (:generator 1 (error-call vop - #!+(or x86 x86-64 ppc) 'nil-array-accessed-error - #!-(or x86 x86-64 ppc) nil-array-accessed-error + #!+(or x86 x86-64 ppc sparc) 'nil-array-accessed-error + #!-(or x86 x86-64 ppc sparc) nil-array-accessed-error object))) (define-vop (data-vector-ref-with-offset/simple-array-nil) @@ -71,8 +71,8 @@ (:save-p :compute-only) (:generator 1 (error-call vop - #!+(or x86 x86-64 ppc) 'nil-array-accessed-error - #!-(or x86 x86-64 ppc) nil-array-accessed-error + #!+(or x86 x86-64 ppc sparc) 'nil-array-accessed-error + #!-(or x86 x86-64 ppc sparc) nil-array-accessed-error object))) (define-vop (data-vector-set/simple-array-nil) @@ -91,8 +91,8 @@ (:save-p :compute-only) (:generator 1 (error-call vop - #!+(or x86 x86-64 ppc) 'nil-array-accessed-error - #!-(or x86 x86-64 ppc) nil-array-accessed-error + #!+(or x86 x86-64 ppc sparc) 'nil-array-accessed-error + #!-(or x86 x86-64 ppc sparc) nil-array-accessed-error object))) ;;; FIXME: There is probably plenty of other array stuff that looks diff --git a/src/compiler/sparc/arith.lisp b/src/compiler/sparc/arith.lisp index b190cba..dbff5a7 100644 --- a/src/compiler/sparc/arith.lisp +++ b/src/compiler/sparc/arith.lisp @@ -244,7 +244,7 @@ (and (member :sparc-v9 *backend-subfeatures*) (not (member :sparc-64 *backend-subfeatures*))))) (:generator 12 - (let ((zero (generate-error-code vop division-by-zero-error x y))) + (let ((zero (generate-error-code vop 'division-by-zero-error x y))) (inst cmp y zero-tn) (inst b :eq zero) ;; Extend the sign of X into the Y register @@ -279,7 +279,7 @@ (and (member :sparc-v9 *backend-subfeatures*) (not (member :sparc-64 *backend-subfeatures*))))) (:generator 12 - (let ((zero (generate-error-code vop division-by-zero-error x y))) + (let ((zero (generate-error-code vop 'division-by-zero-error x y))) (inst cmp y zero-tn) (if (member :sparc-v9 *backend-subfeatures*) (inst b :eq zero :pn) @@ -315,7 +315,7 @@ (and (member :sparc-v9 *backend-subfeatures*) (not (member :sparc-64 *backend-subfeatures*))))) (:generator 8 - (let ((zero (generate-error-code vop division-by-zero-error x y))) + (let ((zero (generate-error-code vop 'division-by-zero-error x y))) (inst cmp y zero-tn) (if (member :sparc-v9 *backend-subfeatures*) (inst b :eq zero :pn) @@ -347,7 +347,7 @@ (:save-p :compute-only) (:guard (member :sparc-64 *backend-subfeatures*)) (:generator 8 - (let ((zero (generate-error-code vop division-by-zero-error x y))) + (let ((zero (generate-error-code vop 'division-by-zero-error x y))) (inst cmp y zero-tn) (inst b :eq zero :pn) ;; Sign extend the numbers, just in case. @@ -375,7 +375,7 @@ (:save-p :compute-only) (:guard (member :sparc-64 *backend-subfeatures*)) (:generator 8 - (let ((zero (generate-error-code vop division-by-zero-error x y))) + (let ((zero (generate-error-code vop 'division-by-zero-error x y))) (inst cmp y zero-tn) (inst b :eq zero :pn) ;; Zap the higher 32 bits, just in case diff --git a/src/compiler/sparc/array.lisp b/src/compiler/sparc/array.lisp index c5b1835..23db24a 100644 --- a/src/compiler/sparc/array.lisp +++ b/src/compiler/sparc/array.lisp @@ -71,7 +71,7 @@ (:vop-var vop) (:save-p :compute-only) (:generator 5 - (let ((error (generate-error-code vop invalid-array-index-error + (let ((error (generate-error-code vop 'invalid-array-index-error array bound index))) (inst cmp index bound) (inst b :geu error) diff --git a/src/compiler/sparc/call.lisp b/src/compiler/sparc/call.lisp index 4f00c2d..d47d1e7 100644 --- a/src/compiler/sparc/call.lisp +++ b/src/compiler/sparc/call.lisp @@ -1213,7 +1213,7 @@ default-value-8 (:save-p :compute-only) (:generator 3 (let ((err-lab - (generate-error-code vop invalid-arg-count-error nargs))) + (generate-error-code vop 'invalid-arg-count-error nargs))) (inst cmp nargs (fixnumize count)) (if (member :sparc-v9 *backend-subfeatures*) ;; Assume we don't take the branch @@ -1233,7 +1233,7 @@ default-value-8 (:vop-var vop) (:save-p :compute-only) (:generator 1000 - (error-call vop ,error ,@args))))) + (error-call vop ',error ,@args))))) (frob arg-count-error invalid-arg-count-error sb!c::%arg-count-error nargs) (frob type-check-error object-not-type-error sb!c::%type-check-error diff --git a/src/compiler/sparc/cell.lisp b/src/compiler/sparc/cell.lisp index 8477edd..23f1981 100644 --- a/src/compiler/sparc/cell.lisp +++ b/src/compiler/sparc/cell.lisp @@ -54,7 +54,7 @@ (:generator 9 (move obj-temp object) (loadw value obj-temp symbol-value-slot other-pointer-lowtag) - (let ((err-lab (generate-error-code vop unbound-symbol-error obj-temp))) + (let ((err-lab (generate-error-code vop 'unbound-symbol-error obj-temp))) (inst cmp value unbound-marker-widetag) (inst b :eq err-lab) (inst nop)))) @@ -116,7 +116,7 @@ (move obj-temp object) (loadw value obj-temp fdefn-fun-slot other-pointer-lowtag) (inst cmp value null-tn) - (let ((err-lab (generate-error-code vop undefined-fun-error obj-temp))) + (let ((err-lab (generate-error-code vop 'undefined-fun-error obj-temp))) (inst b :eq err-lab)) (inst nop))) diff --git a/src/compiler/sparc/macros.lisp b/src/compiler/sparc/macros.lisp index d6f872b..e2665ae 100644 --- a/src/compiler/sparc/macros.lisp +++ b/src/compiler/sparc/macros.lisp @@ -293,7 +293,7 @@ (note-this-location vop :internal-error))) (inst unimp ,kind) (with-adjustable-vector (,vector) - (write-var-integer (error-number-or-lose ',code) ,vector) + (write-var-integer (error-number-or-lose ,code) ,vector) ,@(mapcar #'(lambda (tn) `(let ((tn ,tn)) (write-var-integer (make-sc-offset (sc-number diff --git a/src/compiler/sparc/move.lisp b/src/compiler/sparc/move.lisp index fb3c9de..06a3c5b 100644 --- a/src/compiler/sparc/move.lisp +++ b/src/compiler/sparc/move.lisp @@ -146,7 +146,7 @@ (:vop-var vop) (:save-p :compute-only) (:generator 666 - (error-call vop object-not-type-error x type))) + (error-call vop 'object-not-type-error x type))) ;;;; moves and coercions: diff --git a/src/compiler/sparc/subprim.lisp b/src/compiler/sparc/subprim.lisp index f699def..e2ff1c8 100644 --- a/src/compiler/sparc/subprim.lisp +++ b/src/compiler/sparc/subprim.lisp @@ -27,7 +27,7 @@ (:generator 50 (let ((done (gen-label)) (loop (gen-label)) - (not-list (generate-error-code vop object-not-list-error object))) + (not-list (generate-error-code vop 'object-not-list-error object))) (move ptr object) (move count zero-tn) @@ -46,7 +46,7 @@ (inst add count count (fixnumize 1)) (test-type ptr loop nil (list-pointer-lowtag) :temp temp) - (error-call vop object-not-list-error ptr) + (error-call vop 'object-not-list-error ptr) (emit-label done) (move result count)))) diff --git a/src/compiler/sparc/type-vops.lisp b/src/compiler/sparc/type-vops.lisp index 9c6fdb8..3fb85f7 100644 --- a/src/compiler/sparc/type-vops.lisp +++ b/src/compiler/sparc/type-vops.lisp @@ -161,7 +161,7 @@ `((define-vop (,check-name check-type) (:generator ,cost (let ((err-lab - (generate-error-code vop ,error-code value))) + (generate-error-code vop ',error-code value))) (test-type value err-lab t (,@type-codes) :temp temp) (move result value)))))) @@ -195,7 +195,7 @@ (define-vop (check-signed-byte-32 check-type) (:generator 45 - (let ((nope (generate-error-code vop object-not-signed-byte-32-error value)) + (let ((nope (generate-error-code vop 'object-not-signed-byte-32-error value)) (yep (gen-label))) (inst andcc temp value fixnum-tag-mask) (inst b :eq yep) @@ -265,7 +265,7 @@ (define-vop (check-unsigned-byte-32 check-type) (:generator 45 (let ((nope - (generate-error-code vop object-not-unsigned-byte-32-error value)) + (generate-error-code vop 'object-not-unsigned-byte-32-error value)) (yep (gen-label)) (fixnum (gen-label)) (single-word (gen-label))) @@ -326,7 +326,7 @@ (define-vop (check-symbol check-type) (:generator 12 (let ((drop-thru (gen-label)) - (error (generate-error-code vop object-not-symbol-error value))) + (error (generate-error-code vop 'object-not-symbol-error value))) (inst cmp value null-tn) (inst b :eq drop-thru) (test-type value error t (symbol-header-widetag) :temp temp) @@ -345,7 +345,7 @@ (define-vop (check-cons check-type) (:generator 8 - (let ((error (generate-error-code vop object-not-cons-error value))) + (let ((error (generate-error-code vop 'object-not-cons-error value))) (inst cmp value null-tn) (inst b :eq error) (test-type value error t (list-pointer-lowtag) :temp temp) diff --git a/src/compiler/sparc/values.lisp b/src/compiler/sparc/values.lisp index a7ac2b1..dfe5168 100644 --- a/src/compiler/sparc/values.lisp +++ b/src/compiler/sparc/values.lisp @@ -130,7 +130,7 @@ (inst add csp-tn csp-tn n-word-bytes) (storew temp csp-tn -1) (test-type list loop nil (list-pointer-lowtag) :temp ndescr) - (error-call vop bogus-arg-to-values-list-error list) + (error-call vop 'bogus-arg-to-values-list-error list) (emit-label done) (inst sub count csp-tn start)))) ----------------------------------------------------------------------- hooks/post-receive -- SBCL |