ld: Add pdb support to aarch64-w64-mingw32
authorMark Harmstone <mark@harmstone.com>
Mon, 23 Jan 2023 23:01:54 +0000 (23:01 +0000)
committerMark Harmstone <mark@harmstone.com>
Wed, 25 Jan 2023 22:26:18 +0000 (22:26 +0000)
This extends PDB support to the aarch64 PE targets.

The changes to the test files are just to make it so they can be assembled as
either x86, x86_64, or aarch64, mainly by changing the comment style.
The only actual code change here is in adding the architecture constants
to pdb.c.

16 files changed:
ld/configure.tgt
ld/emultempl/pep.em
ld/pdb.c
ld/pdb.h
ld/testsuite/ld-pe/pdb-syms1a.s
ld/testsuite/ld-pe/pdb-syms1b.s
ld/testsuite/ld-pe/pdb-syms2.s
ld/testsuite/ld-pe/pdb-types1a.s
ld/testsuite/ld-pe/pdb-types1b.s
ld/testsuite/ld-pe/pdb-types2a.s
ld/testsuite/ld-pe/pdb-types2b.s
ld/testsuite/ld-pe/pdb-types3a.s
ld/testsuite/ld-pe/pdb-types3b.s
ld/testsuite/ld-pe/pdb.exp
ld/testsuite/ld-pe/pdb3a.s
ld/testsuite/ld-pe/pdb3b.s

index 4f9a61f95ce8a6986cb0748aa756a4259248d329..efd430958442290b6d34c9225dc5f62b4f984c95 100644 (file)
@@ -121,7 +121,7 @@ aarch64-*-haiku*)   targ_emul=aarch64haiku
 aarch64-*-pe* | aarch64-*-mingw*)
                        targ_emul=aarch64pe
                        targ_extra_emuls="arm64pe"
-                       targ_extra_ofiles="deffilep.o pep-dll-aarch64.o pe-dll.o"
+                       targ_extra_ofiles="deffilep.o pep-dll-aarch64.o pe-dll.o pdb.o"
                        ;;
 alpha*-*-freebsd* | alpha*-*-kfreebsd*-gnu)
                        targ_emul=elf64alpha_fbsd
index 5a53ab3f7f2f87ee47ae4bbdb0807f82ad5adbdc..613a2c7053169b1123f86205a2862af7a58d0484 100644 (file)
@@ -79,7 +79,8 @@ EOF
 
 case ${target} in
   x86_64-*-mingw* | x86_64-*-pe | x86_64-*-pep | x86_64-*-cygwin | \
-  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe)
+  i[3-7]86-*-mingw32* | i[3-7]86-*-cygwin* | i[3-7]86-*-winnt | i[3-7]86-*-pe | \
+  aarch64-*-mingw* | aarch64-*-pe* )
 fragment <<EOF
 #include "pdb.h"
 EOF
index dade888b8850e71c9c0a580b61831c407c2cf81c..12c4ac4b11275a54ce4370e6ac6469fb506c4429 100644 (file)
--- a/ld/pdb.c
+++ b/ld/pdb.c
@@ -591,13 +591,20 @@ populate_type_stream (bfd *pdb, bfd *stream, struct types *types)
 static uint16_t
 get_arch_number (bfd *abfd)
 {
-  if (abfd->arch_info->arch != bfd_arch_i386)
-    return 0;
+  switch (abfd->arch_info->arch)
+    {
+    case bfd_arch_i386:
+      if (abfd->arch_info->mach & bfd_mach_x86_64)
+       return IMAGE_FILE_MACHINE_AMD64;
+      else
+       return IMAGE_FILE_MACHINE_I386;
 
-  if (abfd->arch_info->mach & bfd_mach_x86_64)
-    return IMAGE_FILE_MACHINE_AMD64;
+    case bfd_arch_aarch64:
+      return IMAGE_FILE_MACHINE_ARM64;
 
-  return IMAGE_FILE_MACHINE_I386;
+    default:
+      return 0;
+    }
 }
 
 /* Validate the DEBUG_S_FILECHKSMS entry within a module's .debug$S
@@ -3618,13 +3625,20 @@ handle_debugt_section (asection *s, bfd *mod, struct types *types,
 static uint16_t
 target_processor (bfd *abfd)
 {
-  if (abfd->arch_info->arch != bfd_arch_i386)
-    return 0;
+  switch (abfd->arch_info->arch)
+    {
+    case bfd_arch_i386:
+      if (abfd->arch_info->mach & bfd_mach_x86_64)
+       return CV_CFL_X64;
+      else
+       return CV_CFL_80386;
 
-  if (abfd->arch_info->mach & bfd_mach_x86_64)
-    return CV_CFL_X64;
-  else
-    return CV_CFL_80386;
+    case bfd_arch_aarch64:
+      return CV_CFL_ARM64;
+
+    default:
+      return 0;
+    }
 }
 
 /* Create the symbols that go in "* Linker *", the dummy module created
index ea2db5fd8fa7695789a8f7934a5bf9e820707a0e..18e18e7111a13ffe0543536b546a8430778cb4e4 100644 (file)
--- a/ld/pdb.h
+++ b/ld/pdb.h
@@ -820,6 +820,7 @@ struct objname
 
 #define CV_CFL_80386                   0x03
 #define CV_CFL_X64                     0xD0
+#define CV_CFL_ARM64                   0xF6
 
 #define CV_CFL_LINK                    0x07
 
index c1929c3ec858be3b77334a386f7d1d071c3d881c..d076bbc776d400de23a9afe986f6fc28fb66e413 100644 (file)
 .gproc2:
 .short .gproc2_end - .gproc2 - 2
 .short S_GPROC32
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long 1 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1002 # type
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long 1 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1002 /* type */
 .secrel32 proc2
 .secidx proc2
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc2"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc2_end:
 .short .udt1 - .gproc2_end - 2
@@ -48,7 +48,7 @@
 .udt1:
 .short .syms_end - .udt1 - 2
 .short S_UDT
-.long 0x1004 # struct bar
+.long 0x1004 /* struct bar */
 .asciz "bar"
 
 .syms_end:
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, const uint32_t
+/* Type 1000, const uint32_t */
 .mod1:
 .short .arglist1 - .mod1 - 2
 .short LF_MODIFIER
 .long T_UINT4
-.short 1 # const
+.short 1 /* const */
 .p2align 2
 
-# Type 1001, arglist (uint32_t)
+/* Type 1001, arglist (uint32_t) */
 .arglist1:
 .short .proctype1 - .arglist1 - 2
 .short LF_ARGLIST
-.long 1 # no. entries
+.long 1 /* no. entries */
 .long T_UINT4
 
 # Type 1002, procedure (return type T_VOID, arglist 1001)
 .short .fieldlist1 - .proctype1 - 2
 .short LF_PROCEDURE
 .long T_VOID
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 1 # no. parameters
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 1 /* no. parameters */
 .long 0x1001
 
-# Type 1003, field list for struct bar
+/* Type 1003, field list for struct bar */
 .fieldlist1:
 .short .struct1 - .fieldlist1 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_UINT4
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num1"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 1004, declaration of struct bar
+/* Type 1004, declaration of struct bar */
 .struct1:
 .short .types_end - .struct1 - 2
 .short LF_STRUCTURE
-.short 1 # no. members
-.short 0 # property
-.long 0x1003 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
-.asciz "bar" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.short 1 /* no. members */
+.short 0 /* property */
+.long 0x1003 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
+.asciz "bar" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .types_end:
index ddc471104b5090865ac64e8af27f565fd1a6e378..876757dea102ce37ecf94c6ce9e728ec9490fced 100644 (file)
 .ldata1:
 .short .ldata1a - .ldata1 - 2
 .short S_LDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar1
 .secidx lvar1
 .asciz "lvar1"
 
-.ldata1a: # duplicate with same address
+.ldata1a: /* duplicate with same address */
 .short .ldata1b - .ldata1a - 2
 .short S_LDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar1
 .secidx lvar1
 .asciz "lvar1"
 
-.ldata1b: # duplicate with different address
+.ldata1b: /* duplicate with different address */
 .short .ldata2 - .ldata1b - 2
 .short S_LDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar1a
 .secidx lvar1a
 .asciz "lvar1"
@@ -71,7 +71,7 @@
 .ldata2:
 .short .gdata1 - .ldata2 - 2
 .short S_LDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar2
 .secidx lvar2
 .asciz "lvar2"
@@ -79,7 +79,7 @@
 .gdata1:
 .short .gdata2 - .gdata1 - 2
 .short S_GDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 gvar1
 .secidx gvar1
 .asciz "gvar1"
@@ -87,7 +87,7 @@
 .gdata2:
 .short .gproc1 - .gdata2 - 2
 .short S_GDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 gvar2
 .secidx gvar2
 .asciz "gvar2"
 .gproc1:
 .short .gproc1_end - .gproc1 - 2
 .short S_GPROC32
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc1_end - proc1 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1002 # type
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc1_end - proc1 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1002 /* type */
 .secrel32 proc1
 .secidx proc1
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc1"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc1_end:
 .short .gproc2 - .gproc1_end - 2
 .gproc2:
 .short .udt1 - .gproc2 - 2
 .short S_GPROC32
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc2_end - proc2 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1002 # type
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc2_end - proc2 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1002 /* type */
 .secrel32 proc2
 .secidx proc2
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc2"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .udt1:
 .short .ldata3 - .udt1 - 2
 .short S_UDT
