This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Extract the generated packprops array into packsizetables.c.
authorNicholas Clark <nick@ccl4.org>
Mon, 29 Apr 2013 09:23:11 +0000 (11:23 +0200)
committerNicholas Clark <nick@ccl4.org>
Mon, 20 May 2013 18:58:07 +0000 (20:58 +0200)
The C source is the output from genpacksizetables.pl
Previously it was pasted into pp_pack.c

 LocalWords:  packprops

MANIFEST
packsizetables.c [new file with mode: 0644]
pp_pack.c

index 90b5042..c0f042c 100644 (file)
--- a/MANIFEST
+++ b/MANIFEST
@@ -4424,6 +4424,7 @@ os2/perlrexx.c                    Support perl interpreter embedded in REXX
 os2/perlrexx.cmd               Test perl interpreter embedded in REXX
 overload.c                     generated overload enum (public)
 overload.h                     generated overload name table (implementation)
+packsizetables.c               The generated packprops array used in pp_pack.c
 pad.c                          Scratchpad functions
 pad.h                          Scratchpad headers
 parser.h                       parser object header
diff --git a/packsizetables.c b/packsizetables.c
new file mode 100644 (file)
index 0000000..7d33a46
--- /dev/null
@@ -0,0 +1,249 @@
+/* These tables are regenerated by genpacksizetables.pl (and then hand pasted
+   in).  You're unlikely ever to need to regenerate them.  */
+
+#if TYPE_IS_SHRIEKING != 0x100
+   ++++shriek offset should be 256
+#endif
+
+typedef U8 packprops_t;
+#if 'J'-'I' == 1
+/* ASCII */
+STATIC const packprops_t packprops[512] = {
+    /* normal */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0,
+    /* C */ sizeof(unsigned char),
+#if defined(HAS_LONG_DOUBLE) && defined(USE_LONG_DOUBLE)
+    /* D */ LONG_DOUBLESIZE,
+#else
+    0,
+#endif
+    0,
+    /* F */ NVSIZE,
+    0, 0,
+    /* I */ sizeof(unsigned int),
+    /* J */ UVSIZE,
+    0,
+    /* L */ SIZE32,
+    0,
+    /* N */ SIZE32,
+    0, 0,
+#if defined(HAS_QUAD)
+    /* Q */ sizeof(Uquad_t),
+#else
+    0,
+#endif
+    0,
+    /* S */ SIZE16,
+    0,
+    /* U */ sizeof(char) | PACK_SIZE_UNPREDICTABLE,
+    /* V */ SIZE32,
+    /* W */ sizeof(unsigned char) | PACK_SIZE_UNPREDICTABLE,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* c */ sizeof(char),
+    /* d */ sizeof(double),
+    0,
+    /* f */ sizeof(float),
+    0, 0,
+    /* i */ sizeof(int),
+    /* j */ IVSIZE,
+    0,
+    /* l */ SIZE32,
+    0,
+    /* n */ SIZE16,
+    0,
+    /* p */ sizeof(char *) | PACK_SIZE_CANNOT_CSUM,
+#if defined(HAS_QUAD)
+    /* q */ sizeof(Quad_t),
+#else
+    0,
+#endif
+    0,
+    /* s */ SIZE16,
+    0, 0,
+    /* v */ SIZE16,
+    /* w */ sizeof(char) | PACK_SIZE_UNPREDICTABLE | PACK_SIZE_CANNOT_CSUM,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0,
+    /* shrieking */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* I */ sizeof(unsigned int),
+    0, 0,
+    /* L */ sizeof(unsigned long),
+    0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* N */ SIZE32,
+#else
+    0,
+#endif
+    0, 0, 0, 0,
+    /* S */ sizeof(unsigned short),
+    0, 0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* V */ SIZE32,
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0,
+    /* i */ sizeof(int),
+    0, 0,
+    /* l */ sizeof(long),
+    0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* n */ SIZE16,
+#else
+    0,
+#endif
+    0, 0, 0, 0,
+    /* s */ sizeof(short),
+    0, 0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* v */ SIZE16,
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+#else
+/* EBCDIC (or bust) */
+STATIC const packprops_t packprops[512] = {
+    /* normal */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0,
+    /* c */ sizeof(char),
+    /* d */ sizeof(double),
+    0,
+    /* f */ sizeof(float),
+    0, 0,
+    /* i */ sizeof(int),
+    0, 0, 0, 0, 0, 0, 0,
+    /* j */ IVSIZE,
+    0,
+    /* l */ SIZE32,
+    0,
+    /* n */ SIZE16,
+    0,
+    /* p */ sizeof(char *) | PACK_SIZE_CANNOT_CSUM,
+#if defined(HAS_QUAD)
+    /* q */ sizeof(Quad_t),
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* s */ SIZE16,
+    0, 0,
+    /* v */ SIZE16,
+    /* w */ sizeof(char) | PACK_SIZE_UNPREDICTABLE | PACK_SIZE_CANNOT_CSUM,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* C */ sizeof(unsigned char),
+#if defined(HAS_LONG_DOUBLE) && defined(USE_LONG_DOUBLE)
+    /* D */ LONG_DOUBLESIZE,
+#else
+    0,
+#endif
+    0,
+    /* F */ NVSIZE,
+    0, 0,
+    /* I */ sizeof(unsigned int),
+    0, 0, 0, 0, 0, 0, 0,
+    /* J */ UVSIZE,
+    0,
+    /* L */ SIZE32,
+    0,
+    /* N */ SIZE32,
+    0, 0,
+#if defined(HAS_QUAD)
+    /* Q */ sizeof(Uquad_t),
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* S */ SIZE16,
+    0,
+    /* U */ sizeof(char) | PACK_SIZE_UNPREDICTABLE,
+    /* V */ SIZE32,
+    /* W */ sizeof(unsigned char) | PACK_SIZE_UNPREDICTABLE,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* shrieking */
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* i */ sizeof(int),
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* l */ sizeof(long),
+    0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* n */ SIZE16,
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* s */ sizeof(short),
+    0, 0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* v */ SIZE16,
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0,
+    /* I */ sizeof(unsigned int),
+    0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* L */ sizeof(unsigned long),
+    0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* N */ SIZE32,
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    /* S */ sizeof(unsigned short),
+    0, 0,
+#if defined(PERL_PACK_CAN_SHRIEKSIGN)
+    /* V */ SIZE32,
+#else
+    0,
+#endif
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
+};
+#endif
index 6c3dc5f..b41ec78 100644 (file)
--- a/pp_pack.c
+++ b/pp_pack.c
@@ -389,255 +389,7 @@ S_mul128(pTHX_ SV *sv, U8 m)
 #define PACK_SIZE_UNPREDICTABLE                0x40    /* Not a fixed size element */
 #define PACK_SIZE_MASK                 0x3F
 
-/* These tables are regenerated by genpacksizetables.pl (and then hand pasted
-   in).  You're unlikely ever to need to regenerate them.  */
-
-#if TYPE_IS_SHRIEKING != 0x100
-   ++++shriek offset should be 256
-#endif
-
-typedef U8 packprops_t;
-#if 'J'-'I' == 1
-/* ASCII */
-STATIC const packprops_t packprops[512] = {
-    /* normal */
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0,
-    /* C */ sizeof(unsigned char),
-#if defined(HAS_LONG_DOUBLE) && defined(USE_LONG_DOUBLE)
-    /* D */ LONG_DOUBLESIZE,
-#else
-    0,
-#endif
-    0,
-    /* F */ NVSIZE,
-    0, 0,
-    /* I */ sizeof(unsigned int),
-    /* J */ UVSIZE,
-    0,
-    /* L */ SIZE32,
-    0,
-    /* N */ SIZE32,
-    0, 0,
-#if defined(HAS_QUAD)
-    /* Q */ sizeof(Uquad_t),
-#else
-    0,
-#endif
-    0,
-    /* S */ SIZE16,
-    0,
-    /* U */ sizeof(char) | PACK_SIZE_UNPREDICTABLE,
-    /* V */ SIZE32,
-    /* W */ sizeof(unsigned char) | PACK_SIZE_UNPREDICTABLE,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* c */ sizeof(char),
-    /* d */ sizeof(double),
-    0,
-    /* f */ sizeof(float),
-    0, 0,
-    /* i */ sizeof(int),
-    /* j */ IVSIZE,
-    0,
-    /* l */ SIZE32,
-    0,
-    /* n */ SIZE16,
-    0,
-    /* p */ sizeof(char *) | PACK_SIZE_CANNOT_CSUM,
-#if defined(HAS_QUAD)
-    /* q */ sizeof(Quad_t),
-#else
-    0,
-#endif
-    0,
-    /* s */ SIZE16,
-    0, 0,
-    /* v */ SIZE16,
-    /* w */ sizeof(char) | PACK_SIZE_UNPREDICTABLE | PACK_SIZE_CANNOT_CSUM,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0,
-    /* shrieking */
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* I */ sizeof(unsigned int),
-    0, 0,
-    /* L */ sizeof(unsigned long),
-    0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* N */ SIZE32,
-#else
-    0,
-#endif
-    0, 0, 0, 0,
-    /* S */ sizeof(unsigned short),
-    0, 0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* V */ SIZE32,
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0,
-    /* i */ sizeof(int),
-    0, 0,
-    /* l */ sizeof(long),
-    0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* n */ SIZE16,
-#else
-    0,
-#endif
-    0, 0, 0, 0,
-    /* s */ sizeof(short),
-    0, 0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* v */ SIZE16,
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-#else
-/* EBCDIC (or bust) */
-STATIC const packprops_t packprops[512] = {
-    /* normal */
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0,
-    /* c */ sizeof(char),
-    /* d */ sizeof(double),
-    0,
-    /* f */ sizeof(float),
-    0, 0,
-    /* i */ sizeof(int),
-    0, 0, 0, 0, 0, 0, 0,
-    /* j */ IVSIZE,
-    0,
-    /* l */ SIZE32,
-    0,
-    /* n */ SIZE16,
-    0,
-    /* p */ sizeof(char *) | PACK_SIZE_CANNOT_CSUM,
-#if defined(HAS_QUAD)
-    /* q */ sizeof(Quad_t),
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* s */ SIZE16,
-    0, 0,
-    /* v */ SIZE16,
-    /* w */ sizeof(char) | PACK_SIZE_UNPREDICTABLE | PACK_SIZE_CANNOT_CSUM,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* C */ sizeof(unsigned char),
-#if defined(HAS_LONG_DOUBLE) && defined(USE_LONG_DOUBLE)
-    /* D */ LONG_DOUBLESIZE,
-#else
-    0,
-#endif
-    0,
-    /* F */ NVSIZE,
-    0, 0,
-    /* I */ sizeof(unsigned int),
-    0, 0, 0, 0, 0, 0, 0,
-    /* J */ UVSIZE,
-    0,
-    /* L */ SIZE32,
-    0,
-    /* N */ SIZE32,
-    0, 0,
-#if defined(HAS_QUAD)
-    /* Q */ sizeof(Uquad_t),
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* S */ SIZE16,
-    0,
-    /* U */ sizeof(char) | PACK_SIZE_UNPREDICTABLE,
-    /* V */ SIZE32,
-    /* W */ sizeof(unsigned char) | PACK_SIZE_UNPREDICTABLE,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* shrieking */
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* i */ sizeof(int),
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* l */ sizeof(long),
-    0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* n */ SIZE16,
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* s */ sizeof(short),
-    0, 0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* v */ SIZE16,
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0,
-    /* I */ sizeof(unsigned int),
-    0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* L */ sizeof(unsigned long),
-    0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* N */ SIZE32,
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    /* S */ sizeof(unsigned short),
-    0, 0,
-#if defined(PERL_PACK_CAN_SHRIEKSIGN)
-    /* V */ SIZE32,
-#else
-    0,
-#endif
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-    0, 0, 0, 0, 0, 0, 0, 0, 0, 0
-};
-#endif
+#include "packsizetables.c"
 
 STATIC U8
 uni_to_byte(pTHX_ const char **s, const char *end, I32 datumtype)