;; Now with the lock held, see if the symbol's tls index has been
;; set in the meantime.
(loadw target other symbol-tls-index-slot other-pointer-lowtag)
- (inst or target target)
+ (inst test target target)
(inst jmp :ne release-tls-index-lock)
;; Allocate a new tls-index.
(load-symbol-value target *free-tls-index*)
(emit-error-break nil error-trap
(error-number-or-lose 'unseen-throw-tag-error)
(list target)))
- (inst or catch catch) ; check for NULL pointer
+ (inst test catch catch) ; check for NULL pointer
(inst jmp :z error))
(inst cmp target (make-ea-for-object-slot catch catch-block-tag-slot 0))
(declare (ignore start count))
(let ((error (generate-error-code nil 'invalid-unwind-error)))
- (inst or block block) ; check for NULL pointer
+ (inst test block block) ; check for NULL pointer
(inst jmp :z error))
(load-tl-symbol-value uwp *current-unwind-protect-block*)
;; Now with the lock held, see if the symbol's tls index has been
;; set in the meantime.
(loadw target other symbol-tls-index-slot other-pointer-lowtag)
- (inst or target target)
+ (inst test target target)
(inst jmp :ne release-tls-index-lock)
;; Allocate a new tls-index.
(load-symbol-value target *free-tls-index*)
(emit-error-break nil error-trap
(error-number-or-lose 'unseen-throw-tag-error)
(list target)))
- (inst or catch catch) ; check for NULL pointer
+ (inst test catch catch) ; check for NULL pointer
(inst jmp :z error))
(inst cmp target (make-ea-for-object-slot catch catch-block-tag-slot 0))
(declare (ignore start count))
(let ((error (generate-error-code nil 'invalid-unwind-error)))
- (inst or block block) ; check for NULL pointer
+ (inst test block block) ; check for NULL pointer
(inst jmp :z error))
(load-tl-symbol-value uwp *current-unwind-protect-block*)
(declare (ignore start count))
(let ((error (generate-error-code nil 'invalid-unwind-error)))
- (inst or block block) ; check for NULL pointer
+ (inst test block block) ; check for NULL pointer
(inst jmp :z error))
;; Save all our registers, as we're about to clobber them.
(:generator 5
(move result number)
(move ecx amount)
- (inst or ecx ecx)
+ (inst test ecx ecx)
(inst jmp :ns POSITIVE)
(inst neg ecx)
(inst cmp ecx 63)
(:generator 5
(move result number)
(move ecx amount)
- (inst or ecx ecx)
+ (inst test ecx ecx)
(inst jmp :ns POSITIVE)
(inst neg ecx)
(inst cmp ecx 63)
(:generator 4
(move result number)
(move ecx amount)
- (inst or ecx ecx)
+ (inst test ecx ecx)
(inst jmp :ns POSITIVE)
(inst neg ecx)
(zeroize zero)
(:arg-types unsigned-num)
(:conditional :ns)
(:generator 3
- (inst or digit digit)))
+ (inst test digit digit)))
;;; For add and sub with carry the sc of carry argument is any-reg so
(loadw tls-index symbol symbol-tls-index-slot other-pointer-lowtag)
(inst add bsp (* binding-size n-word-bytes))
(store-binding-stack-pointer bsp)
- (inst or tls-index tls-index)
+ (inst test tls-index tls-index)
(inst jmp :ne tls-index-valid)
(inst mov tls-index symbol)
(inst lea temp-reg-tn
LOOP
(loadw symbol bsp (- binding-symbol-slot binding-size))
- (inst or symbol symbol)
+ (inst test symbol symbol)
(inst jmp :z SKIP)
;; Bind stack debug sentinels have the unbound marker in the symbol slot
(inst cmp symbol unbound-marker-widetag)
;; Get the second digit.
(loadw rax-tn value (1+ bignum-digits-offset) other-pointer-lowtag)
;; All zeros, its an (unsigned-byte 64).
- (inst or rax-tn rax-tn)
+ (inst test rax-tn rax-tn)
(inst jmp :z yep)
(inst jmp nope)
;; positive implies (unsigned-byte 64).
(emit-label fixnum)
- (inst or rax-tn rax-tn)
+ (inst test rax-tn rax-tn)
(inst jmp (if not-p :s :ns) target)
(emit-label not-target)))))
;; Get the second digit.
(loadw rax-tn value (1+ bignum-digits-offset) other-pointer-lowtag)
;; All zeros, its an (unsigned-byte 64).
- (inst or rax-tn rax-tn)
+ (inst test rax-tn rax-tn)
(inst jmp :z yep)
(inst jmp nope)
;; positive implies (unsigned-byte 64).
(emit-label fixnum)
- (inst or rax-tn rax-tn)
+ (inst test rax-tn rax-tn)
(inst jmp :s nope)
(emit-label yep)
(:generator 5
(move result number)
(move ecx amount)
- (inst or ecx ecx)
+ (inst test ecx ecx)
(inst jmp :ns positive)
(inst neg ecx)
(inst cmp ecx 31)
(:generator 5
(move result number)
(move ecx amount)
- (inst or ecx ecx)
+ (inst test ecx ecx)
(inst jmp :ns positive)
(inst neg ecx)
(inst cmp ecx 31)
(:generator 4
(move result number)
(move ecx amount)
- (inst or ecx ecx)
+ (inst test ecx ecx)
(inst jmp :ns positive)
(inst neg ecx)
(inst xor zero zero)
(:arg-types unsigned-num)
(:conditional :ns)
(:generator 3
- (inst or digit digit)))
+ (inst test digit digit)))
;;; For add and sub with carry the sc of carry argument is any-reg so
(loadw tls-index symbol symbol-tls-index-slot other-pointer-lowtag)
(inst add bsp (* binding-size n-word-bytes))
(store-binding-stack-pointer bsp)
- (inst or tls-index tls-index)
+ (inst test tls-index tls-index)
(inst jmp :ne tls-index-valid)
(inst mov tls-index symbol)
(inst call (make-fixup
LOOP
(loadw symbol bsp (- binding-symbol-slot binding-size))
- (inst or symbol symbol)
+ (inst test symbol symbol)
(inst jmp :z skip)
;; Bind stack debug sentinels have the unbound marker in the symbol slot
(inst cmp symbol unbound-marker-widetag)
;; Get the second digit.
(loadw eax-tn value (1+ bignum-digits-offset) other-pointer-lowtag)
;; All zeros, its an (unsigned-byte 32).
- (inst or eax-tn eax-tn)
+ (inst test eax-tn eax-tn)
(inst jmp :z yep)
(inst jmp nope)
;; positive implies (unsigned-byte 32).
(emit-label fixnum)
- (inst or eax-tn eax-tn)
+ (inst test eax-tn eax-tn)
(inst jmp (if not-p :s :ns) target)
(emit-label not-target)))))
;; Get the second digit.
(loadw eax-tn value (1+ bignum-digits-offset) other-pointer-lowtag)
;; All zeros, its an (unsigned-byte 32).
- (inst or eax-tn eax-tn)
+ (inst test eax-tn eax-tn)
(inst jmp :z yep)
(inst jmp nope)
;; positive implies (unsigned-byte 32).
(emit-label fixnum)
- (inst or eax-tn eax-tn)
+ (inst test eax-tn eax-tn)
(inst jmp :s nope)
(emit-label yep)