-.long 0x1011 # struct bar
+.long 0x1011 /* struct bar */
 .asciz "bar"
 
 .ldata3:
 .short .lthread1 - .ldata3 - 2
 .short S_LDATA32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar3
 .secidx lvar3
 .asciz "lvar3"
 .lthread1:
 .short .gproc2_end - .lthread1 - 2
 .short S_LTHREAD32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar4
 .secidx lvar4
 .asciz "lvar4"
 .gproc3:
 .short .gproc3_end - .gproc3 - 2
 .short S_LPROC32
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc3_end - proc3 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1002 # type
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc3_end - proc3 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1002 /* type */
 .secrel32 proc3
 .secidx proc3
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc3"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc3_end:
 .short .gproc4 - .gproc3_end - 2
 .gproc4:
 .short .gproc4_end - .gproc4 - 2
 .short S_LPROC32
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc4_end - proc4 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1002 # type
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc4_end - proc4 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1002 /* type */
 .secrel32 proc4
 .secidx proc4
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc4"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc4_end:
 .short .gproc5 - .gproc4_end - 2
 .gproc5:
 .short .gproc5_end - .gproc5 - 2
 .short S_GPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc5_end - proc5 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1003 # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc5_end - proc5 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1003 /* func ID */
 .secrel32 proc5
 .secidx proc5
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc5"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc5_end:
 .short .gproc6 - .gproc5_end - 2
 .gproc6:
 .short .gproc6_end - .gproc6 - 2
 .short S_GPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc6_end - proc6 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1004 # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc6_end - proc6 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1004 /* func ID */
 .secrel32 proc6
 .secidx proc6
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc6"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc6_end:
 .short .gproc7 - .gproc6_end - 2
 .gproc7:
 .short .gproc7_end - .gproc7 - 2
 .short S_GPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc7_end - proc7 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x100a # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc7_end - proc7 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x100a /* func ID */
 .secrel32 proc7
 .secidx proc7
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "foo::method"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
 .gproc7_end:
 .short .gproc8 - .gproc7_end - 2
 .gproc8:
 .short .gproc8_end - .gproc8 - 2
 .short S_GPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc8_end - proc8 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x100b # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc8_end - proc8 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x100b /* func ID */
 .secrel32 proc8
 .secidx proc8
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "foo::method2"
 
 .gproc8_end:
 .gproc9:
 .short .gproc9_end - .gproc9 - 2
 .short S_LPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc9_end - proc9 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x100c # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc9_end - proc9 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x100c /* func ID */
 .secrel32 proc9
 .secidx proc9
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc9"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc9_end:
 .short .gproc10 - .gproc9_end - 2
 .gproc10:
 .short .gproc10_end - .gproc10 - 2
 .short S_GPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc10_end - proc10 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x100d # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc10_end - proc10 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x100d /* func ID */
 .secrel32 proc10
 .secidx proc10
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc10"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .gproc10_end:
 .short .gproc11 - .gproc10_end - 2
 .gproc11:
 .short .gproc11_end - .gproc11 - 2
 .short S_LPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc11_end - proc11 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x100e # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc11_end - proc11 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x100e /* func ID */
 .secrel32 proc11
 .secidx proc11
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "foo::method3"
 
 .gproc11_end:
 .gproc12:
 .short .gproc12_end - .gproc12 - 2
 .short S_LPROC32_ID
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc12_end - proc12 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x100f # func ID
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc12_end - proc12 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x100f /* func ID */
 .secrel32 proc12
 .secidx proc12
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "foo::method4"
 
 .gproc12_end:
 .udt2:
 .short .constant1 - .udt2 - 2
 .short S_UDT
-.long 0x1009 # class foo
+.long 0x1009 /* class foo */
 .asciz "foo"
 
 .constant1:
 .long T_UINT4
 .short 42
 .asciz "answer"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .constant2:
 .short .lthread2 - .constant2 - 2
 .short LF_UQUADWORD
 .quad 0x0123456789abcdef
 .asciz "answer2"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .lthread2:
 .short .lthread3 - .lthread2 - 2
 .short S_LTHREAD32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar5
 .secidx lvar5
 .asciz "lvar5"
 .lthread3:
 .short .gthread1 - .lthread3 - 2
 .short S_LTHREAD32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 lvar6
 .secidx lvar6
 .asciz "lvar6"
 .gthread1:
 .short .gthread2 - .gthread1 - 2
 .short S_GTHREAD32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 gvar3
 .secidx gvar3
 .asciz "gvar3"
 .gthread2:
 .short .syms_end - .gthread2 - 2
 .short S_GTHREAD32
-.long 0x1000 # const uint32_t
+.long 0x1000 /* const uint32_t */
 .secrel32 gvar4
 .secidx gvar4
 .asciz "gvar4"
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, const uint32_t
+/* Type 1000, const uint32_t */
 .mod1:
 .short .arglist1 - .mod1 - 2
 .short LF_MODIFIER
 .long T_UINT4
-.short 1 # const
+.short 1 /* const */
 .p2align 2
 
-# Type 1001, arglist (uint32_t)
+/* Type 1001, arglist (uint32_t) */
 .arglist1:
 .short .proctype1 - .arglist1 - 2
 .short LF_ARGLIST
-.long 1 # no. entries
+.long 1 /* no. entries */
 .long T_UINT4
 
-# Type 1002, procedure (return type T_VOID, arglist 1001)
+/* Type 1002, procedure (return type T_VOID, arglist 1001) */
 .proctype1:
 .short .funcid1 - .proctype1 - 2
 .short LF_PROCEDURE
 .long T_VOID
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 1 # no. parameters
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 1 /* no. parameters */
 .long 0x1001
 
-# Type 1003, func ID for proc5
+/* Type 1003, func ID for proc5 */
 .funcid1:
 .short .funcid2 - .funcid1 - 2
 .short LF_FUNC_ID
-.long 0 # parent scope
-.long 0x1002 # type
+.long 0 /* parent scope */
+.long 0x1002 /* type */
 .asciz "proc5"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1004, func ID for proc6
+/* Type 1004, func ID for proc6 */
 .funcid2:
 .short .class1 - .funcid2 - 2
 .short LF_FUNC_ID
-.long 0 # parent scope
-.long 0x1002 # type
+.long 0 /* parent scope */
+.long 0x1002 /* type */
 .asciz "proc6"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1005, forward declaration of class foo
+/* Type 1005, forward declaration of class foo */
 .class1:
 .short .ptr1 - .class1 - 2
 .short LF_CLASS
-.short 0 # no. members
-.short 0x80 # property (forward declaration)
-.long 0 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 0 # size
-.asciz "foo" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 1006, pointer to 1005
+.short 0 /* no. members */
+.short 0x80 /* property (forward declaration) */
+.long 0 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 0 /* size */
+.asciz "foo" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 1006, pointer to 1005 */
 .ptr1:
 .short .mfunction1 - .ptr1 - 2
 .short LF_POINTER
 .long 0x1005
 .long (8 << 13) | CV_PTR_64
 
-# Type 1007, member function of 1005, return type void, arg list 1001
+/* Type 1007, member function of 1005, return type void, arg list 1001 */
 .mfunction1:
 .short .fieldlist1 - .mfunction1 - 2
 .short LF_MFUNCTION
 .long T_VOID
 .long 0x1005
-.long 0x1006 # type of "this" pointer
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 1 # no. parameters
-.long 0x1001 # arg list
-.long 0 # "this" adjustment
-
-# Type 1008, field list for class foo
+.long 0x1006 /* type of "this" pointer */
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 1 /* no. parameters */
+.long 0x1001 /* arg list */
+.long 0 /* "this" adjustment */
+
+/* Type 1008, field list for class foo */
 .fieldlist1:
 .short .class2 - .fieldlist1 - 2
 .short LF_FIELDLIST
 .short LF_ONEMETHOD
-.short 0 # method attribute
-.long 0x1007 # method type
+.short 0 /* method attribute */
+.long 0x1007 /* method type */
 .asciz "method"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 .short LF_ONEMETHOD
-.short 0 # method attribute
-.long 0x1007 # method type
+.short 0 /* method attribute */
+.long 0x1007 /* method type */
 .asciz "method2"
 .short LF_ONEMETHOD
-.short 0 # method attribute
-.long 0x1007 # method type
+.short 0 /* method attribute */
+.long 0x1007 /* method type */
 .asciz "method3"
 .short LF_ONEMETHOD
-.short 0 # method attribute
-.long 0x1007 # method type
+.short 0 /* method attribute */
+.long 0x1007 /* method type */
 .asciz "method4"
 
