+BEGIN {
+ # Get function prototypes
+ require 'regen_lib.pl';
+}
#use Fatal qw(open close rename chmod unlink);
open DESC, 'regcomp.sym';
$ind = 0;
unlink $tmp_h if -f $tmp_h;
open OUT, ">$tmp_h";
+binmode OUT;
print OUT <<EOP;
-/* !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
- This file is built by regcomp.pl from regcomp.sym.
+/* -*- buffer-read-only: t -*-
+ !!!!!!! DO NOT EDIT THIS FILE !!!!!!!
+ This file is built by regcomp.pl from regcomp.sym.
Any changes made here will be lost!
*/
#ifdef REG_COMP_C
-const static U8 regarglen[] = {
+static const U8 regarglen[] = {
EOP
$ind = 0;
print OUT <<EOP;
};
-const static char reg_off_by_arg[] = {
+static const char reg_off_by_arg[] = {
EOP
$ind = 0;
while (++$ind <= $tot) {
$size = $longj[$ind] || 0;
-
+
print OUT <<EOP;
$size, /* $name[$ind] */
EOP
print OUT <<EOP;
};
+
+#ifdef DEBUGGING
+static const char * const reg_name[] = {
+EOP
+
+$ind = 0;
+while (++$ind <= $tot) {
+ $hind = sprintf "%#4x", $ind-1;
+ $size = $longj[$ind] || 0;
+
+ print OUT <<EOP;
+ "$name[$ind]", /* $hind */
+EOP
+}
+
+print OUT <<EOP;
+};
+
+static const int reg_num = $tot;
+
+#endif /* DEBUGGING */
#endif /* REG_COMP_C */
+/* ex: set ro: */
EOP
-close OUT;
+close OUT or die "close $tmp_h: $!";
-chmod 0666, 'regnodes.h';
-unlink 'regnodes.h';
-rename $tmp_h, 'regnodes.h';
+safer_rename $tmp_h, 'regnodes.h';