(eq (ir2-lvar-kind 2lvar) :fixed)))
(ir2-convert-full-call node block)))))
-(defoptimizer (%more-arg-values ir2-convert) ((context count) node block)
+(defoptimizer (%more-arg-values ir2-convert) ((context start count) node block)
(binding* ((lvar (node-lvar node) :exit-if-null)
(2lvar (lvar-info lvar)))
(ecase (ir2-lvar-kind 2lvar)
(let ((locs (ir2-lvar-locs 2lvar)))
(vop* %more-arg-values node block
((lvar-tn node block context)
+ (lvar-tn node block start)
(lvar-tn node block count)
nil)
((reference-tn-list locs t))))))))
(if (template-p (basic-combination-info node))
(ir2-convert-template node block)
(ir2-convert-full-call node block))))
+
+;; just a fancy identity
+(defoptimizer (%typep-wrapper ir2-convert) ((value variable type) node block)
+ (let* ((lvar (node-lvar node))
+ (results (lvar-result-tns lvar (list (primitive-type-or-lose t)))))
+ (emit-move node block (lvar-tn node block value) (first results))
+ (move-lvar-result node block results lvar)))
\f
;;; Convert the code in a component into VOPs.
(defun ir2-convert (component)