sparc: implement float->unsigned conversions
[libfirm] / ir / be / scripts / generate_emitter_new.pl
index a51cae2..f1d9b63 100755 (executable)
@@ -22,8 +22,6 @@
 # This script generates C code which emits assembler code for the
 # assembler ir nodes. It takes a "emit" key from the node specification
 # and substitutes lines starting with . with a corresponding fprintf().
-# Creation: 2005/11/07
-# $Id$
 
 use strict;
 use Data::Dumper;
@@ -35,6 +33,7 @@ our $arch;
 our %nodes;
 our %emit_templates;
 our $finish_line_template = "be_emit_finish_line_gas(node);";
+our $indent_line_func;
 
 my $target_c = $target_dir."/gen_".$arch."_emitter.c";
 my $target_h = $target_dir."/gen_".$arch."_emitter.h";
@@ -47,10 +46,16 @@ my $line;
 sub create_emitter {
        my $result = shift;
        my $indent = shift;
-       my $template = "\\t" . shift;
+       my $template = shift;
        our %emit_templates;
        our $arch;
 
+       if (!defined($indent_line_func)) {
+               $template = "\\t" . $template;
+       } else {
+               push(@{$result}, "${indent}${indent_line_func};\n");
+       }
+
        my @tokens = ($template =~ m/(?:[^%]|%%)+|\%[a-zA-Z_][a-zA-Z0-9_]*|%\./g);
        for (@tokens) {
                SWITCH: {