[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Once Again



William explains that I can't move the csp-tn into res in the following
VOP:
   (define-vop (allocate-full-call-frame)
     (:info nargs)
     (:results (res :scs (any-reg)))
     (:generator 2
       (when (> nargs register-arg-count)
	 (move res csp-tn)
	 (inst cal csp-tn csp-tn (* nargs vm:word-bytes)))))

The csp-tn is an any-reg too.  Once again, I don't understand why the
compiler wants to coerce between word-pointer-reg and any-reg.  If the
problemis that these are both supposed to be word-pointer regs, then why?
How am I supposed to know that.  If the csp-tn is supposed to stay an
any-reg, then I'm back to my original question: why do I have to deal with
these coercions when Rob said I wouldn't have to if I made the new
primitive type that was dedicated to word-pointer-regs; that is, the
word-pointer type doesn't include another SC, so there should be any
coercion involved.  Where did the type come into play here anyway?

Where am I supposed to find out this information, so I might look it up
before offending William with my ignorance again?

Bill