Remove emit_linelength. The obstack knows its length.
authorChristoph Mallon <christoph.mallon@gmx.de>
Sat, 15 Nov 2008 17:17:19 +0000 (17:17 +0000)
committerChristoph Mallon <christoph.mallon@gmx.de>
Sat, 15 Nov 2008 17:17:19 +0000 (17:17 +0000)
[r23687]

ir/be/beemitter.c
ir/be/beemitter.h

index f0f2481..62381f0 100644 (file)
 
 FILE           *emit_file;
 struct obstack  emit_obst;
-int             emit_linelength;
 
 void be_emit_init(FILE *file)
 {
        emit_file       = file;
-       emit_linelength = 0;
        obstack_init(&emit_obst);
 }
 
@@ -83,19 +81,20 @@ void be_emit_irprintf(const char *fmt, ...)
 
 void be_emit_write_line(void)
 {
-       char *finished_line = obstack_finish(&emit_obst);
+       size_t  len  = obstack_object_size(&emit_obst);
+       char   *line = obstack_finish(&emit_obst);
 
-       fwrite(finished_line, emit_linelength, 1, emit_file);
-       emit_linelength = 0;
-       obstack_free(&emit_obst, finished_line);
+       fwrite(line, 1, len, emit_file);
+       obstack_free(&emit_obst, line);
 }
 
 void be_emit_pad_comment(void)
 {
-       while(emit_linelength <= 30) {
-               be_emit_char(' ');
-       }
-       be_emit_cstring("    ");
+       size_t len = obstack_object_size(&emit_obst);
+       if (len > 30)
+               len = 30;
+       /* 34 spaces */
+       be_emit_string_len("                                  ", 34 - len);
 }
 
 void be_emit_finish_line_gas(const ir_node *node)
index 0d66d10..9e34c4a 100644 (file)
@@ -38,7 +38,6 @@
 /* don't use the following vars directly, they're only here for the inlines */
 extern FILE           *emit_file;
 extern struct obstack  emit_obst;
-extern int             emit_linelength;
 
 /**
  * Emit a character to the (assembler) output.
@@ -48,7 +47,6 @@ extern int             emit_linelength;
 static inline void be_emit_char(char c)
 {
        obstack_1grow(&emit_obst, c);
-       emit_linelength++;
 }
 
 /**
@@ -61,7 +59,6 @@ static inline void be_emit_char(char c)
 static inline void be_emit_string_len(const char *str, size_t l)
 {
        obstack_grow(&emit_obst, str, l);
-       emit_linelength += l;
 }
 
 /**