- ((<bytespec> vars bytes meta objs closure?)
- ;; dump parameters
- (let ((nargs (glil-vars-nargs vars)) (nrest (glil-vars-nrest vars))
- (nlocs (glil-vars-nlocs vars)) (nexts (glil-vars-nexts vars)))
- (cond
- ((and (< nargs 16) (< nlocs 128) (< nexts 16))
- ;; 16-bit representation
- (let ((x (logior
- (ash nargs 12) (ash nrest 11) (ash nlocs 4) nexts)))
- (push-code! `(make-int16 ,(ash x -8) ,(logand x (1- (ash 1 8)))))))
- (else
- ;; Other cases
- (if (> (+ nargs nlocs) 255)
- (error "too many locals" nargs nlocs))
- ;; really it should be a flag..
- (if (> nrest 1) (error "nrest should be 0 or 1" nrest))
- (if (> nexts 255) (error "too many externals" nexts))
- (push-code! (object->code nargs))
- (push-code! (object->code nrest))
- (push-code! (object->code nlocs))
- (push-code! (object->code nexts))
- (push-code! (object->code #f)))))
+ ((<bytespec> nargs nrest nlocs nexts bytes meta objs closure?)
+ ;; dump parameters
+ (cond
+ ((and (< nargs 16) (< nlocs 128) (< nexts 16))
+ ;; 16-bit representation
+ (let ((x (logior
+ (ash nargs 12) (ash nrest 11) (ash nlocs 4) nexts)))
+ (push-code! `(make-int16 ,(ash x -8) ,(logand x (1- (ash 1 8)))))))
+ (else
+ ;; Other cases
+ (if (> (+ nargs nlocs) 255)
+ (error "too many locals" nargs nlocs))
+ ;; really it should be a flag..
+ (if (> nrest 1) (error "nrest should be 0 or 1" nrest))
+ (if (> nexts 255) (error "too many externals" nexts))
+ (push-code! (object->code nargs))
+ (push-code! (object->code nrest))
+ (push-code! (object->code nlocs))
+ (push-code! (object->code nexts))
+ (push-code! (object->code #f))))