-;;;; type testing and checking VOPs for the x86 VM
+;;;; type testing and checking VOPs for the x86-64 VM
;;;; This software is part of the SBCL system. See the README file for
;;;; more information.
\f
;;;; test generation utilities
-(defun make-byte-tn (tn)
- (aver (sc-is tn any-reg descriptor-reg unsigned-reg signed-reg))
- (make-random-tn :kind :normal
- :sc (sc-or-lose 'byte-reg)
- :offset (tn-offset tn)))
-
-(defun make-dword-tn (tn)
- (aver (sc-is tn any-reg descriptor-reg unsigned-reg signed-reg))
- (make-random-tn :kind :normal
- :sc (sc-or-lose 'dword-reg)
- :offset (tn-offset tn)))
-
(defun generate-fixnum-test (value)
"zero flag set if VALUE is fixnum"
(inst test
`((define-vop (,check-name ,(intern (concatenate 'string prefix "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))
(move result value))))))
,@(when ptype
(define-vop (check-signed-byte-64 check-type)
(:generator 45
(let ((nope (generate-error-code vop
- object-not-signed-byte-64-error
+ 'object-not-signed-byte-64-error
value)))
(generate-fixnum-test value)
(inst jmp :e yep)
(define-vop (check-unsigned-byte-64 check-type)
(:generator 45
(let ((nope
- (generate-error-code vop object-not-unsigned-byte-64-error value))
+ (generate-error-code vop 'object-not-unsigned-byte-64-error value))
(yep (gen-label))
(fixnum (gen-label))
(single-word (gen-label)))
(define-vop (check-symbol check-type)
(:generator 12
- (let ((error (generate-error-code vop object-not-symbol-error value)))
+ (let ((error (generate-error-code vop 'object-not-symbol-error value)))
(inst cmp value nil-value)
(inst jmp :e DROP-THRU)
(test-type value error t (symbol-header-widetag)))
(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 nil-value)
(inst jmp :e error)
(test-type value error t (list-pointer-lowtag))