]> granicus.if.org Git - yasm/commitdiff
coff_objfmt.c (coff_objfmt_section_switch): Default alignment to 16 bytes
authorPeter Johnson <peter@tortall.net>
Wed, 3 Aug 2005 07:05:09 +0000 (07:05 -0000)
committerPeter Johnson <peter@tortall.net>
Wed, 3 Aug 2005 07:05:09 +0000 (07:05 -0000)
when in 64-bit mode.

svn path=/trunk/yasm/; revision=1214

modules/objfmts/coff/coff-objfmt.c

index e5cdaee57d0dcd816c53eddb2472ca16f1824d6b..846a3c20eb90194a4e09db4835a8e520842876f2 100644 (file)
@@ -1021,14 +1021,22 @@ coff_objfmt_section_switch(yasm_objfmt *objfmt, yasm_valparamhead *valparams,
 
     if (strcmp(sectname, ".data") == 0) {
        flags = COFF_STYP_DATA;
-       if (objfmt_coff->win32)
-           flags |= COFF_STYP_READ | COFF_STYP_WRITE |
-               (3<<COFF_STYP_ALIGN_SHIFT);     /* align=4 */
+       if (objfmt_coff->win32) {
+           flags |= COFF_STYP_READ | COFF_STYP_WRITE;
+           if (objfmt_coff->machine == COFF_MACHINE_AMD64)
+               flags |= 5<<COFF_STYP_ALIGN_SHIFT;      /* align=16 */
+           else
+               flags |= 3<<COFF_STYP_ALIGN_SHIFT;      /* align=4 */
+       }
     } else if (strcmp(sectname, ".bss") == 0) {
        flags = COFF_STYP_BSS;
-       if (objfmt_coff->win32)
-           flags |= COFF_STYP_READ | COFF_STYP_WRITE |
-               (3<<COFF_STYP_ALIGN_SHIFT);     /* align=4 */
+       if (objfmt_coff->win32) {
+           flags |= COFF_STYP_READ | COFF_STYP_WRITE;
+           if (objfmt_coff->machine == COFF_MACHINE_AMD64)
+               flags |= 5<<COFF_STYP_ALIGN_SHIFT;      /* align=16 */
+           else
+               flags |= 3<<COFF_STYP_ALIGN_SHIFT;      /* align=4 */
+       }
        resonly = 1;
     } else if (strcmp(sectname, ".text") == 0) {
        flags = COFF_STYP_TEXT;