-# Type 1009, actual declaration of class foo
+/* Type 1009, actual declaration of class foo */
 .class2:
 .short .mfunc1 - .class2 - 2
 .short LF_CLASS
-.short 0 # no. members
-.short 0 # property
-.long 0x1008 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 0 # size
-.asciz "foo" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 100a, function "method" within class "foo"
+.short 0 /* no. members */
+.short 0 /* property */
+.long 0x1008 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 0 /* size */
+.asciz "foo" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 100a, function "method" within class "foo" */
 .mfunc1:
 .short .mfunc2 - .mfunc1 - 2
 .short LF_MFUNC_ID
-.long 0x1009 # parent class
-.long 0x1002 # function type
+.long 0x1009 /* parent class */
+.long 0x1002 /* function type */
 .asciz "method"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 100b, function "method2" within class "foo"
+/* Type 100b, function "method2" within class "foo" */
 .mfunc2:
 .short .funcid3 - .mfunc2 - 2
 .short LF_MFUNC_ID
-.long 0x1009 # parent class
-.long 0x1002 # function type
+.long 0x1009 /* parent class */
+.long 0x1002 /* function type */
 .asciz "method2"
 
-# Type 100c, func ID for proc9
+/* Type 100c, func ID for proc9 */
 .funcid3:
 .short .funcid4 - .funcid3 - 2
 .short LF_FUNC_ID
-.long 0 # parent scope
-.long 0x1002 # type
+.long 0 /* parent scope */
+.long 0x1002 /* type */
 .asciz "proc9"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 100d, func ID for proc10
+/* Type 100d, func ID for proc10 */
 .funcid4:
 .short .mfunc3 - .funcid4 - 2
 .short LF_FUNC_ID
-.long 0 # parent scope
-.long 0x1002 # type
+.long 0 /* parent scope */
+.long 0x1002 /* type */
 .asciz "proc10"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 100e, function "method3" within class "foo"
+/* Type 100e, function "method3" within class "foo" */
 .mfunc3:
 .short .mfunc4 - .mfunc3 - 2
 .short LF_MFUNC_ID
-.long 0x1009 # parent class
-.long 0x1002 # function type
+.long 0x1009 /* parent class */
+.long 0x1002 /* function type */
 .asciz "method3"
 
-# Type 100f, function "method4" within class "foo"
+/* Type 100f, function "method4" within class "foo" */
 .mfunc4:
 .short .fieldlist2 - .mfunc4 - 2
 .short LF_MFUNC_ID
-.long 0x1009 # parent class
-.long 0x1002 # function type
+.long 0x1009 /* parent class */
+.long 0x1002 /* function type */
 .asciz "method4"
 
-# Type 1010, field list for struct bar
+/* Type 1010, field list for struct bar */
 .fieldlist2:
 .short .struct1 - .fieldlist2 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_UINT4
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num1"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 1011, declaration of struct bar
+/* Type 1011, declaration of struct bar */
 .struct1:
 .short .types_end - .struct1 - 2
 .short LF_STRUCTURE
-.short 1 # no. members
-.short 0 # property
-.long 0x1010 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
-.asciz "bar" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.short 1 /* no. members */
+.short 0 /* property */
+.long 0x1010 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
+.asciz "bar" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .types_end:
 
@@ -657,37 +657,37 @@ lvar5:
 
 .global main
 main:
-    jmp main
+    .short 0
     .secrel32 .data
 
 .global proc2
 proc2:
-    nop
+    .byte 0
 .proc2_end:
 
 .global proc4
 proc4:
-    nop
+    .byte 0
 .proc4_end:
 
 .global proc6
 proc6:
-    nop
+    .byte 0
 .proc6_end:
 
 .global proc8
 proc8:
-    nop
+    .byte 0
 .proc8_end:
 
 .global proc10
 proc10:
-    nop
+    .byte 0
 .proc10_end:
 
 .global proc12
 proc12:
-    nop
+    .byte 0
 .proc12_end:
 
 .section "gcsect"
@@ -705,32 +705,32 @@ gvar4:
 
 .global proc1
 proc1:
-    nop
+    .byte 0
 .proc1_end:
 
 .global proc3
 proc3:
-    nop
+    .byte 0
 .proc3_end:
 
 .global proc5
 proc5:
-    nop
+    .byte 0
 .proc5_end:
 
 .global proc7
 proc7:
-    nop
+    .byte 0
 .proc7_end:
 
 .global proc9
 proc9:
-    nop
+    .byte 0
 .proc9_end:
 
 .global proc11
 proc11:
-    nop
+    .byte 0
 .proc11_end:
 
 lvar6:
index ec677eaee438c1ffb262a346b2836a6876ab6b86..14c149c23fc49741e6751cdc85a3ceea035e0359 100644 (file)
 .objname1:
 .short .compile1 - .objname1 - 2
 .short S_OBJNAME
-.long 0 # signature
+.long 0 /* signature */
 .asciz "syms3.o"
 
 .compile1:
 .short .unamespace1 - .compile1 - 2
 .short S_COMPILE3
-.long 0 # flags
-.short CV_CFL_AMD64 # target processor
-.short 0 # frontend major
-.short 0 # frontend minor
-.short 0 # frontend build
-.short 0 # frontend qfe
-.short 0 # backend major
-.short 0 # backend minor
-.short 0 # backend build
-.short 0 # backend qfe
+.long 0 /* flags */
+.short CV_CFL_AMD64 /* target processor */
+.short 0 /* frontend major */
+.short 0 /* frontend minor */
+.short 0 /* frontend build */
+.short 0 /* frontend qfe */
+.short 0 /* backend major */
+.short 0 /* backend minor */
+.short 0 /* backend build */
+.short 0 /* backend qfe */
 .asciz "GNU AS"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .unamespace1:
 .short .sbuildinfo1 - .unamespace1 - 2
 .sbuildinfo1:
 .short .gproc1 - .sbuildinfo1 - 2
 .short S_BUILDINFO
-.long 0x1007 # type
+.long 0x1007 /* type */
 
 .gproc1:
 .short .frameproc1 - .gproc1 - 2
 .short S_GPROC32
-.long 0 # parent
-.long 0 # end
-.long 0 # next symbol
-.long .proc1_end - proc1 # length
-.long 0 # debug start offset
-.long 0 # debug end offset
-.long 0x1001 # type
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next symbol */
+.long .proc1_end - proc1 /* length */
+.long 0 /* debug start offset */
+.long 0 /* debug end offset */
+.long 0x1001 /* type */
 .secrel32 proc1
 .secidx proc1
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "proc1"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .frameproc1:
 .short .framecookie1 - .frameproc1 - 2
 .short S_FRAMEPROC
-.long 0 # frame size
-.long 0 # frame padding
-.long 0 # padding offset
-.long 0 # size of callee-save registers
-.long 0 # offset of exception handler
-.short 0 # section of exception handler
-.long 0 # flags
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.long 0 /* frame size */
+.long 0 /* frame padding */
+.long 0 /* padding offset */
+.long 0 /* size of callee-save registers */
+.long 0 /* offset of exception handler */
+.short 0 /* section of exception handler */
+.long 0 /* flags */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .framecookie1:
 .short .bprel1 - .framecookie1 - 2
 .short S_FRAMECOOKIE
-.long 8 # frame-relative offset
-.short CV_AMD64_RAX # register
-.long 0 # cookie type (CV_COOKIETYPE_COPY)
-.byte 0 # flags
-.byte 0xf1 # padding
+.long 8 /* frame-relative offset */
+.short CV_AMD64_RAX /* register */
+.long 0 /* cookie type (CV_COOKIETYPE_COPY) */
+.byte 0 /* flags */
+.byte 0xf1 /* padding */
 
 .bprel1:
 .short .reg1 - .bprel1 - 2
 .short S_BPREL32
-.long 4 # BP-relative offset
-.long 0x1008 # type
+.long 4 /* BP-relative offset */
+.long 0x1008 /* type */
 .asciz "foo"
 
 .reg1:
 .short .regrel1 - .reg1 - 2
 .short S_REGISTER
-.long 0x1008 # type
+.long 0x1008 /* type */
 .short CV_AMD64_RAX
 .asciz "bar"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .regrel1:
 .short .local1 - .regrel1 - 2
 .short S_REGREL32
-.long 4 # offset
-.long 0x1008 # type
+.long 4 /* offset */
+.long 0x1008 /* type */
 .short CV_AMD64_RAX
 .asciz "baz"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .local1:
 .short .defrange1 - .local1 - 2
 .short S_LOCAL
-.long 0x1008 # type
-.short 0 # flags
+.long 0x1008 /* type */
+.short 0 /* flags */
 .asciz "local1"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .defrange1:
 .short .local2 - .defrange1 - 2
 .short S_DEFRANGE_REGISTER_REL
 .short CV_AMD64_RAX
