From: Christoph Mallon Date: Tue, 27 Nov 2012 20:42:48 +0000 (+0100) Subject: scripts: Simplify mapping flags. X-Git-Url: http://nsz.repo.hu/git/?a=commitdiff_plain;h=5095dfcb29710c50b3ed2d4a5af6d5aa97180086;p=libfirm scripts: Simplify mapping flags. --- diff --git a/ir/be/scripts/generate_regalloc_if.pl b/ir/be/scripts/generate_regalloc_if.pl index 2e2b1dfdc..b406e38bd 100755 --- a/ir/be/scripts/generate_regalloc_if.pl +++ b/ir/be/scripts/generate_regalloc_if.pl @@ -50,6 +50,12 @@ my $target_c = $target_dir."/gen_".$arch."_regalloc_if.c"; my $target_h = $target_dir."/gen_".$arch."_regalloc_if.h"; # helper function +sub map_flags { + my $prefix = shift; + my $flags = shift || "none"; + return join(" | ", map { "$prefix$_" } split(/\s*\|\s*/, $flags)); +} + sub translate_reg_type { my $t = shift; @@ -154,22 +160,7 @@ foreach my $class_name (keys(%reg_classes)) { $class_ptr = "&".$arch."_reg_classes[CLASS_".$class_name."]"; my $flags = pop(@class); $class_mode = $flags->{"mode"}; - my $class_flags = $flags->{"flags"}; - my $flags_prepared = ""; - - if(defined($class_flags)) { - my $first = 1; - foreach my $flag (split(/\|/, $class_flags)) { - if(!$first) { - $flags_prepared .= "|"; - } else { - $first = 0; - } - $flags_prepared .= "arch_register_class_flag_$flag"; - } - } else { - $flags_prepared = "arch_register_class_flag_none"; - } + my $flags_prepared = map_flags("arch_register_class_flag_", $flags->{"flags"}); $single_constraints .= <