Contributed by: Mathieu Monnier
nasm64developer has a more advanced 3-parameter version that will take
some time to integrate, so for now just provide the simpler version.
svn path=/trunk/yasm/; revision=2312
add new objfmt interface function init_new_section() to initialize as we
go.
This fixes several issues, primarily with debug formats that create sections.
Reported by: Brian Gladman
svn path=/trunk/yasm/; revision=2310
It doesn't yet support the full set of macro types gas supports, but
can handle a lot of common cases.
Contributed by: Alexei Svitkine
svn path=/trunk/yasm/; revision=2285
Basically the objfile, listfile, and mapfile options specify output
directories instead of files. Multiple files are accepted and each one
is independently assembled in command line order. All options (such
as include directories and predefined macros) apply to all input files.
Any error terminates the process early.
Suggested by: Brian Gladman
svn path=/trunk/yasm/; revision=2284
of the TASM "mode".
These code paths aren't used yet; they will be used for GAS .intel_syntax
handling.
Contributed by: Alexei Svitkine
svn path=/trunk/yasm/; revision=2277
This is needed so that other parsers can get access to this structure without
naming conflicts.
Contributed by: Alexei Svitkine
svn path=/trunk/yasm/; revision=2276
It's impossible for a decimal long string to be longer than 64 chars.
Also remove workaround for MSVC added in r2267.
svn path=/trunk/yasm/; revision=2273
The line number reported for the error is that of the .rept directive.
Contributed by: Alexei Svitkine <alexei.svitkine@gmail.com>
svn path=/trunk/yasm/; revision=2265
Contributed by: Alexei Svitkine <alexei.svitkine@gmail.com>
Summary of changes:
- Correct line numbers will now be reported for warnings and errors
when using the GAS preprocessor
- GAS preprocessor will now replace defined (e.g. via .set) variables
by their values in lines returned to the parser
- GAS preprocessor will now handle multi-line comments correctly
- GAS preprocessor will now handle nested .rept directives correctly
svn path=/trunk/yasm/; revision=2260
Contributed by: Alexei Svitkine <alexei.svitkine@gmail.com>
- yasm_linemap_set() now takes virtual_line as a parameter, instead of
always using linemap->current. If 0 is passed for the virtual_line,
then linemap->current is used, as before.
This is because linemap->current was only incremented by the parser
(and never decremented), so the preprocessor was not able to set
mappings during the preprocessing phase (whereas with these changes,
it now does).
Additionally, setting a mapping for a line number will now delete any
existing mappings for line numbers equal or greater to that line
number. This allows the code to correctly handle the case when the
preprocessor first sets mappings from pre-pp lines to post-pp lines,
and later those mappings getting superseded by .line directives in the
original source.
This change also required making a change to yasm_linemap_lookup() to
set *file_line to 0 when line is 0 (i.e. preventing line 0 - which
means "don't display line number in output" - from getting mapped).
svn path=/trunk/yasm/; revision=2259