-.short 0 # offset parent
-.long 0 # offset register
-.secrel32 .block1 # offset
-.secidx .block1 # section
-.short .block1_end - .block1 # length
-.short .gap1 - .block1 # gap 1 offset
-.short .gap1_end - .gap1 # gap 1 length
+.short 0 /* offset parent */
+.long 0 /* offset register */
+.secrel32 .block1 /* offset */
+.secidx .block1 /* section */
+.short .block1_end - .block1 /* length */
+.short .gap1 - .block1 /* gap 1 offset */
+.short .gap1_end - .gap1 /* gap 1 length */
 
 .local2:
 .short .defrange2 - .local2 - 2
 .short S_LOCAL
-.long 0x1008 # type
-.short 0 # flags
+.long 0x1008 /* type */
+.short 0 /* flags */
 .asciz "local2"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .defrange2:
 .short .local3 - .defrange2 - 2
 .short S_DEFRANGE_FRAMEPOINTER_REL
-.long 4 # frame pointer offset
-.secrel32 .block1 # offset
-.secidx .block1 # section
-.short .block1_end - .block1 # length
-.short .gap1 - .block1 # gap 1 offset
-.short .gap1_end - .gap1 # gap 1 length
+.long 4 /* frame pointer offset */
+.secrel32 .block1 /* offset */
+.secidx .block1 /* section */
+.short .block1_end - .block1 /* length */
+.short .gap1 - .block1 /* gap 1 offset */
+.short .gap1_end - .gap1 /* gap 1 length */
 
 .local3:
 .short .defrange3 - .local3 - 2
 .short S_LOCAL
-.long 0x1008 # type
-.short 0 # flags
+.long 0x1008 /* type */
+.short 0 /* flags */
 .asciz "local3"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .defrange3:
 .short .local4 - .defrange3 - 2
 .short S_DEFRANGE_SUBFIELD_REGISTER
 .short CV_AMD64_RAX
-.short 0 # attributes
-.long 4 # offset in parent variable
-.secrel32 .block1 # offset
-.secidx .block1 # section
-.short .block1_end - .block1 # length
-.short .gap1 - .block1 # gap 1 offset
-.short .gap1_end - .gap1 # gap 1 length
+.short 0 /* attributes */
+.long 4 /* offset in parent variable */
+.secrel32 .block1 /* offset */
+.secidx .block1 /* section */
+.short .block1_end - .block1 /* length */
+.short .gap1 - .block1 /* gap 1 offset */
+.short .gap1_end - .gap1 /* gap 1 length */
 
 .local4:
 .short .defrange4 - .local4 - 2
 .short S_LOCAL
-.long 0x1008 # type
-.short 0 # flags
+.long 0x1008 /* type */
+.short 0 /* flags */
 .asciz "local4"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .defrange4:
 .short .local5 - .defrange4 - 2
 .short S_DEFRANGE_FRAMEPOINTER_REL_FULL_SCOPE
-.long 4 # frame pointer offset
+.long 4 /* frame pointer offset */
 
 .local5:
 .short .defrange5 - .local5 - 2
 .short S_LOCAL
-.long 0x1008 # type
-.short 0 # flags
+.long 0x1008 /* type */
+.short 0 /* flags */
 .asciz "local5"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .defrange5:
 .short .inlinesite1 - .defrange5 - 2
 .short S_DEFRANGE_REGISTER
 .short CV_AMD64_RAX
-.short 0 # attributes
-.secrel32 .block1 # offset
-.secidx .block1 # section
-.short .block1_end - .block1 # length
-.short .gap1 - .block1 # gap 1 offset
-.short .gap1_end - .gap1 # gap 1 length
+.short 0 /* attributes */
+.secrel32 .block1 /* offset */
+.secidx .block1 /* section */
+.short .block1_end - .block1 /* length */
+.short .gap1 - .block1 /* gap 1 offset */
+.short .gap1_end - .gap1 /* gap 1 length */
 
 .inlinesite1:
 .short .inlinesite1end - .inlinesite1 - 2
 .short S_INLINESITE
-.long 0 # parent
-.long 0 # end
-.long 0x1009 # inlinee (inline_func)
+.long 0 /* parent */
+.long 0 /* end */
+.long 0x1009 /* inlinee (inline_func) */
 
 .inlinesite1end:
 .short .sblock1 - .inlinesite1end - 2
 .sblock1:
 .short .label1 - .sblock1 - 2
 .short S_BLOCK32
-.long 0 # parent (filled in by linker)
-.long 0 # end (filled in by linker)
-.long .block1_end - .block1 # length
+.long 0 /* parent (filled in by linker) */
+.long 0 /* end (filled in by linker) */
+.long .block1_end - .block1 /* length */
 .secrel32 .block1
 .secidx .block1
-.byte 0 # name
-.byte 0xf1 # padding
+.byte 0 /* name */
+.byte 0xf1 /* padding */
 
 .label1:
 .short .sblock1_end - .label1 - 2
 .short S_LABEL32
 .secrel32 label
 .secidx label
-.byte 0 # flags
+.byte 0 /* flags */
 .asciz "label"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
 .sblock1_end:
 .short .thunk1 - .sblock1_end - 2
 .thunk1:
 .short .thunk1_end - .thunk1 - 2
 .short S_THUNK32
-.long 0 # parent
-.long 0 # end
-.long 0 # next
+.long 0 /* parent */
+.long 0 /* end */
+.long 0 /* next */
 .secrel32 thunk
 .secidx thunk
 .short .thunk_end - thunk
-.byte 0 # THUNK_ORDINAL value
+.byte 0 /* THUNK_ORDINAL value */
 .asciz "thunk"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
 .thunk1_end:
 .short .heapallocsite1 - .thunk1_end - 2
 .secrel32 .gap1_end
 .secidx .gap1_end
 .short .block1_end - .gap1_end
-.long 0x1008 # type
+.long 0x1008 /* type */
 
 .gproc1_end:
 .short .syms_end - .gproc1_end - 2
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, arglist (uint32_t)
+/* Type 1000, arglist (uint32_t) */
 .arglist1:
 .short .proctype1 - .arglist1 - 2
 .short LF_ARGLIST
-.long 1 # no. entries
+.long 1 /* no. entries */
 .long T_UINT4
 
-# Type 1001, procedure (return type T_VOID, arglist 1000)
+/* Type 1001, procedure (return type T_VOID, arglist 1000) */
 .proctype1:
 .short .string1 - .proctype1 - 2
 .short LF_PROCEDURE
 .long T_VOID
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 1 # no. parameters
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 1 /* no. parameters */
 .long 0x1000
 
-# Type 1002, string "/tmp" (build directory)
+/* Type 1002, string "/tmp" (build directory) */
 .string1:
 .short .string2 - .string1 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "/tmp"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1003, string "gcc" (compiler)
+/* Type 1003, string "gcc" (compiler) */
 .string2:
 .short .string3 - .string2 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "gcc"
 
-# Type 1004, string "tmp.c" (source file)
+/* Type 1004, string "tmp.c" (source file) */
 .string3:
 .short .string4 - .string3 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "tmp.c"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1005, string "tmp.pdb" (PDB file)
+/* Type 1005, string "tmp.pdb" (PDB file) */
 .string4:
 .short .string5 - .string4 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "tmp.pdb"
 
-# Type 1006, string "-gcodeview" (command arguments)
+/* Type 1006, string "-gcodeview" (command arguments) */
 .string5:
 .short .buildinfo1 - .string5 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "-gcodeview"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 1007, build info
+/* Type 1007, build info */
 .buildinfo1:
 .short .mod1 - .buildinfo1 - 2
 .short LF_BUILDINFO
-.short 5 # count
-.long 0x1002 # build directory
-.long 0x1003 # compiler
-.long 0x1004 # source file
-.long 0x1005 # PDB file
-.long 0x1006 # command arguments
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 1008, const uint32_t
+.short 5 /* count */
+.long 0x1002 /* build directory */
+.long 0x1003 /* compiler */
+.long 0x1004 /* source file */
+.long 0x1005 /* PDB file */
+.long 0x1006 /* command arguments */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 1008, const uint32_t */
 .mod1:
 .short .funcid1 - .mod1 - 2
 .short LF_MODIFIER
 .long T_UINT4
-.short 1 # const
+.short 1 /* const */
 .p2align 2
 
-# Type 1009, func ID for inline_func
+/* Type 1009, func ID for inline_func */
 .funcid1:
 .short .types_end - .funcid1 - 2
 .short LF_FUNC_ID
-.long 0 # parent scope
-.long 0x1001 # type
+.long 0 /* parent scope */
+.long 0x1001 /* type */
 .asciz "inline_func"
 
 .types_end:
 
 .global proc1
 proc1:
-  nop
+  .byte 0
 .block1:
-  nop
+  .byte 0
 label:
-  nop
+  .byte 0
 .gap1:
-  nop
+  .byte 0
 .gap1_end:
-  nop
+  .byte 0
 .block1_end:
-  nop
+  .byte 0
 .proc1_end:
 
 thunk:
-  nop
+  .byte 0
 .thunk_end:
index a2ee9a9972fea24e9c13f12b171fbd4a68378dfc..96fbfd0a29b804320497b5a23fb69909efefb50e 100644 (file)
@@ -8,20 +8,20 @@
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, volatile long
+/* Type 1000, volatile long */
 .mod1:
 .short .mod2 - .mod1 - 2
 .short LF_MODIFIER
 .long T_LONG
