@@ -6315,49 +6315,39 @@ EXTCONST U8 PL_magic_data[256] =
63156315EXTCONST U8 PL_magic_data[256 ];
63166316#endif
63176317
6318- #ifdef DOINIT
63196318 /* NL IV NV PV INV PI PN MG RX GV LV AV HV CV FM IO OBJ */
63206319EXTCONST bool
6321- PL_valid_types_IVX[] = { 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 };
6320+ PL_valid_types_IVX[] INIT ( { 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 }) ;
63226321EXTCONST bool
6323- PL_valid_types_NVX[] = { 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 };
6322+ PL_valid_types_NVX[] INIT ( { 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 0 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 }) ;
63246323EXTCONST bool
6325- PL_valid_types_PVX[] = { 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 0 };
6324+ PL_valid_types_PVX[] INIT ( { 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 1 , 1 , 1 , 0 }) ;
63266325EXTCONST bool
6327- PL_valid_types_RV[] = { 0 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 };
6326+ PL_valid_types_RV[] INIT ( { 0 , 1 , 0 , 1 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 1 , 0 }) ;
63286327EXTCONST bool
6329- PL_valid_types_IV_set[] = { 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 0 };
6328+ PL_valid_types_IV_set[]
6329+ INIT ({ 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 1 , 1 , 0 });
63306330EXTCONST bool
6331- PL_valid_types_NV_set[] = { 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 };
6331+ PL_valid_types_NV_set[]
6332+ INIT ({ 0 , 0 , 1 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 });
63326333
63336334EXTCONST U8
6334- PL_deBruijn_bitpos_tab32[] = {
6335+ PL_deBruijn_bitpos_tab32[]
6336+ INIT ({
63356337 /* https://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn */
63366338 0 , 1 , 28 , 2 , 29 , 14 , 24 , 3 , 30 , 22 , 20 , 15 , 25 , 17 , 4 , 8 ,
63376339 31 , 27 , 13 , 23 , 21 , 19 , 16 , 7 , 26 , 12 , 18 , 6 , 11 , 5 , 10 , 9
6338- };
6340+ }) ;
63396341
63406342EXTCONST U8
6341- PL_deBruijn_bitpos_tab64[] = {
6343+ PL_deBruijn_bitpos_tab64[]
6344+ INIT ({
63426345 /* https://stackoverflow.com/questions/11376288/fast-computing-of-log2-for-64-bit-integers */
63436346 63 , 0 , 58 , 1 , 59 , 47 , 53 , 2 , 60 , 39 , 48 , 27 , 54 , 33 , 42 , 3 ,
63446347 61 , 51 , 37 , 40 , 49 , 18 , 28 , 20 , 55 , 30 , 34 , 11 , 43 , 14 , 22 , 4 ,
63456348 62 , 57 , 46 , 52 , 38 , 26 , 32 , 41 , 50 , 36 , 17 , 19 , 29 , 10 , 13 , 21 ,
63466349 56 , 45 , 25 , 31 , 35 , 16 , 9 , 12 , 44 , 24 , 15 , 8 , 23 , 7 , 6 , 5
6347- };
6348-
6349- #else
6350-
6351- EXTCONST bool PL_valid_types_IVX[];
6352- EXTCONST bool PL_valid_types_NVX[];
6353- EXTCONST bool PL_valid_types_PVX[];
6354- EXTCONST bool PL_valid_types_RV[];
6355- EXTCONST bool PL_valid_types_IV_set[];
6356- EXTCONST bool PL_valid_types_NV_set[];
6357- EXTCONST U8 PL_deBruijn_bitpos_tab32[];
6358- EXTCONST U8 PL_deBruijn_bitpos_tab64[];
6359-
6360- #endif
6350+ });
63616351
63626352/* The constants for using PL_deBruijn_bitpos_tab */
63636353#define PERL_deBruijnMagic32_ 0x077CB531
0 commit comments