Rename SEGALIGN to SECTALIGN
"sectalign" is preferred over "segalign" since it operates over section attributes. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
This commit is contained in:
parent
1f3db76ee9
commit
2ef5c27be7
19 changed files with 34 additions and 35 deletions
|
@ -48,7 +48,7 @@ list
|
||||||
section
|
section
|
||||||
segment
|
segment
|
||||||
warning
|
warning
|
||||||
segalign
|
sectalign
|
||||||
|
|
||||||
; --- Format-specific directives
|
; --- Format-specific directives
|
||||||
export ; outcoff, outobj
|
export ; outcoff, outobj
|
||||||
|
|
|
@ -161,7 +161,7 @@ USE: smartalign
|
||||||
|
|
||||||
%unimacro align 1-2+.nolist
|
%unimacro align 1-2+.nolist
|
||||||
%imacro 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
|
%ifnempty %2
|
||||||
times (((%1) - (($-$$) % (%1))) % (%1)) %2
|
times (((%1) - (($-$$) % (%1))) % (%1)) %2
|
||||||
%else
|
%else
|
||||||
|
|
6
nasm.c
6
nasm.c
|
@ -1232,17 +1232,17 @@ static void assemble_file(char *fname, StrList **depend_ptr)
|
||||||
location.segment = seg;
|
location.segment = seg;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case D_SEGALIGN: /* [SEGALIGN n] */
|
case D_SECTALIGN: /* [SECTALIGN n] */
|
||||||
{
|
{
|
||||||
if (*value) {
|
if (*value) {
|
||||||
int align = atoi(value);
|
unsigned int align = atoi(value);
|
||||||
if (!is_power2(align)) {
|
if (!is_power2(align)) {
|
||||||
nasm_error(ERR_NONFATAL,
|
nasm_error(ERR_NONFATAL,
|
||||||
"segment alignment `%s' is not power of two",
|
"segment alignment `%s' is not power of two",
|
||||||
value);
|
value);
|
||||||
}
|
}
|
||||||
/* callee should be able to handle all details */
|
/* callee should be able to handle all details */
|
||||||
ofmt->segalign(location.segment, align);
|
ofmt->sectalign(location.segment, align);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|
6
nasm.h
6
nasm.h
|
@ -682,10 +682,10 @@ struct ofmt {
|
||||||
int32_t (*section) (char *name, int pass, int *bits);
|
int32_t (*section) (char *name, int pass, int *bits);
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This procedure is called to modify segment alignment,
|
* This procedure is called to modify section alignment,
|
||||||
* there is a trick, the alignment can only increase
|
* 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
|
* This procedure is called to modify the segment base values
|
||||||
|
|
|
@ -50,7 +50,7 @@ int null_directive(enum directives directive, char *value, int pass)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void null_segalign(int32_t seg, int value)
|
void null_sectalign(int32_t seg, unsigned int value)
|
||||||
{
|
{
|
||||||
(void)seg;
|
(void)seg;
|
||||||
(void)value;
|
(void)value;
|
||||||
|
|
|
@ -924,7 +924,7 @@ struct ofmt of_aout = {
|
||||||
aout_out,
|
aout_out,
|
||||||
aout_deflabel,
|
aout_deflabel,
|
||||||
aout_section_names,
|
aout_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
aout_segbase,
|
aout_segbase,
|
||||||
null_directive,
|
null_directive,
|
||||||
aout_filename,
|
aout_filename,
|
||||||
|
@ -947,7 +947,7 @@ struct ofmt of_aoutb = {
|
||||||
aout_out,
|
aout_out,
|
||||||
aout_deflabel,
|
aout_deflabel,
|
||||||
aout_section_names,
|
aout_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
aout_segbase,
|
aout_segbase,
|
||||||
null_directive,
|
null_directive,
|
||||||
aout_filename,
|
aout_filename,
|
||||||
|
|
|
@ -638,7 +638,7 @@ struct ofmt of_as86 = {
|
||||||
as86_out,
|
as86_out,
|
||||||
as86_deflabel,
|
as86_deflabel,
|
||||||
as86_section_names,
|
as86_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
as86_segbase,
|
as86_segbase,
|
||||||
null_directive,
|
null_directive,
|
||||||
as86_filename,
|
as86_filename,
|
||||||
|
|
|
@ -1672,7 +1672,7 @@ struct ofmt of_bin = {
|
||||||
bin_out,
|
bin_out,
|
||||||
bin_deflabel,
|
bin_deflabel,
|
||||||
bin_secname,
|
bin_secname,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
bin_segbase,
|
bin_segbase,
|
||||||
bin_directive,
|
bin_directive,
|
||||||
bin_filename,
|
bin_filename,
|
||||||
|
@ -1691,7 +1691,7 @@ struct ofmt of_ith = {
|
||||||
bin_out,
|
bin_out,
|
||||||
bin_deflabel,
|
bin_deflabel,
|
||||||
bin_secname,
|
bin_secname,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
bin_segbase,
|
bin_segbase,
|
||||||
bin_directive,
|
bin_directive,
|
||||||
ith_filename,
|
ith_filename,
|
||||||
|
@ -1710,7 +1710,7 @@ struct ofmt of_srec = {
|
||||||
bin_out,
|
bin_out,
|
||||||
bin_deflabel,
|
bin_deflabel,
|
||||||
bin_secname,
|
bin_secname,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
bin_segbase,
|
bin_segbase,
|
||||||
bin_directive,
|
bin_directive,
|
||||||
srec_filename,
|
srec_filename,
|
||||||
|
|
|
@ -1012,7 +1012,7 @@ struct ofmt of_coff = {
|
||||||
coff_out,
|
coff_out,
|
||||||
coff_deflabel,
|
coff_deflabel,
|
||||||
coff_section_names,
|
coff_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
coff_segbase,
|
coff_segbase,
|
||||||
coff_directives,
|
coff_directives,
|
||||||
coff_std_filename,
|
coff_std_filename,
|
||||||
|
@ -1035,7 +1035,7 @@ struct ofmt of_win32 = {
|
||||||
coff_out,
|
coff_out,
|
||||||
coff_deflabel,
|
coff_deflabel,
|
||||||
coff_section_names,
|
coff_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
coff_segbase,
|
coff_segbase,
|
||||||
coff_directives,
|
coff_directives,
|
||||||
coff_win32_filename,
|
coff_win32_filename,
|
||||||
|
@ -1058,7 +1058,7 @@ struct ofmt of_win64 = {
|
||||||
coff_out,
|
coff_out,
|
||||||
coff_deflabel,
|
coff_deflabel,
|
||||||
coff_section_names,
|
coff_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
coff_segbase,
|
coff_segbase,
|
||||||
coff_directives,
|
coff_directives,
|
||||||
coff_win32_filename,
|
coff_win32_filename,
|
||||||
|
|
|
@ -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",
|
fprintf(ofile, "set alignment (%d) for segment (%d)\n",
|
||||||
seg, value);
|
seg, value);
|
||||||
|
@ -265,7 +265,7 @@ struct ofmt of_dbg = {
|
||||||
dbg_out,
|
dbg_out,
|
||||||
dbg_deflabel,
|
dbg_deflabel,
|
||||||
dbg_section_names,
|
dbg_section_names,
|
||||||
dbg_segalign,
|
dbg_sectalign,
|
||||||
dbg_segbase,
|
dbg_segbase,
|
||||||
dbg_directive,
|
dbg_directive,
|
||||||
dbg_filename,
|
dbg_filename,
|
||||||
|
|
|
@ -1305,7 +1305,7 @@ static void elf_sect_write(struct Section *sect,
|
||||||
sect->len += 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;
|
struct Section *s = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
@ -1319,7 +1319,7 @@ static void elf_segalign(int32_t seg, int value)
|
||||||
if (!s || !is_power2(value))
|
if (!s || !is_power2(value))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((unsigned int)value > s->align)
|
if (value > s->align)
|
||||||
s->align = value;
|
s->align = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1419,7 +1419,7 @@ struct ofmt of_elf32 = {
|
||||||
elf_out,
|
elf_out,
|
||||||
elf_deflabel,
|
elf_deflabel,
|
||||||
elf_section_names,
|
elf_section_names,
|
||||||
elf_segalign,
|
elf_sectalign,
|
||||||
elf_segbase,
|
elf_segbase,
|
||||||
elf_directive,
|
elf_directive,
|
||||||
elf_filename,
|
elf_filename,
|
||||||
|
|
|
@ -1405,7 +1405,7 @@ static void elf_sect_writeaddr(struct Section *sect, int64_t data, size_t len)
|
||||||
sect->len += 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;
|
struct Section *s = NULL;
|
||||||
int i;
|
int i;
|
||||||
|
@ -1419,7 +1419,7 @@ static void elf_segalign(int32_t seg, int value)
|
||||||
if (!s || !is_power2(value))
|
if (!s || !is_power2(value))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if ((unsigned int)value > s->align)
|
if (value > s->align)
|
||||||
s->align = value;
|
s->align = value;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1519,7 +1519,7 @@ struct ofmt of_elf64 = {
|
||||||
elf_out,
|
elf_out,
|
||||||
elf_deflabel,
|
elf_deflabel,
|
||||||
elf_section_names,
|
elf_section_names,
|
||||||
elf_segalign,
|
elf_sectalign,
|
||||||
elf_segbase,
|
elf_segbase,
|
||||||
elf_directive,
|
elf_directive,
|
||||||
elf_filename,
|
elf_filename,
|
||||||
|
|
|
@ -1501,7 +1501,7 @@ struct ofmt of_ieee = {
|
||||||
ieee_out,
|
ieee_out,
|
||||||
ieee_deflabel,
|
ieee_deflabel,
|
||||||
ieee_segment,
|
ieee_segment,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
ieee_segbase,
|
ieee_segbase,
|
||||||
ieee_directive,
|
ieee_directive,
|
||||||
ieee_filename,
|
ieee_filename,
|
||||||
|
|
|
@ -41,7 +41,7 @@ uint64_t realsize(enum out_type type, uint64_t size);
|
||||||
/* Do-nothing versions of some output routines */
|
/* Do-nothing versions of some output routines */
|
||||||
int null_setinfo(enum geninfo type, char **string);
|
int null_setinfo(enum geninfo type, char **string);
|
||||||
int null_directive(enum directives directive, char *value, int pass);
|
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 */
|
/* Do-nothing versions of all the debug routines */
|
||||||
struct ofmt;
|
struct ofmt;
|
||||||
|
|
|
@ -1317,7 +1317,7 @@ struct ofmt of_macho32 = {
|
||||||
macho_output,
|
macho_output,
|
||||||
macho_symdef,
|
macho_symdef,
|
||||||
macho_section,
|
macho_section,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
macho_segbase,
|
macho_segbase,
|
||||||
null_directive,
|
null_directive,
|
||||||
macho_filename,
|
macho_filename,
|
||||||
|
|
|
@ -1488,7 +1488,7 @@ struct ofmt of_macho64 = {
|
||||||
macho_output,
|
macho_output,
|
||||||
macho_symdef,
|
macho_symdef,
|
||||||
macho_section,
|
macho_section,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
macho_segbase,
|
macho_segbase,
|
||||||
null_directive,
|
null_directive,
|
||||||
macho_filename,
|
macho_filename,
|
||||||
|
|
|
@ -2559,7 +2559,7 @@ struct ofmt of_obj = {
|
||||||
obj_out,
|
obj_out,
|
||||||
obj_deflabel,
|
obj_deflabel,
|
||||||
obj_segment,
|
obj_segment,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
obj_segbase,
|
obj_segbase,
|
||||||
obj_directive,
|
obj_directive,
|
||||||
obj_filename,
|
obj_filename,
|
||||||
|
|
|
@ -788,7 +788,7 @@ struct ofmt of_rdf2 = {
|
||||||
rdf2_out,
|
rdf2_out,
|
||||||
rdf2_deflabel,
|
rdf2_deflabel,
|
||||||
rdf2_section_names,
|
rdf2_section_names,
|
||||||
null_segalign,
|
null_sectalign,
|
||||||
rdf2_segbase,
|
rdf2_segbase,
|
||||||
rdf2_directive,
|
rdf2_directive,
|
||||||
rdf2_filename,
|
rdf2_filename,
|
||||||
|
|
|
@ -66,9 +66,8 @@
|
||||||
%define __SECT__ [segment %1]
|
%define __SECT__ [segment %1]
|
||||||
__SECT__
|
__SECT__
|
||||||
%endmacro
|
%endmacro
|
||||||
%imacro segalign 1+.nolist
|
%imacro sectalign 1.nolist
|
||||||
%define __SECT__ [segalign %1]
|
[sectalign %1]
|
||||||
__SECT__
|
|
||||||
%endmacro
|
%endmacro
|
||||||
|
|
||||||
%imacro absolute 1+.nolist
|
%imacro absolute 1+.nolist
|
||||||
|
|
Loading…
Reference in a new issue