-.short 2 # volatile
+.short 2 /* volatile */
 .p2align 2
 
-# Type 1001, const long
+/* Type 1001, const long */
 .mod2:
 .short .types_end - .mod2 - 2
 .short LF_MODIFIER
 .long T_LONG
-.short 1 # const
+.short 1 /* const */
 .p2align 2
 
 .types_end:
index bd227b12ebc72427437477c4103859cb4a849bf3..e26b190b78f438c291045b6ab444c732261c548c 100644 (file)
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, const long
+/* Type 1000, const long */
 .mod1:
 .short .mod2 - .mod1 - 2
 .short LF_MODIFIER
 .long T_LONG
-.short 1 # const
+.short 1 /* const */
 .p2align 2
 
-# Type 1001, volatile unsigned long
+/* Type 1001, volatile unsigned long */
 .mod2:
 .short .mod3 - .mod2 - 2
 .short LF_MODIFIER
 .long T_ULONG
-.short 2 # volatile
+.short 2 /* volatile */
 .p2align 2
 
-# Type 1002, const volatile int
+/* Type 1002, const volatile int */
 .mod3:
 .short .ptr1 - .mod3 - 2
 .short LF_MODIFIER
 .long T_INT4
-.short 3 # const volatile
+.short 3 /* const volatile */
 .p2align 2
 
-# Type 1003, const long * (64-bit pointer)
+/* Type 1003, const long * (64-bit pointer) */
 .ptr1:
 .short .ptr2 - .ptr1 - 2
 .short LF_POINTER
 .long 0x1000
 .long (8 << 13) | CV_PTR_64
 
-# Type 1004, volatile unsigned long * (32-bit pointer)
+/* Type 1004, volatile unsigned long * (32-bit pointer) */
 .ptr2:
 .short .arglist1 - .ptr2 - 2
 .short LF_POINTER
 .long 0x1001
 .long (4 << 13) | CV_PTR_NEAR32
 
-# Type 1005, arg list of types 1000, 1001, 1002
+/* Type 1005, arg list of types 1000, 1001, 1002 */
 .arglist1:
 .short .proc1 - .arglist1 - 2
 .short LF_ARGLIST
-.long 3 # no. entries
+.long 3 /* no. entries */
 .long 0x1000
 .long 0x1001
 .long 0x1002
 
-# Type 1006, procedure, return type 1001, arg list 1005
+/* Type 1006, procedure, return type 1001, arg list 1005 */
 .proc1:
 .short .arr1 - .proc1 - 2
 .short LF_PROCEDURE
 .long 0x1001
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 3 # no. parameters
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 3 /* no. parameters */
 .long 0x1005
 
-# Type 1007, array[3] of const long *
+/* Type 1007, array[3] of const long * */
 .arr1:
 .short .bitfield1 - .arr1 - 2
 .short LF_ARRAY
-.long 0x1003 # element type
-.long T_INT4 # index type
-.short 24 # length in bytes
-.byte 0 # name
-.byte 0xf1 # padding
+.long 0x1003 /* element type */
+.long T_INT4 /* index type */
+.short 24 /* length in bytes */
+.byte 0 /* name */
+.byte 0xf1 /* padding */
 
-# Type 1008, bitfield of uint32_t, position 0, length 1
+/* Type 1008, bitfield of uint32_t, position 0, length 1 */
 .bitfield1:
 .short .bitfield2 - .bitfield1 - 2
 .short LF_BITFIELD
 .long T_UINT4
 .byte 1
 .byte 0
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1009, bitfield of uint32_t, position 1, length 31
+/* Type 1009, bitfield of uint32_t, position 1, length 31 */
 .bitfield2:
 .short .fieldlist1 - .bitfield2 - 2
 .short LF_BITFIELD
 .long T_UINT4
 .byte 31
 .byte 1
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 100a, field list (1008 as num1, 1009 as num2)
+/* Type 100a, field list (1008 as num1, 1009 as num2) */
 .fieldlist1:
 .short .struct1 - .fieldlist1 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1008
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num1"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1009
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num2"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 100b, anonymous struct, field list 100a
+/* Type 100b, anonymous struct, field list 100a */
 .struct1:
 .short .struct2 - .struct1 - 2
 .short LF_STRUCTURE
-.short 2 # no. members
-.short 0 # property
-.long 0x100a # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
+.short 2 /* no. members */
+.short 0 /* property */
+.long 0x100a /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
 .asciz "<unnamed-tag>"
 
-# Type 100c, forward declaration of struct foo
+/* Type 100c, forward declaration of struct foo */
 .struct2:
 .short .ptr3 - .struct2 - 2
 .short LF_STRUCTURE
-.short 0 # no. members
-.short 0x280 # property (has unique name, forward declaration)
-.long 0 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 0 # size
-.asciz "foo" # name
-.asciz "bar" # unique name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 100d, pointer to 100c
+.short 0 /* no. members */
+.short 0x280 /* property (has unique name, forward declaration) */
+.long 0 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 0 /* size */
+.asciz "foo" /* name */
+.asciz "bar" /* unique name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 100d, pointer to 100c */
 .ptr3:
 .short .arglist2 - .ptr3 - 2
 .short LF_POINTER
 .long 0x100c
 .long (8 << 13) | CV_PTR_64
 
-# Type 100e, empty arg list
+/* Type 100e, empty arg list */
 .arglist2:
 .short .mfunc1 - .arglist2 - 2
 .short LF_ARGLIST
-.long 0 # no. entries
+.long 0 /* no. entries */
 
-# Type 100f, member function of 100c, return type 1001
+/* Type 100f, member function of 100c, return type 1001 */
 .mfunc1:
 .short .mfunc2 - .mfunc1 - 2
 .short LF_MFUNCTION
 .long 0x1001
 .long 0x100c
-.long 0x100d # type of "this" pointer
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 0 # no. parameters
-.long 0x100e # arg list
-.long 0 # "this" adjustment
-
-# Type 1010, member function of 100c, return type 1001, arg list 1005
+.long 0x100d /* type of "this" pointer */
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 0 /* no. parameters */
+.long 0x100e /* arg list */
+.long 0 /* "this" adjustment */
+
+/* Type 1010, member function of 100c, return type 1001, arg list 1005 */
 .mfunc2:
 .short .methodlist1 - .mfunc2 - 2
 .short LF_MFUNCTION
 .long 0x1001
 .long 0x100c
-.long 0x100d # type of "this" pointer
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 3 # no. parameters
-.long 0x1005 # arg list
-.long 0 # "this" adjustment
-
-# Type 1011, method list for both member functions 100f and 1010
+.long 0x100d /* type of "this" pointer */
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 3 /* no. parameters */
+.long 0x1005 /* arg list */
+.long 0 /* "this" adjustment */
+
+/* Type 1011, method list for both member functions 100f and 1010 */
 .methodlist1:
 .short .fieldlist2 - .methodlist1 - 2
 .short LF_METHODLIST
-.short 0 # attributes
-.short 0 # padding
+.short 0 /* attributes */
+.short 0 /* padding */
 .long 0x100f
-.short 0 # attributes
-.short 0 # padding
+.short 0 /* attributes */
+.short 0 /* padding */
 .long 0x1010
 
-# Type 1012, field list (uint32_t as num1)
+/* Type 1012, field list (uint32_t as num1) */
 .fieldlist2:
 .short .struct3 - .fieldlist2 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_UINT4
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_ONEMETHOD
-.short 0 # method attribute
-.long 0x100f # method type
+.short 0 /* method attribute */
+.long 0x100f /* method type */
 .asciz "method"
 .byte 0xf1
 .short LF_METHOD
-.short 2 # no. overloads
-.long 0x1011 # method list
+.short 2 /* no. overloads */
+.long 0x1011 /* method list */
 .asciz "method2"
 
-# Type 1013, struct foo, field list 1012
+/* Type 1013, struct foo, field list 1012 */
 .struct3:
 .short .fieldlist3 - .struct3 - 2
 .short LF_STRUCTURE
-.short 2 # no. members
-.short 0x200 # property (has unique name)
-.long 0x1012 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
-.asciz "foo" # name
-.asciz "bar" # unique name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 1014, field list (uint32_t as num1, char as num2)
+.short 2 /* no. members */
+.short 0x200 /* property (has unique name) */
+.long 0x1012 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
+.asciz "foo" /* name */
+.asciz "bar" /* unique name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 1014, field list (uint32_t as num1, char as num2) */
 .fieldlist3:
 .short .union1 - .fieldlist3 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_UINT4
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num1"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_CHAR
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num2"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 1015, anonymous union (field list 1014)
+/* Type 1015, anonymous union (field list 1014) */
 .union1:
 .short .union2 - .union1 - 2
 .short LF_UNION
-.short 2 # no. members
-.short 0 # property
+.short 2 /* no. members */
+.short 0 /* property */
 .long 0x1014
-.short 4 # size
+.short 4 /* size */
 .asciz "<unnamed-tag>"
 
