From ef2d40e97c1eaa02dc55b50c529e0c892f827263 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christian=20W=C3=BCrdig?= Date: Mon, 15 May 2006 16:50:16 +0000 Subject: [PATCH] fixed bug: keep %% instead of translating it into a function --- ir/be/scripts/generate_emitter.pl | 29 ++++++++++++++++------------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/ir/be/scripts/generate_emitter.pl b/ir/be/scripts/generate_emitter.pl index ebbf7a356..a927edbf0 100755 --- a/ir/be/scripts/generate_emitter.pl +++ b/ir/be/scripts/generate_emitter.pl @@ -79,31 +79,34 @@ foreach my $op (keys(%nodes)) { } # substitute all format parameter - while ($template =~ /\%([ASDX])(\d)|\%([COM])|\%(\w+)/) { + while ($template =~ /(\%\%)|\%([ASDX])(\d)|\%([COM])|\%(\w+)/) { $res .= $`; # get everything before the match - if ($1 && $1 eq "S") { + if ($1) { + $res .= "%%"; + } + elsif ($2 && $2 eq "S") { push(@params, "n"); - $res .= "%".$2."S"; # substitute %Sx with %xS + $res .= "%".$3."S"; # substitute %Sx with %xS } - elsif ($1 && $1 eq "D") { + elsif ($2 && $2 eq "D") { push(@params, "n"); - $res .= "%".$2."D"; # substitute %Dx with %xD + $res .= "%".$3."D"; # substitute %Dx with %xD } - elsif ($1 && $1 eq "X") { + elsif ($2 && $2 eq "X") { push(@params, "n"); - $res .= "%".$2."X"; # substitute %Xx with %xX + $res .= "%".$3."X"; # substitute %Xx with %xX } - elsif ($1 && $1 eq "A") { - push(@params, "get_irn_n(n, ".($2 - 1).")"); + elsif ($2 && $2 eq "A") { + push(@params, "get_irn_n(n, ".($3 - 1).")"); $res .= "%+F"; } - elsif ($3) { + elsif ($4) { push(@params, "n"); - $res .= "%".$3; + $res .= "%".$4; } - elsif ($4) { # backend provided function to call, has to return a string - push(@params, $4."(n, env)"); + elsif ($5) { # backend provided function to call, has to return a string + push(@params, $5."(n, env)"); $res .= "\%s"; } -- 2.20.1