X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=regcomp.pl;h=239787ae554ea11a1aa7ff4a6e31a1712092a2c2;hb=c30d8139ead4f83c6b3d27b2eace9ff0466eaf4c;hp=17472cc8110f1494430a4e8d35afe7dd65a416a5;hpb=f7819f85d6af0dcf9114284a4fe5ef21855e4e5a;p=p5sagit%2Fp5-mst-13.2.git diff --git a/regcomp.pl b/regcomp.pl index 17472cc..239787a 100644 --- a/regcomp.pl +++ b/regcomp.pl @@ -68,11 +68,9 @@ my $tmp_h = 'tmp_reg.h'; unlink $tmp_h if -f $tmp_h; -open OUT, ">$tmp_h"; -#*OUT=\*STDOUT; -binmode OUT; +my $out = safer_open($tmp_h); -printf OUT <) { if (/#define\s+(RXf_\w+)\s+(0x[A-F\d]+)/i) { - $rxfv{$1}= eval $2; - $val|=$rxfv{$1}; + my $newval = eval $2; + if($val & $newval) { + die sprintf "Both $1 and $reverse{$newval} use %08X", $newval; + } + $val|=$newval; + $rxfv{$1}= $newval; + $reverse{$newval} = $1; } } my %vrxf=reverse %rxfv; -printf OUT "\t/* Bits in extflags defined: %032b */\n",$val; +printf $out "\t/* Bits in extflags defined: %032b */\n",$val; for (0..31) { my $n=$vrxf{2**$_}||"UNUSED_BIT_$_"; $n=~s/^RXf_(PMf_)?//; - printf OUT qq(\t%-20s/* 0x%08x */\n), + printf $out qq(\t%-20s/* 0x%08x */\n), qq("$n",),2**$_; } -print OUT <