-# Type 1016, forward declaration of union baz
+/* Type 1016, forward declaration of union baz */
 .union2:
 .short .union3 - .union2 - 2
 .short LF_UNION
-.short 0 # no. members
-.short 0x280 # property (has unique name, forward declaration)
-.long 0 # field list
-.short 0 # size
+.short 0 /* no. members */
+.short 0x280 /* property (has unique name, forward declaration) */
+.long 0 /* field list */
+.short 0 /* size */
 .asciz "baz"
 .asciz "qux"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1017, union baz (field list 1014)
+/* Type 1017, union baz (field list 1014) */
 .union3:
 .short .fieldlist4 - .union3 - 2
 .short LF_UNION
-.short 2 # no. members
-.short 0x200 # property (has unique name, forward declaration)
-.long 0x1014 # field list
-.short 4 # size
+.short 2 /* no. members */
+.short 0x200 /* property (has unique name, forward declaration) */
+.long 0x1014 /* field list */
+.short 4 /* size */
 .asciz "baz"
 .asciz "qux"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1018, field list for enum (red = 0, green = 1, blue = -1, yellow = 0x8000, purple = 0x100000000)
+/* Type 1018, field list for enum (red = 0, green = 1, blue = -1, yellow = 0x8000, purple = 0x100000000) */
 .fieldlist4:
 .short .enum1 - .fieldlist4 - 2
 .short LF_FIELDLIST
 .short LF_ENUMERATE
-.short 3 # public
-.short 0 # value
+.short 3 /* public */
+.short 0 /* value */
 .asciz "red"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_ENUMERATE
-.short 3 # public
-.short 1 # value
+.short 3 /* public */
+.short 1 /* value */
 .asciz "green"
 .short LF_ENUMERATE
-.short 3 # public
+.short 3 /* public */
 .short LF_LONG
-.long 0xffffffff # value
+.long 0xffffffff /* value */
 .asciz "blue"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 .short LF_ENUMERATE
-.short 3 # public
+.short 3 /* public */
 .short LF_USHORT
-.short 0x8000 # value
+.short 0x8000 /* value */
 .asciz "yellow"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 .short LF_ENUMERATE
-.short 3 # public
+.short 3 /* public */
 .short LF_UQUADWORD
-.quad 0x100000000 # value
+.quad 0x100000000 /* value */
 .asciz "purple"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1019, forward reference to enum
+/* Type 1019, forward reference to enum */
 .enum1:
 .short .enum2 - .enum1 - 2
 .short LF_ENUM
-.short 0 # no. elements
-.short 0x280 # property (has unique name, forward ref)
-.long T_UQUAD # underlying type
-.long 0 # field list
+.short 0 /* no. elements */
+.short 0x280 /* property (has unique name, forward ref) */
+.long T_UQUAD /* underlying type */
+.long 0 /* field list */
 .asciz "colour"
 .asciz "colour2"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 101a, enum (field list 1018)
+/* Type 101a, enum (field list 1018) */
 .enum2:
 .short .fieldlist5 - .enum2 - 2
 .short LF_ENUM
-.short 5 # no. elements
-.short 0x200 # property (has unique name)
-.long T_UQUAD # underlying type
-.long 0x1018 # field list
+.short 5 /* no. elements */
+.short 0x200 /* property (has unique name) */
+.long T_UQUAD /* underlying type */
+.long 0x1018 /* field list */
 .asciz "colour"
 .asciz "colour2"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# Type 101b, field list referencing other field list 1018
+/* Type 101b, field list referencing other field list 1018 */
 .fieldlist5:
 .short .vtshape1 - .fieldlist5 - 2
 .short LF_FIELDLIST
 .short LF_INDEX
-.short 0 # padding
+.short 0 /* padding */
 .long 0x1018
 
-# Type 101c, virtual function table shape
+/* Type 101c, virtual function table shape */
 .vtshape1:
 .short .ptr4 - .vtshape1 - 2
 .short LF_VTSHAPE
-.short 1 # no. descriptors
-.byte 0 # descriptor (CV_VTS_near)
-.byte 0xf1 # padding
+.short 1 /* no. descriptors */
+.byte 0 /* descriptor (CV_VTS_near) */
+.byte 0xf1 /* padding */
 
-# Type 101d, pointer to 101c
+/* Type 101d, pointer to 101c */
 .ptr4:
 .short .fieldlist6 - .ptr4 - 2
 .short LF_POINTER
 .long 0x101c
 .long (8 << 13) | CV_PTR_64
 
-# Type 101e, fieldlist for enum
+/* Type 101e, fieldlist for enum */
 .fieldlist6:
 .short .enum3 - .fieldlist6 - 2
 .short LF_FIELDLIST
 .short LF_ENUMERATE
-.short 3 # public
-.short 0 # value
+.short 3 /* public */
+.short 0 /* value */
 .asciz "a"
 
-# Type 101f, nested enum
+/* Type 101f, nested enum */
 .enum3:
 .short .fieldlist7 - .enum3 - 2
 .short LF_ENUM
-.short 1 # no. elements
-.short 0x8 # property (is nested)
-.long T_UINT4 # underlying type
-.long 0x101e # field list
+.short 1 /* no. elements */
+.short 0x8 /* property (is nested) */
+.long T_UINT4 /* underlying type */
+.long 0x101e /* field list */
 .asciz "quux::nested_enum"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1020, field list for struct quux
+/* Type 1020, field list for struct quux */
 .fieldlist7:
 .short .struct4 - .fieldlist7 - 2
 .short LF_FIELDLIST
 .short LF_BCLASS
-.short 0 # attributes
-.long 0x1013 # base class
-.short 4 # offset within class
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.short 0 /* attributes */
+.long 0x1013 /* base class */
+.short 4 /* offset within class */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_VFUNCTAB
-.short 0 # padding
-.long 0x101d # pointer to vtshape
+.short 0 /* padding */
+.long 0x101d /* pointer to vtshape */
 .short LF_VBCLASS
-.short 0 # attribute
-.long 0x1013 # type index of direct virtual base class
-.long 0x101d # type index of virtual base pointer
-.short 0 # virtual base pointer offset
-.short 0 # virtual base offset from vbtable
+.short 0 /* attribute */
+.long 0x1013 /* type index of direct virtual base class */
+.long 0x101d /* type index of virtual base pointer */
+.short 0 /* virtual base pointer offset */
+.short 0 /* virtual base offset from vbtable */
 .short LF_STMEMBER
-.short 0 # attribute
-.long 0x1001 # volatile unsigned long
+.short 0 /* attribute */
+.long 0x1001 /* volatile unsigned long */
 .asciz "static_member"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_NESTTYPE
-.short 0 # padding
-.long 0x101f # enum type
+.short 0 /* padding */
+.long 0x101f /* enum type */
 .asciz "nested_enum"
 
-# Type 1021, struct quux, field list 1020
+/* Type 1021, struct quux, field list 1020 */
 .struct4:
 .short .arr2 - .struct4 - 2
 .short LF_STRUCTURE
-.short 1 # no. members
-.short 0 # property
-.long 0x1020 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
-.asciz "quux" # name
-.byte 0xf1 # padding
-
-# Type 1022, array[60000] of char
+.short 1 /* no. members */
+.short 0 /* property */
+.long 0x1020 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
+.asciz "quux" /* name */
+.byte 0xf1 /* padding */
+
+/* Type 1022, array[60000] of char */
 .arr2:
 .short .fieldlist8 - .arr2 - 2
 .short LF_ARRAY
-.long T_CHAR # element type
-.long T_INT4 # index type
+.long T_CHAR /* element type */
+.long T_INT4 /* index type */
 .short LF_USHORT
-.short 60000 # size in bytes
-.byte 0 # name
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.short 60000 /* size in bytes */
+.byte 0 /* name */
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1023, field list for struct longstruct
+/* Type 1023, field list for struct longstruct */
 .fieldlist8:
 .short .struct5 - .fieldlist8 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
-.short 0 # offset
+.short 0 /* offset */
 .asciz "a"
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
 .short LF_USHORT
-.short 60000 # offset
+.short 60000 /* offset */
 .asciz "b"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
 .short LF_ULONG
-.long 120000 # offset
+.long 120000 /* offset */
 .asciz "c"
 
-# Type 1024, struct longstruct
+/* Type 1024, struct longstruct */
 .struct5:
 .short .fieldlist9 - .struct5 - 2
 .short LF_STRUCTURE
-.short 3 # no. members
-.short 0 # property
-.long 0x1023 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
+.short 3 /* no. members */
+.short 0 /* property */
+.long 0x1023 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
 .short LF_ULONG
-.long 180000 # size
-.asciz "longstruct" # name
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.long 180000 /* size */
+.asciz "longstruct" /* name */
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1025, field list for union longunion
+/* Type 1025, field list for union longunion */
 .fieldlist9:
 .short .union4 - .fieldlist9 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
-.short 0 # offset
+.short 0 /* offset */
 .asciz "a"
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
-.short 0 # offset
+.short 0 /* offset */
 .asciz "b"
 
