diff --git a/directives.dat b/directives.dat index fbcf6662..a8d9261c 100644 --- a/directives.dat +++ b/directives.dat @@ -48,7 +48,7 @@ list section segment warning -segalign +sectalign ; --- Format-specific directives export ; outcoff, outobj diff --git a/macros/smartalign.mac b/macros/smartalign.mac index 410c4d3a..9b37f12c 100644 --- a/macros/smartalign.mac +++ b/macros/smartalign.mac @@ -161,7 +161,7 @@ USE: smartalign %unimacro align 1-2+.nolist %imacro align 1-2+.nolist - segalign %1 ; align a segment as well + sectalign %1 ; align a segment as well %ifnempty %2 times (((%1) - (($-$$) % (%1))) % (%1)) %2 %else diff --git a/nasm.c b/nasm.c index 96d91056..18548a8c 100644 --- a/nasm.c +++ b/nasm.c @@ -1232,17 +1232,17 @@ static void assemble_file(char *fname, StrList **depend_ptr) location.segment = seg; } break; - case D_SEGALIGN: /* [SEGALIGN n] */ + case D_SECTALIGN: /* [SECTALIGN n] */ { if (*value) { - int align = atoi(value); + unsigned int align = atoi(value); if (!is_power2(align)) { nasm_error(ERR_NONFATAL, "segment alignment `%s' is not power of two", value); } /* callee should be able to handle all details */ - ofmt->segalign(location.segment, align); + ofmt->sectalign(location.segment, align); } } break; diff --git a/nasm.h b/nasm.h index 9b6ced84..4bdaec8e 100644 --- a/nasm.h +++ b/nasm.h @@ -682,10 +682,10 @@ struct ofmt { int32_t (*section) (char *name, int pass, int *bits); /* - * This procedure is called to modify segment alignment, - * there is a trick, the alignment can only increase + * This procedure is called to modify section alignment, + * note there is a trick, the alignment can only increase */ - void (*segalign)(int32_t seg, int value); + void (*sectalign)(int32_t seg, unsigned int value); /* * This procedure is called to modify the segment base values diff --git a/output/nullout.c b/output/nullout.c index bcb1bd83..196a09df 100644 --- a/output/nullout.c +++ b/output/nullout.c @@ -50,7 +50,7 @@ int null_directive(enum directives directive, char *value, int pass) return 0; } -void null_segalign(int32_t seg, int value) +void null_sectalign(int32_t seg, unsigned int value) { (void)seg; (void)value; diff --git a/output/outaout.c b/output/outaout.c index e0a12e8b..e0963924 100644 --- a/output/outaout.c +++ b/output/outaout.c @@ -924,7 +924,7 @@ struct ofmt of_aout = { aout_out, aout_deflabel, aout_section_names, - null_segalign, + null_sectalign, aout_segbase, null_directive, aout_filename, @@ -947,7 +947,7 @@ struct ofmt of_aoutb = { aout_out, aout_deflabel, aout_section_names, - null_segalign, + null_sectalign, aout_segbase, null_directive, aout_filename, diff --git a/output/outas86.c b/output/outas86.c index f0327301..b288637b 100644 --- a/output/outas86.c +++ b/output/outas86.c @@ -638,7 +638,7 @@ struct ofmt of_as86 = { as86_out, as86_deflabel, as86_section_names, - null_segalign, + null_sectalign, as86_segbase, null_directive, as86_filename, diff --git a/output/outbin.c b/output/outbin.c index 9b831a24..260d99d5 100644 --- a/output/outbin.c +++ b/output/outbin.c @@ -1672,7 +1672,7 @@ struct ofmt of_bin = { bin_out, bin_deflabel, bin_secname, - null_segalign, + null_sectalign, bin_segbase, bin_directive, bin_filename, @@ -1691,7 +1691,7 @@ struct ofmt of_ith = { bin_out, bin_deflabel, bin_secname, - null_segalign, + null_sectalign, bin_segbase, bin_directive, ith_filename, @@ -1710,7 +1710,7 @@ struct ofmt of_srec = { bin_out, bin_deflabel, bin_secname, - null_segalign, + null_sectalign, bin_segbase, bin_directive, srec_filename, diff --git a/output/outcoff.c b/output/outcoff.c index 20bd7053..07974d8c 100644 --- a/output/outcoff.c +++ b/output/outcoff.c @@ -1012,7 +1012,7 @@ struct ofmt of_coff = { coff_out, coff_deflabel, coff_section_names, - null_segalign, + null_sectalign, coff_segbase, coff_directives, coff_std_filename, @@ -1035,7 +1035,7 @@ struct ofmt of_win32 = { coff_out, coff_deflabel, coff_section_names, - null_segalign, + null_sectalign, coff_segbase, coff_directives, coff_win32_filename, @@ -1058,7 +1058,7 @@ struct ofmt of_win64 = { coff_out, coff_deflabel, coff_section_names, - null_segalign, + null_sectalign, coff_segbase, coff_directives, coff_win32_filename, diff --git a/output/outdbg.c b/output/outdbg.c index c365a93d..13d53bd8 100644 --- a/output/outdbg.c +++ b/output/outdbg.c @@ -166,7 +166,7 @@ static void dbg_out(int32_t segto, const void *data, } } -static void dbg_segalign(int32_t seg, int value) +static void dbg_sectalign(int32_t seg, unsigned int value) { fprintf(ofile, "set alignment (%d) for segment (%d)\n", seg, value); @@ -265,7 +265,7 @@ struct ofmt of_dbg = { dbg_out, dbg_deflabel, dbg_section_names, - dbg_segalign, + dbg_sectalign, dbg_segbase, dbg_directive, dbg_filename, diff --git a/output/outelf32.c b/output/outelf32.c index 2179f6ba..4d238a72 100644 --- a/output/outelf32.c +++ b/output/outelf32.c @@ -1305,7 +1305,7 @@ static void elf_sect_write(struct Section *sect, sect->len += len; } -static void elf_segalign(int32_t seg, int value) +static void elf_sectalign(int32_t seg, unsigned int value) { struct Section *s = NULL; int i; @@ -1319,7 +1319,7 @@ static void elf_segalign(int32_t seg, int value) if (!s || !is_power2(value)) return; - if ((unsigned int)value > s->align) + if (value > s->align) s->align = value; } @@ -1419,7 +1419,7 @@ struct ofmt of_elf32 = { elf_out, elf_deflabel, elf_section_names, - elf_segalign, + elf_sectalign, elf_segbase, elf_directive, elf_filename, diff --git a/output/outelf64.c b/output/outelf64.c index c7baf4f5..47581b4b 100644 --- a/output/outelf64.c +++ b/output/outelf64.c @@ -1405,7 +1405,7 @@ static void elf_sect_writeaddr(struct Section *sect, int64_t data, size_t len) sect->len += len; } -static void elf_segalign(int32_t seg, int value) +static void elf_sectalign(int32_t seg, unsigned int value) { struct Section *s = NULL; int i; @@ -1419,7 +1419,7 @@ static void elf_segalign(int32_t seg, int value) if (!s || !is_power2(value)) return; - if ((unsigned int)value > s->align) + if (value > s->align) s->align = value; } @@ -1519,7 +1519,7 @@ struct ofmt of_elf64 = { elf_out, elf_deflabel, elf_section_names, - elf_segalign, + elf_sectalign, elf_segbase, elf_directive, elf_filename, diff --git a/output/outieee.c b/output/outieee.c index 4b2be9e8..d4432719 100644 --- a/output/outieee.c +++ b/output/outieee.c @@ -1501,7 +1501,7 @@ struct ofmt of_ieee = { ieee_out, ieee_deflabel, ieee_segment, - null_segalign, + null_sectalign, ieee_segbase, ieee_directive, ieee_filename, diff --git a/output/outlib.h b/output/outlib.h index 0448ae4d..29c27a09 100644 --- a/output/outlib.h +++ b/output/outlib.h @@ -41,7 +41,7 @@ uint64_t realsize(enum out_type type, uint64_t size); /* Do-nothing versions of some output routines */ int null_setinfo(enum geninfo type, char **string); int null_directive(enum directives directive, char *value, int pass); -void null_segalign(int32_t seg, int value); +void null_sectalign(int32_t seg, unsigned int value); /* Do-nothing versions of all the debug routines */ struct ofmt; diff --git a/output/outmacho32.c b/output/outmacho32.c index 44eb0ecf..b0c95600 100644 --- a/output/outmacho32.c +++ b/output/outmacho32.c @@ -1317,7 +1317,7 @@ struct ofmt of_macho32 = { macho_output, macho_symdef, macho_section, - null_segalign, + null_sectalign, macho_segbase, null_directive, macho_filename, diff --git a/output/outmacho64.c b/output/outmacho64.c index c54e6d99..f9498811 100644 --- a/output/outmacho64.c +++ b/output/outmacho64.c @@ -1488,7 +1488,7 @@ struct ofmt of_macho64 = { macho_output, macho_symdef, macho_section, - null_segalign, + null_sectalign, macho_segbase, null_directive, macho_filename, diff --git a/output/outobj.c b/output/outobj.c index 8c3c9efe..053ca4fb 100644 --- a/output/outobj.c +++ b/output/outobj.c @@ -2559,7 +2559,7 @@ struct ofmt of_obj = { obj_out, obj_deflabel, obj_segment, - null_segalign, + null_sectalign, obj_segbase, obj_directive, obj_filename, diff --git a/output/outrdf2.c b/output/outrdf2.c index 4c2851d6..02518a1a 100644 --- a/output/outrdf2.c +++ b/output/outrdf2.c @@ -788,7 +788,7 @@ struct ofmt of_rdf2 = { rdf2_out, rdf2_deflabel, rdf2_section_names, - null_segalign, + null_sectalign, rdf2_segbase, rdf2_directive, rdf2_filename, diff --git a/standard.mac b/standard.mac index a7a52dbf..32a75a8c 100644 --- a/standard.mac +++ b/standard.mac @@ -66,9 +66,8 @@ %define __SECT__ [segment %1] __SECT__ %endmacro -%imacro segalign 1+.nolist -%define __SECT__ [segalign %1] - __SECT__ +%imacro sectalign 1.nolist + [sectalign %1] %endmacro %imacro absolute 1+.nolist