anchor.diff:                                (ash (register-number reg) +rt-shift+)))
       (return-from instruction t)))
   
  -(define-instruction lslv (dst lhs rhs)
  +(defun emit-shift-variable (op2 dst lhs rhs)
     (let ((is-64-bit (eql (register-class dst) :gpr-64)))
       (cond (is-64-bit
              (check-register-class dst :gpr-64)
  
positive.code:                                   #x80000000
                                    #x00000000)
                                (ash condition 12)
                                (ash false +rm-shift+)
                                (ash true +rn-shift+)
                                (ash dst +rd-shift+))))
    t)
  
  (defmacro define-conditional-select (name condition)
  
negative.code:                 (null (register-class rhs))
                  (null shift)
                  (null amount)
                  (or (eql opcode #b11) ; ANDS
                      (not (member dst-class '(:xzr :wzr)))))
             ;; Orr (immediate)
             (let* ((imm-value (or (resolve-immediate rhs) 0))
                    (encoded-bitmask (encode-bit-mask imm-value (if is-64-bit 64 32))))
               (emit-instruction (logior #x12000000
                                         (ash opcode 29)
                                         sf
                                         (ash encoded-bitmask 10)
  