-# Type 1026, union longunion (field list 1025)
+/* Type 1026, union longunion (field list 1025) */
 .union4:
 .short .fieldlist10 - .union4 - 2
 .short LF_UNION
-.short 2 # no. members
-.short 0 # property
-.long 0x1025 # field list
+.short 2 /* no. members */
+.short 0 /* property */
+.long 0x1025 /* field list */
 .short LF_USHORT
-.short 60000 # size
+.short 60000 /* size */
 .asciz "longunion"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1027, field list with base class longstruct
+/* Type 1027, field list with base class longstruct */
 .fieldlist10:
 .short .fieldlist11 - .fieldlist10 - 2
 .short LF_FIELDLIST
 .short LF_BCLASS
-.short 0 # attributes
-.long 0x1024 # base class
+.short 0 /* attributes */
+.long 0x1024 /* base class */
 .short LF_ULONG
-.long 120000 # offset within class
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.long 120000 /* offset within class */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
-.short 0 # offset
+.short 0 /* offset */
 .asciz "d"
 
-# Type 1028, field list with virtual base class longstruct
+/* Type 1028, field list with virtual base class longstruct */
 .fieldlist11:
 .short .struct6 - .fieldlist11 - 2
 .short LF_FIELDLIST
 .short LF_VBCLASS
-.short 0 # attributes
-.long 0x1024 # type index of direct virtual base class
-.long 0 # type index of virtual base pointer
+.short 0 /* attributes */
+.long 0x1024 /* type index of direct virtual base class */
+.long 0 /* type index of virtual base pointer */
 .short LF_USHORT
-.short 60000 # virtual base pointer offset
+.short 60000 /* virtual base pointer offset */
 .short LF_ULONG
-.long 120000 # virtual base offset from vbtable
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.long 120000 /* virtual base offset from vbtable */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long 0x1022
-.short 0 # offset
+.short 0 /* offset */
 .asciz "d"
 
-# Type 1029, forward declaration of struct IUnknown
+/* Type 1029, forward declaration of struct IUnknown */
 .struct6:
 .short .vftable1 - .struct6 - 2
 .short LF_STRUCTURE
-.short 0 # no. members
-.short 0x80 # property (forward declaration)
-.long 0 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 0 # size
-.asciz "IUnknown" # name
-.byte 0xf1 # padding
-
-# Type 102a, virtual function table
+.short 0 /* no. members */
+.short 0x80 /* property (forward declaration) */
+.long 0 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 0 /* size */
+.asciz "IUnknown" /* name */
+.byte 0xf1 /* padding */
+
+/* Type 102a, virtual function table */
 .vftable1:
 .short .types_end - .vftable1 - 2
 .short LF_VFTABLE
-.long 0x1029 # type
-.long 0 # base vftable
-.long 0 # offset
-.long .vftable1_names_end - .vftable1_names # length of names array
+.long 0x1029 /* type */
+.long 0 /* base vftable */
+.long 0 /* offset */
+.long .vftable1_names_end - .vftable1_names /* length of names array */
 .vftable1_names:
 .asciz "IUnknown"
 .asciz "QueryInterface"
 .asciz "AddRef"
 .asciz "Release"
 .vftable1_names_end:
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
 .types_end:
index e11843ae575248d52b0a4e6cb661d8dae4d236e6..97cd0a2e3fd6857eb89f6c93ecffa564aa793229 100644 (file)
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, string "test"
+/* Type 1000, string "test" */
 .string1:
 .short .string2 - .string1 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "test"
 .byte 0xf3
 .byte 0xf2
 .byte 0xf1
 
-# Type 1001, string "foo"
+/* Type 1001, string "foo" */
 .string2:
 .short .types_end - .string2 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "foo"
 
 .types_end:
index 33541729f63d84395b010f8e94d53e4f1451a6ae..c0c273f396f5a33214f891a2003e647cdbabf46e 100644 (file)
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, string "foo"
+/* Type 1000, string "foo" */
 .string1:
 .short .string2 - .string1 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "foo"
 
-# Type 1001, string "bar"
+/* Type 1001, string "bar" */
 .string2:
 .short .substrlist1 - .string2 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "bar"
 
-# Type 1002, substr list of "foo" and "bar"
+/* Type 1002, substr list of "foo" and "bar" */
 .substrlist1:
 .short .string3 - .substrlist1 - 2
 .short LF_SUBSTR_LIST
-.long 2 # count
+.long 2 /* count */
 .long 0x1000
 .long 0x1001
 
-# Type 1003, string "baz" referencing substr list 1002
+/* Type 1003, string "baz" referencing substr list 1002 */
 .string3:
 .short .string4 - .string3 - 2
 .short LF_STRING_ID
 .long 0x1002
 .asciz "baz"
 
-# Type 1004, string "/tmp" (build directory)
+/* Type 1004, string "/tmp" (build directory) */
 .string4:
 .short .string5 - .string4 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "/tmp"
-.byte 0xf3 # padding
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf3 /* padding */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1005, string "gcc" (compiler)
+/* Type 1005, string "gcc" (compiler) */
 .string5:
 .short .string6 - .string5 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "gcc"
 
-# Type 1006, string "tmp.c" (source file)
+/* Type 1006, string "tmp.c" (source file) */
 .string6:
 .short .string7 - .string6 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "tmp.c"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1007, string "tmp.pdb" (PDB file)
+/* Type 1007, string "tmp.pdb" (PDB file) */
 .string7:
 .short .string8 - .string7 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "tmp.pdb"
 
-# Type 1008, string "-gcodeview" (command arguments)
+/* Type 1008, string "-gcodeview" (command arguments) */
 .string8:
 .short .buildinfo1 - .string8 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "-gcodeview"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
-# The 1009, build info
+/* The 1009, build info */
 .buildinfo1:
 .short .string9 - .buildinfo1 - 2
 .short LF_BUILDINFO
-.short 5 # count
-.long 0x1004 # build directory
-.long 0x1005 # compiler
-.long 0x1006 # source file
-.long 0x1007 # PDB file
-.long 0x1008 # command arguments
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 100a, string "namespace"
+.short 5 /* count */
+.long 0x1004 /* build directory */
+.long 0x1005 /* compiler */
+.long 0x1006 /* source file */
+.long 0x1007 /* PDB file */
+.long 0x1008 /* command arguments */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 100a, string "namespace" */
 .string9:
 .short .arglist1 - .string9 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "namespace"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 100b, arg list of type T_INT4
+/* Type 100b, arg list of type T_INT4 */
 .arglist1:
 .short .proc1 - .arglist1 - 2
 .short LF_ARGLIST
-.long 1 # no. entries
+.long 1 /* no. entries */
 .long T_INT4
 
-# Type 100c, procedure, return type T_VOID, arg list 100b
+/* Type 100c, procedure, return type T_VOID, arg list 100b */
 .proc1:
 .short .func1 - .proc1 - 2
 .short LF_PROCEDURE
 .long T_VOID
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 1 # no. parameters
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 1 /* no. parameters */
 .long 0x100b
 
-# Type 100d, function "func1"
+/* Type 100d, function "func1" */
 .func1:
 .short .func2 - .func1 - 2
 .short LF_FUNC_ID
-.long 0 # parent scope
-.long 0x100c # type
+.long 0 /* parent scope */
+.long 0x100c /* type */
 .asciz "func1"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 100e, function "func2" within scope "namespace"
+/* Type 100e, function "func2" within scope "namespace" */
 .func2:
 .short .class1 - .func2 - 2
 .short LF_FUNC_ID
-.long 0x100a # parent scope
-.long 0x100c # type
+.long 0x100a /* parent scope */
+.long 0x100c /* type */
 .asciz "func2"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 100f, forward declaration of class foo
+/* Type 100f, forward declaration of class foo */
 .class1:
 .short .ptr1 - .class1 - 2
 .short LF_CLASS
-.short 0 # no. members
-.short 0x80 # property (has unique name, forward declaration)
-.long 0 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 0 # size
-.asciz "foo" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 1010, pointer to 100f
+.short 0 /* no. members */
+.short 0x80 /* property (has unique name, forward declaration) */
+.long 0 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 0 /* size */
+.asciz "foo" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 1010, pointer to 100f */
 .ptr1:
 .short .mfunction1 - .ptr1 - 2
 .short LF_POINTER
 .long 0x100f
 .long (8 << 13) | CV_PTR_64
 
-# Type 1011, member function of 100f, return type void, arg list 100b
+/* Type 1011, member function of 100f, return type void, arg list 100b */
 .mfunction1:
 .short .fieldlist1 - .mfunction1 - 2
 .short LF_MFUNCTION
 .long T_VOID
 .long 0x100f
-.long 0x1010 # type of "this" pointer
-.byte 0 # calling convention
-.byte 0 # attributes
-.short 1 # no. parameters
-.long 0x100b # arg list
-.long 0 # "this" adjustment
-
-# Type 1012, field list for class foo
+.long 0x1010 /* type of "this" pointer */
+.byte 0 /* calling convention */
+.byte 0 /* attributes */
+.short 1 /* no. parameters */
+.long 0x100b /* arg list */
+.long 0 /* "this" adjustment */
+
+/* Type 1012, field list for class foo */
 .fieldlist1:
 .short .class2 - .fieldlist1 - 2
 .short LF_FIELDLIST
 .short LF_ONEMETHOD
