projects
/
libfirm
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
register slots are now automatically allocated together with the $ARCH_attribute
[libfirm]
/
ir
/
be
/
scripts
/
generate_emitter.pl
diff --git
a/ir/be/scripts/generate_emitter.pl
b/ir/be/scripts/generate_emitter.pl
index
2262bda
..
ebbf7a3
100755
(executable)
--- a/
ir/be/scripts/generate_emitter.pl
+++ b/
ir/be/scripts/generate_emitter.pl
@@
-28,6
+28,8
@@
unless ($return = do $specfile) {
}
use strict "subs";
}
use strict "subs";
+my $comment_string_quoted = quotemeta($comment_string);
+
my $target_c = $target_dir."/gen_".$arch."_emitter.c";
my $target_h = $target_dir."/gen_".$arch."_emitter.h";
my $target_c = $target_dir."/gen_".$arch."_emitter.c";
my $target_h = $target_dir."/gen_".$arch."_emitter.h";
@@
-62,7
+64,8
@@
foreach my $op (keys(%nodes)) {
my $cnt = 0;
my $buf = 'cmd_buf';
my $cnt = 0;
my $buf = 'cmd_buf';
- foreach $template (split(/$comment_string/, $fmt, 2)) {
+ push(@obst_func, " cmnt_buf[0] = '\\0';\n");
+ foreach $template (split(/$comment_string_quoted/, $fmt, 2)) {
my @params;
my $res = "";
$cnt++;
my @params;
my $res = "";
$cnt++;
@@
-76,7
+79,7
@@
foreach my $op (keys(%nodes)) {
}
# substitute all format parameter
}
# substitute all format parameter
- while ($template =~ /\%([ASD])(\d)|\%([COM])|\%(\w+)/) {
+ while ($template =~ /\%([ASD
X
])(\d)|\%([COM])|\%(\w+)/) {
$res .= $`; # get everything before the match
if ($1 && $1 eq "S") {
$res .= $`; # get everything before the match
if ($1 && $1 eq "S") {
@@
-87,6
+90,10
@@
foreach my $op (keys(%nodes)) {
push(@params, "n");
$res .= "%".$2."D"; # substitute %Dx with %xD
}
push(@params, "n");
$res .= "%".$2."D"; # substitute %Dx with %xD
}
+ elsif ($1 && $1 eq "X") {
+ push(@params, "n");
+ $res .= "%".$2."X"; # substitute %Xx with %xX
+ }
elsif ($1 && $1 eq "A") {
push(@params, "get_irn_n(n, ".($2 - 1).")");
$res .= "%+F";
elsif ($1 && $1 eq "A") {
push(@params, "get_irn_n(n, ".($2 - 1).")");
$res .= "%+F";
@@
-115,7
+122,7
@@
foreach my $op (keys(%nodes)) {
}
}
}
}
- push(@obst_func, ' lc_efprintf(arg_env, F, "\t%-35s %-60s /* %+F
*/\n", cmd_buf, cmnt_buf
, n);'."\n");
+ push(@obst_func, ' lc_efprintf(arg_env, F, "\t%-35s %-60s /* %+F
(%+G) */\n", cmd_buf, cmnt_buf, n
, n);'."\n");
push(@obst_func, "}\n\n");
}
push(@obst_func, "}\n\n");
}