mescc: Support --align, off by default.
[mes.git] / module / mescc / i386 / as.scm
index 836789d3b69e79126718cf28e891710653f2717a..e544a3b9025f7edfdf2c9886043aebf65fce531c 100644 (file)
   (let ((r (get-r info)))
     `((,(string-append "mov____%" r ",0x32") (#:address ,label)))))
 
+(define (i386:r->byte-label info label)
+  (let* ((r (get-r info))
+         (l (e->l r)))
+    `((,(string-append "movb___%" l ",0x32") (#:address ,label)))))
+
+(define (i386:r->word-label info label)
+  (let* ((r (get-r info))
+        (x (e->x r)))
+    `((,(string-append "movw___%" x ",0x32") (#:address ,label)))))
+
 (define (i386:call-r info n)
   (let ((r (get-r info)))
     `((,(string-append "call___*%" r))
     (r+r . ,i386:r+r)
     (r+value . ,i386:r+value)
     (r->arg . ,i386:r->arg)
+    (r->byte-label . ,i386:r->byte-label)
     (r->label . ,i386:r->label)
     (r->local . ,i386:r->local)
     (r->local+n . ,i386:r->local+n)
+    (r->word-label . ,i386:r->word-label)
     (r-and . ,i386:r-and)
     (r-byte-mem-add . ,i386:r-byte-mem-add)
     (r-cmp-value . ,i386:r-cmp-value)