|
33 | 33 | sub generate_opnames_h_epilogue;
|
34 | 34 | sub generate_opnames_h_opcode_predicates;
|
35 | 35 |
|
| 36 | +sub generate_pp_proto_h; |
| 37 | + |
36 | 38 | my $restrict_to_core = "if defined(PERL_CORE) || defined(PERL_EXT)";
|
37 | 39 |
|
38 | 40 | BEGIN {
|
@@ -972,6 +974,7 @@ package main;
|
972 | 974 |
|
973 | 975 | generate_opcode_h;
|
974 | 976 | generate_opnames_h;
|
| 977 | +generate_pp_proto_h; |
975 | 978 |
|
976 | 979 | sub gen_op_is_macro {
|
977 | 980 | my ($op_is, $macname) = @_;
|
@@ -1003,23 +1006,9 @@ sub gen_op_is_macro {
|
1003 | 1006 | }
|
1004 | 1007 | }
|
1005 | 1008 |
|
1006 |
| -my $pp = open_new('pp_proto.h', '>', |
1007 |
| - { by => 'opcode.pl', from => 'its data' }); |
1008 |
| - |
1009 |
| -{ |
1010 |
| - my %funcs; |
1011 |
| - for (@ops) { |
1012 |
| - my $name = $alias{$_} ? $alias{$_}[0] : "Perl_pp_$_"; |
1013 |
| - ++$funcs{$name}; |
1014 |
| - } |
1015 |
| - for (sort keys %funcs) { |
1016 |
| - print $pp qq{PERL_CALLCONV OP *$_(pTHX) __attribute__visibility__("hidden");\n}; |
1017 |
| - } |
1018 |
| -} |
1019 |
| - |
1020 | 1009 | OP_PRIVATE::print_B_Op_private($oprivpm);
|
1021 | 1010 |
|
1022 |
| -foreach ($pp, $oprivpm) { |
| 1011 | +foreach ($oprivpm) { |
1023 | 1012 | read_only_bottom_close_and_rename($_);
|
1024 | 1013 | }
|
1025 | 1014 |
|
@@ -1324,3 +1313,26 @@ sub generate_opnames_h_opcode_predicates {
|
1324 | 1313 | gen_op_is_macro( \%OP_IS_DIRHOP, 'OP_IS_DIRHOP');
|
1325 | 1314 | gen_op_is_macro( \%OP_IS_INFIX_BIT, 'OP_IS_INFIX_BIT');
|
1326 | 1315 | }
|
| 1316 | + |
| 1317 | +sub generate_pp_proto_h { |
| 1318 | + my $pp = open_new('pp_proto.h', '>', { |
| 1319 | + by => 'opcode.pl', |
| 1320 | + from => 'its data', |
| 1321 | + }); |
| 1322 | + |
| 1323 | + my $old = select $pp; |
| 1324 | + |
| 1325 | + my %funcs; |
| 1326 | + for (@ops) { |
| 1327 | + my $name = $alias{$_} ? $alias{$_}[0] : "Perl_pp_$_"; |
| 1328 | + ++$funcs{$name}; |
| 1329 | + } |
| 1330 | + |
| 1331 | + for (sort keys %funcs) { |
| 1332 | + print $pp qq{PERL_CALLCONV OP *$_(pTHX) __attribute__visibility__("hidden");\n}; |
| 1333 | + } |
| 1334 | + |
| 1335 | + read_only_bottom_close_and_rename(select); |
| 1336 | + |
| 1337 | + select $old; |
| 1338 | +} |
0 commit comments