mescc: Align global data.
* module/mes/M1.mes (object->M1): Align globals.
This commit is contained in:
parent
948fbf9743
commit
029c000840
|
@ -171,6 +171,11 @@
|
|||
(cond ((and (pair? o) (global? (cdr o))) (string-append "&" (global->string o)))
|
||||
((and (not string?) (not function?)) (stderr "warning: unresolved label: ~s\n" label))
|
||||
(else (string-append "&" label))))))
|
||||
(define (display-align size)
|
||||
(let ((alignment (- 4 (modulo size 4))))
|
||||
(when (> alignment 0)
|
||||
(display " ")
|
||||
(display-join (map text->M1 (map (const 0) (iota alignment))) " "))))
|
||||
(let* ((label (cond
|
||||
((and (pair? (car o)) (eq? (caar o) #:string))
|
||||
(string->label (car o)))
|
||||
|
@ -194,8 +199,12 @@
|
|||
(or (and (not (memq ch '(#\tab #\newline)))
|
||||
(< (char->integer ch) #x20))
|
||||
(>= (char->integer ch) #x80))) string-data)))
|
||||
(display (string-append "\"" (list->string string-data) "\""))
|
||||
(display-join (map text->M1 data) " "))
|
||||
(let ((text string-data))
|
||||
(display (string-append "\"" (list->string string-data) "\""))
|
||||
(display-align (1+ (length string-data))))
|
||||
(let ((text (map text->M1 data)))
|
||||
(display-join text " ")
|
||||
(display-align (length text))))
|
||||
(newline)))
|
||||
(display "M1: functions\n" (current-error-port))
|
||||
(for-each write-function (filter cdr functions))
|
||||
|
|
Loading…
Reference in a new issue