-.short 0 # method attribute
-.long 0x1010 # method type
+.short 0 /* method attribute */
+.long 0x1010 /* method type */
 .asciz "method"
 .byte 0xf1
 
-# Type 1013, actual declaration of class foo
+/* Type 1013, actual declaration of class foo */
 .class2:
 .short .mfunc1 - .class2 - 2
 .short LF_CLASS
-.short 0 # no. members
-.short 0 # property
-.long 0x1012 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 0 # size
-.asciz "foo" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 1014, function "method" within class "foo"
+.short 0 /* no. members */
+.short 0 /* property */
+.long 0x1012 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 0 /* size */
+.asciz "foo" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 1014, function "method" within class "foo" */
 .mfunc1:
 .short .types_end - .mfunc1 - 2
 .short LF_MFUNC_ID
-.long 0x100f # parent class
-.long 0x1011 # function type
+.long 0x100f /* parent class */
+.long 0x1011 /* function type */
 .asciz "method"
-.byte 0xf1 # padding
+.byte 0xf1 /* padding */
 
 .types_end:
index def001e52f7f165f4111cd10cad1b29e23bac570..cb847cebe72f8988d717a26bd2472afc9b14f330 100644 (file)
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, fieldlist for struct foo
+/* Type 1000, fieldlist for struct foo */
 .fieldlist1:
 .short .struct1 - .fieldlist1 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_INT4
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1001, struct foo
+/* Type 1001, struct foo */
 .struct1:
 .short .string1 - .struct1 - 2
 .short LF_STRUCTURE
-.short 1 # no. members
-.short 0 # property
-.long 0x1000 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
-.asciz "foo" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
-
-# Type 1002, string "foo"
+.short 1 /* no. members */
+.short 0 /* property */
+.long 0x1000 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
+.asciz "foo" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
+
+/* Type 1002, string "foo" */
 .string1:
 .short .udtsrcline1 - .string1 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "foo.h"
 .byte 0xf2
 .byte 0xf1
 
-# Type 1003, UDT source line for type 1001
+/* Type 1003, UDT source line for type 1001 */
 .udtsrcline1:
 .short .types_end - .udtsrcline1 - 2
 .short LF_UDT_SRC_LINE
 .long 0x1001
-.long 0x1002 # source file string
-.long 42 # line no.
+.long 0x1002 /* source file string */
+.long 42 /* line no. */
 
 .types_end:
index a22234e221f36a63f0a5dadbbb92b344ea04d723..580f3fb79eb1da066dfebf6d6fbf76e2d608b3a4 100644 (file)
 
 .long CV_SIGNATURE_C13
 
-# Type 1000, const long
+/* Type 1000, const long */
 .mod1:
 .short .fieldlist1 - .mod1 - 2
 .short LF_MODIFIER
 .long T_LONG
-.short 1 # const
-.short 0 # padding
+.short 1 /* const */
+.short 0 /* padding */
 
-# Type 1001, fieldlist for struct foo
+/* Type 1001, fieldlist for struct foo */
 .fieldlist1:
 .short .struct1 - .fieldlist1 - 2
 .short LF_FIELDLIST
 .short LF_MEMBER
-.short 3 # public
+.short 3 /* public */
 .long T_INT4
-.short 0 # offset
+.short 0 /* offset */
 .asciz "num"
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1002, struct foo
+/* Type 1002, struct foo */
 .struct1:
 .short .string1 - .struct1 - 2
 .short LF_STRUCTURE
-.short 1 # no. members
-.short 0 # property
-.long 0x1001 # field list
-.long 0 # type derived from
-.long 0 # type of vshape table
-.short 4 # size
-.asciz "foo" # name
-.byte 0xf2 # padding
-.byte 0xf1 # padding
+.short 1 /* no. members */
+.short 0 /* property */
+.long 0x1001 /* field list */
+.long 0 /* type derived from */
+.long 0 /* type of vshape table */
+.short 4 /* size */
+.asciz "foo" /* name */
+.byte 0xf2 /* padding */
+.byte 0xf1 /* padding */
 
-# Type 1003, string "foo"
+/* Type 1003, string "foo" */
 .string1:
 .short .udtsrcline1 - .string1 - 2
 .short LF_STRING_ID
-.long 0 # sub-string
+.long 0 /* sub-string */
 .asciz "foo.h"
 .byte 0xf2
 .byte 0xf1
 
-# Type 1004, UDT source line for type 1002
+/* Type 1004, UDT source line for type 1002 */
 .udtsrcline1:
 .short .types_end - .udtsrcline1 - 2
 .short LF_UDT_SRC_LINE
 .long 0x1002
-.long 0x1003 # source file string
-.long 42 # line no.
+.long 0x1003 /* source file string */
+.long 42 /* line no. */
 
 .types_end:
index 07d2a6fff1f2747f427fd6883264e777004defe6..fe98cf65cca4a28adea5660ccdb370cf388c29d8 100644 (file)
@@ -19,7 +19,8 @@
 # MA 02110-1301, USA.
 
 if {![istarget i*86-*-mingw*]
-  && ![istarget x86_64-*-mingw*]} {
+  && ![istarget x86_64-*-mingw*]
+  && ![istarget aarch64-*-mingw*]} {
     return
 }
 
index 1df84a344f64c1e255ecdeaca1dda20922ef8611..d92683624c236ea49409882b91710dec88f7b2a2 100644 (file)
@@ -37,7 +37,7 @@
 .long 0x89abcdef
 .long 0xfedcba98
 .long 0x67452310
-.short 0 # padding
+.short 0 /* padding */
 
 .long .src2 - .strings_start
 .byte NUM_MD5_BYTES
@@ -46,7 +46,7 @@
 .long 0x67452310
 .long 0x01234567
 .long 0x89abcdef
-.short 0 # padding
+.short 0 /* padding */
 
 .chksms_end:
 
 
 .secrel32 main
 .secidx main
-.short 0 # flags
-.long .main_end - main # length of region
+.short 0 /* flags */
+.long .main_end - main /* length of region */
 
 .lines_block1:
 
-.long 0 # file ID 0 (foo)
-.long 2 # no. lines
-.long .lines_block2 - .lines_block1 # length
+.long 0 /* file ID 0 (foo) */
+.long 2 /* no. lines */
+.long .lines_block2 - .lines_block1 /* length */
 
 .long .line1 - main
-.long 0x80000001 # line 1
+.long 0x80000001 /* line 1 */
 .long .line2 - main
-.long 0x80000002 # line 2
+.long 0x80000002 /* line 2 */
 
 .lines_block2:
 
-.long 0x18 # file ID 18 (bar)
-.long 2 # no. lines
-.long .lines_block3 - .lines_block2 # length
+.long 0x18 /* file ID 18 (bar) */
+.long 2 /* no. lines */
+.long .lines_block3 - .lines_block2 /* length */
 
 .long .line3 - main
-.long 0x80000003 # line 3
+.long 0x80000003 /* line 3 */
 .long .line4 - main
-.long 0x80000004 # line 4
+.long 0x80000004 /* line 4 */
 
 .lines_block3:
 
-.long 0 # file ID 0 (foo)
-.long 1 # no. lines
-.long .lines_end - .lines_block3 # length
+.long 0 /* file ID 0 (foo) */
+.long 1 /* no. lines */
+.long .lines_end - .lines_block3 /* length */
 
 .long .line5 - main
-.long 0x80000005 # line 5
+.long 0x80000005 /* line 5 */
 
 .lines_end:
 
 
 .secrel32 gcfunc
 .secidx gcfunc
-.short 0 # flags
-.long .gcfunc_end - gcfunc # length of region
+.short 0 /* flags */
+.long .gcfunc_end - gcfunc /* length of region */
 
 .lines_block4:
 
-.long 0 # file ID 0 (foo)
-.long 1 # no. lines
-.long .lines_end2 - .lines_block4 # length
+.long 0 /* file ID 0 (foo) */
+.long 1 /* no. lines */
+.long .lines_end2 - .lines_block4 /* length */
 
 .long .line6 - gcfunc
-.long 0x80000006 # line 6
+.long 0x80000006 /* line 6 */
 
 .lines_end2:
 
index fffb1150c886f748c29c001dc6eef562cfb02e03..aa23821648bc5e79010aea1f405353f606591c22 100644 (file)
@@ -36,7 +36,7 @@
 .long 0x67452310
 .long 0x01234567
 .long 0x89abcdef
-.short 0 # padding
+.short 0 /* padding */
 
 .long .src2 - .strings_start
 .byte NUM_MD5_BYTES
@@ -45,7 +45,7 @@
 .long 0x4c5d6e7f
 .long 0x7f6e5d4c
 .long 0x3b2a1908
-.short 0 # padding
+.short 0 /* padding */
 
 .chksms_end: