Skip to content
Snippets Groups Projects
Commit 566750b7 authored by ram's avatar ram
Browse files

Moved POINTER-COMPARE here, since this is now loaded before system.

parent 8d76d595
No related branches found
No related tags found
No related merge requests found
...@@ -30,7 +30,8 @@ ...@@ -30,7 +30,8 @@
(unless (location= x y) (unless (location= x y)
(inst lr y x)))) (inst lr y x))))
;;; ;;;
(define-move-vop string-char-move :move (string-char-reg) (string-char-reg)) (define-move-vop string-char-move :move
(string-char-reg) (string-char-reg))
;;; Move untagged string-char arguments/return-values. ;;; Move untagged string-char arguments/return-values.
...@@ -98,6 +99,22 @@ ...@@ -98,6 +99,22 @@
(unless (location= code res) (unless (location= code res)
(inst lr res code)))) (inst lr res code))))
(define-vop (pointer-compare)
(:args (x :scs (any-reg descriptor-reg))
(y :scs (any-reg descriptor-reg)))
(:conditional)
(:info target not-p)
(:policy :fast-safe)
(:note "inline comparison")
(:variant-vars condition)
(:generator 3
(inst cl x y)
(if not-p
(inst bnb condition target)
(inst bb condition target))))
;;; For comparison of string-chars, we require both operands to be in the ;;; For comparison of string-chars, we require both operands to be in the
;;; untagged string-char-reg representation. This will be a pessimization if ;;; untagged string-char-reg representation. This will be a pessimization if
;;; both operands are tagged, but this won't happen often, and not in ;;; both operands are tagged, but this won't happen often, and not in
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment