- (:args ,@(mapcar #'arg-or-res-spec args))
- ,@(let ((index -1))
- (mapcar #'(lambda (arg)
- `(:temporary (:sc ,(reg-spec-sc arg)
- :offset ,(reg-spec-offset arg)
- :from (:argument ,(incf index))
- :to (:eval 2))
- ,(reg-spec-temp arg)))
- args))
- ,@(mapcar #'(lambda (temp)
- `(:temporary (:sc ,(reg-spec-sc temp)
- :offset ,(reg-spec-offset temp)
- :from (:eval 1)
- :to (:eval 3))
- ,(reg-spec-name temp)))
- temps)
- ,@call-temps
- (:vop-var ,vop)
- ,@(let ((index -1))
- (mapcar #'(lambda (res)
- `(:temporary (:sc ,(reg-spec-sc res)
- :offset ,(reg-spec-offset res)
- :from (:eval 2)
- :to (:result ,(incf index))
- :target ,(reg-spec-name res))
- ,(reg-spec-temp res)))
- results))
- (:results ,@(mapcar #'arg-or-res-spec results))
- (:ignore ,@(mapcar #'reg-spec-name temps)
- ,@(apply #'append
- (mapcar #'cdr
- (remove :ignore call-temps
- :test-not #'eq :key #'car))))
- ,@(remove-if #'(lambda (x)
- (member x '(:return-style :cost)))
- options
- :key #'car)
- (:generator ,cost
- ,@(mapcar #'(lambda (arg)
- #!+(or hppa alpha) `(move ,(reg-spec-name arg)
- ,(reg-spec-temp arg))
- #!-(or hppa alpha) `(move ,(reg-spec-temp arg)
- ,(reg-spec-name arg)))
- args)
- ,@call-sequence
- ,@(mapcar #'(lambda (res)
- #!+(or hppa alpha) `(move ,(reg-spec-temp res)
- ,(reg-spec-name res))
- #!-(or hppa alpha) `(move ,(reg-spec-name res)
- ,(reg-spec-temp res)))
- results))))))
+ (:args ,@(mapcar #'arg-or-res-spec args))
+ ,@(let ((index -1))
+ (mapcar (lambda (arg)
+ `(:temporary (:sc ,(reg-spec-sc arg)
+ :offset ,(reg-spec-offset arg)
+ :from (:argument ,(incf index))
+ :to (:eval 2))
+ ,(reg-spec-temp arg)))
+ args))
+ ,@(mapcar (lambda (temp)
+ `(:temporary (:sc ,(reg-spec-sc temp)
+ :offset ,(reg-spec-offset temp)
+ :from (:eval 1)
+ :to (:eval 3))
+ ,(reg-spec-name temp)))
+ temps)
+ ,@call-temps
+ (:vop-var ,vop)
+ ,@(let ((index -1))
+ (mapcar (lambda (res)
+ `(:temporary (:sc ,(reg-spec-sc res)
+ :offset ,(reg-spec-offset res)
+ :from (:eval 2)
+ :to (:result ,(incf index))
+ :target ,(reg-spec-name res))
+ ,(reg-spec-temp res)))
+ results))
+ (:results ,@(mapcar #'arg-or-res-spec results))
+ (:ignore ,@(mapcar #'reg-spec-name temps)
+ ,@(apply #'append
+ (mapcar #'cdr
+ (remove :ignore call-temps
+ :test #'neq :key #'car))))
+ ,@(remove-if (lambda (x)
+ (member x '(:return-style :cost)))
+ options
+ :key #'car)
+ (:generator ,cost
+ ,@(mapcar (lambda (arg)
+ #!+(or hppa alpha) `(move ,(reg-spec-name arg)
+ ,(reg-spec-temp arg))
+ #!-(or hppa alpha) `(move ,(reg-spec-temp arg)
+ ,(reg-spec-name arg)))
+ args)
+ ,@call-sequence
+ ,@(mapcar (lambda (res)
+ #!+(or hppa alpha) `(move ,(reg-spec-temp res)
+ ,(reg-spec-name res))
+ #!-(or hppa alpha) `(move ,(reg-spec-name res)
+ ,(reg-spec-temp res)))
+ results))))))