}
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 $cnt = 0;
my $buf = 'cmd_buf';
- foreach $template (split(/$comment_string/, $fmt, 2)) {
+ foreach $template (split(/$comment_string_quoted/, $fmt, 2)) {
my @params;
my $res = "";
$cnt++;
}
# substitute all format parameter
- while ($template =~ /\%([ASD])(\d)|\%([COM])|\%(\w+)/) {
+ while ($template =~ /\%([ASDX])(\d)|\%([COM])|\%(\w+)/) {
$res .= $`; # get everything before the match
if ($1 && $1 eq "S") {
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";
}
}
- 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");
}