@@ -402,26 +402,38 @@ global variables).
402402Unlike \c{GLOBAL}, \c{STATIC} does not allow object formats to accept
403403private extensions mentioned in \k{global}.
404404
405- \H{mangling} \i\c{(G|L)PREFIX}, \i\c{(G|L)POSTFIX}: Mangling Symbols
406-
407- \c{PREFIX}, \c{GPREFIX}, \c{LPREFIX}, \c{POSTFIX}, \c{GPOSTFIX}, and
408- \c{LPOSTFIX} directives can prepend or append a string to a certain
405+ \IR{PREFIX} \c{[PREFIX]}
406+ \IC{PREFIX}{GPREFIX} \c{[GPREFIX]}
407+ \IC{PREFIX}{LPREFIX} \c{[LPREFIX]}
408+ \IC{PREFIX}{SUFFIX} \c{[SUFFIX]}
409+ \IC{PREFIX}{GSUFFIX} \c{[GSUFFIX]}
410+ \IC{PREFIX}{LSUFFIX} \c{[LSUFFIX]}
411+ \IC{PREFIX}{POSTFIX} \c{[POSTFIX]}
412+ \IC{PREFIX}{GPOSTFIX} \c{[GPOSTFIX]}
413+ \IC{PREFIX}{LPOSTFIX} \c{[LPOSTFIX]}
414+
415+ \H{mangling} \I{PREFIX}\c{[GL]PREFIX}, \c{[GL]SUFFIX}: Mangling Symbols
416+
417+ \c{[PREFIX}, \c{[GPREFIX}, \c{[LPREFIX}, \c{[SUFFIX}, \c{[GSUFFIX}, and
418+ \c{[LSUFFIX} directives can prepend or append a string to a certain
409419type of symbols, normally to fit specific ABI conventions
410420
411- \b\c{PREFIX}| \c{GPREFIX}: Prepend the argument to all \c{EXTERN},
421+ \b\c{[ PREFIX}, \c{[ GPREFIX}: Prepend the argument to all \c{EXTERN},
412422\c{COMMON}, \c{STATIC}, and \c{GLOBAL} symbols.
413423
414- \b\c{LPREFIX}: Prepend the argument to all other symbols
424+ \b\c{[ LPREFIX}: Prepend the argument to all other symbols
415425such as local labels and backend defined symbols.
416426
417- \b\c{POSTFIX}|\c{GPOSTFIX}: Append the argument to all \c{EXTERN},
418- \c{COMMON}, \c{STATIC}, and \c{GLOBAL} symbols.
427+ \b\c{[SUFFIX]}, \c{[GSUFFIX]}, \c{[POSTFIX]}, \c{[GPOSTFIX]}: Append
428+ the argument to all \c{EXTERN}, \c{COMMON}, \c{STATIC}, and
429+ \c{GLOBAL} symbols.
419430
420- \b\c{LPOSTFIX}: Append the argument to all other symbols
431+ \b\c{[LSUFFIX]}, \c{[ LPOSTFIX] }: Append the argument to all other symbols
421432such as local labels and backend defined symbols.
422433
423- These are macros implemented as pragmas, and using \c{%pragma} syntax
424- can be restricted to specific backends (see \k{pragma}):
434+ These directives are also implemented as pragmas, and using
435+ \c{%pragma} syntax can be restricted to specific backends (see
436+ \k{pragma}):
425437
426438\c %pragma macho lprefix L_
427439
@@ -443,13 +455,19 @@ naming scheme to chunk up sections into smaller subsections, each of
443455which may be eliminated. When the \c{subsections_via_symbols}
444456directive (\k{macho-ssvs}) is declared, each symbol is the start of a
445457separate block. The subsection is, then, defined to include sections
446- before the one that starts with a 'L'. \c{LPREFIX} is useful here to
458+ before the one that starts with a 'L'. \c{[ LPREFIX] } is useful here to
447459mark all local symbols with the 'L' prefix to be excluded to the meta
448460section. It converts local symbols compatible with the particular
449461toolchain. Note that local symbols declared with \c{STATIC}
450462(\k{static}) are excluded from the symbol mangling and also not marked
451463as global.
452464
465+ Earlier versions of NASM called the pragmas \i\c{suffix} and the
466+ options \i\c{--postfix}, and did not implement directives at all
467+ despite being so documented. Since NASM 3.01, the directive forms are
468+ implemented, and directives, pragmas and options all support all
469+ spellings.
470+
453471
454472\H{CPU} \i\c{CPU}: Defining CPU Dependencies
455473
0 commit comments