]> granicus.if.org Git - yasm/log
yasm
15 years agotasm (tweaked nasm) preproc fixes:
Peter Johnson [Fri, 17 Apr 2009 03:25:08 +0000 (03:25 -0000)]
tasm (tweaked nasm) preproc fixes:
 - comments stripped before tokenization caused strings containing ';'
   to generate warnings (unterminated string) and incorrect output.
 - assume directive parsing did not properly handle ';' as end of line

Also add tests for the above.

Reported by: Rugxulo <rugxulo@gmail.com>

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

15 years agotasm parser: Support "not" keyword.
Peter Johnson [Fri, 17 Apr 2009 03:22:25 +0000 (03:22 -0000)]
tasm parser: Support "not" keyword.

Requested by: Rugxulo <rugxulo@gmail.com>

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

15 years agoDefault memory size to "s" for no-suffix FP conversions in GAS syntax.
Peter Johnson [Sun, 29 Mar 2009 23:25:05 +0000 (23:25 -0000)]
Default memory size to "s" for no-suffix FP conversions in GAS syntax.

Reported by: Gregory McGarry <g.mcgarry@ieee.org>

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

15 years agoFix referencing of local label from line that defines nonlocal label.
Peter Johnson [Wed, 25 Mar 2009 03:40:59 +0000 (03:40 -0000)]
Fix referencing of local label from line that defines nonlocal label.

Reported by: Brian Gladman

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

15 years agoUpdate copyright dates.
Peter Johnson [Tue, 24 Mar 2009 06:47:38 +0000 (06:47 -0000)]
Update copyright dates.

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

15 years agoFix #155: Don't crash on missing %endmacro.
Peter Johnson [Tue, 24 Mar 2009 06:33:32 +0000 (06:33 -0000)]
Fix #155: Don't crash on missing %endmacro.

We were crashing because we didn't generate this error until the preproc
module was getting cleaned up, which doesn't happen until after linemap
is cleaned up.  Instead detect and output this error when we reach the end
of preprocessed tokens during the parsing stage.

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

15 years agoRemove vc7 and vc8 build files, as they're no longer being maintained.
Peter Johnson [Tue, 24 Mar 2009 05:04:15 +0000 (05:04 -0000)]
Remove vc7 and vc8 build files, as they're no longer being maintained.
There's a Python script (vc98_swap.py) in the Mkfiles/vc9 directory for
those who want to build with vc8.

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

15 years agoRename tasm to ytasm in Unix builds.
Peter Johnson [Tue, 24 Mar 2009 04:58:46 +0000 (04:58 -0000)]
Rename tasm to ytasm in Unix builds.
We aren't compatible enough to call ourselves the "real" one.

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

15 years agoUpdate code generated for alignment padding for more recent processors.
Peter Johnson [Fri, 20 Mar 2009 07:36:49 +0000 (07:36 -0000)]
Update code generated for alignment padding for more recent processors.
Also match GAS behavior by using different NOP sequences for AMD and Intel.
Different "Long" NOP opcode sequences are used based on the below criteria.

Defaults in 32-bit mode:
 - CPU directive not used: backwards compatible (no long NOP opcodes)
 - CPU directive with Intel CPU >= 686: Intel guidelines, using long NOPs
 - CPU directive with AMD CPU >= K6: AMD guidelines, using long NOPs

Defaults in 64-bit mode:
 - CPU directive not used: Intel guidelines, using long NOPs
 - CPU directive with Intel CPU >= 686: Intel guidelines, using long NOPs
 - CPU directive with AMD CPU >= K6: AMD guidelines, using long NOPs

The above defaults may be overridden with these options to the CPU directive:
 - CPU basicnop: backwards compatible (no long NOP opcodes)
 - CPU intelnop: Intel guidelines, using long NOPs
 - CPU amdnop: AMD guidelines, using long NOPs

Suggested by: Brian Gladman <brg@gladman.plus.com>

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

15 years agoUse arrays instead of strings to store NOP fill.
Peter Johnson [Fri, 20 Mar 2009 05:24:16 +0000 (05:24 -0000)]
Use arrays instead of strings to store NOP fill.

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

15 years agoAdd (but don't enable) AMD K10 alignment padding data
Brian Gladman [Wed, 18 Mar 2009 19:57:37 +0000 (19:57 -0000)]
Add (but don't enable) AMD K10 alignment padding data

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

15 years agoUpdate yasm.rules file for VC++
Brian Gladman [Fri, 6 Mar 2009 09:18:56 +0000 (09:18 -0000)]
Update yasm.rules file for VC++

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

15 years agoRemove renamed tasm.vcproj (as of [2175] it is ytasm.vcproj).
Peter Johnson [Wed, 4 Mar 2009 07:41:59 +0000 (07:41 -0000)]
Remove renamed tasm.vcproj (as of [2175] it is ytasm.vcproj).
Add to distribution files.

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

15 years agoUnbreak snapshots (broken in [2172]).
Peter Johnson [Wed, 4 Mar 2009 07:39:02 +0000 (07:39 -0000)]
Unbreak snapshots (broken in [2172]).

Noticed by: Mark Charney <mark.charney@intel.com>

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

15 years agoTidy up VC++ project names for ytasm
Brian Gladman [Thu, 26 Feb 2009 09:58:33 +0000 (09:58 -0000)]
Tidy up VC++ project names for ytasm

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

15 years agorename tasm for VC++
Brian Gladman [Wed, 25 Feb 2009 18:33:05 +0000 (18:33 -0000)]
rename tasm for VC++

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

15 years agoAdd support for VEX-encoded pclmul*qdq instructions per the latest AVX spec.
Peter Johnson [Mon, 2 Feb 2009 08:20:12 +0000 (08:20 -0000)]
Add support for VEX-encoded pclmul*qdq instructions per the latest AVX spec.
To stay consist with handling of other VEX instructions, also add yasm
extensions to support combining the first two operands for direct translation
from non-VEX to VEX-encoded by simply adding a "v" prefix to the opcode.

Contributed by: Mark Charney, Intel Corporation <Mark.Charney@intel.com>
Yasm extensions by: Peter Johnson

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

15 years agoFix #166: Off-by-one error in raw preproc caused hang on lines longer than
Peter Johnson [Tue, 27 Jan 2009 06:38:14 +0000 (06:38 -0000)]
Fix #166: Off-by-one error in raw preproc caused hang on lines longer than
512 characters.

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

15 years agoAdd file missed in previous commit.
Peter Johnson [Wed, 14 Jan 2009 08:34:22 +0000 (08:34 -0000)]
Add file missed in previous commit.

Contributed by: Mark Charney, Intel Corporation

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

15 years agoUpdate AVX and FMA to latest Intel specification (Dec 2008).
Peter Johnson [Wed, 14 Jan 2009 08:28:13 +0000 (08:28 -0000)]
Update AVX and FMA to latest Intel specification (Dec 2008).
- Removed VPERMIL2 opcodes (VPERMIL2PS, VPERMIL2PD).
- Replaced 4-operand FMA instructions with completely new set of opcodes.

Contributed by: Mark Charney, Intel Corporation <mark.charney@intel.com>

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

15 years agogas parser: Allow segment register prefixes before instructions.
Peter Johnson [Fri, 2 Jan 2009 20:46:57 +0000 (20:46 -0000)]
gas parser: Allow segment register prefixes before instructions.

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

15 years agogas parser: Allow equ's to be named the same as instructions.
Peter Johnson [Fri, 2 Jan 2009 20:32:05 +0000 (20:32 -0000)]
gas parser: Allow equ's to be named the same as instructions.

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

15 years agoRemove long-obsolete "debug" flag from internal parser structures.
Peter Johnson [Fri, 2 Jan 2009 08:36:09 +0000 (08:36 -0000)]
Remove long-obsolete "debug" flag from internal parser structures.

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

15 years agoAllow @ signs in identifiers in win32/win64 only.
Peter Johnson [Fri, 2 Jan 2009 08:33:21 +0000 (08:33 -0000)]
Allow @ signs in identifiers in win32/win64 only.
In ELF, @ is used to indicate special relocations.

Fixes #164.

Reported by: Gregory McGarry on yasm-devel@
Testcase by: Gregory McGarry

We don't allow identifiers to start with @; doing so conflicts with use of
e.g. "@function" in some directives.  Need to look into what GAS does.

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

15 years agoelf-x86id.asm testcase: Don't require NASM preproc.
Peter Johnson [Fri, 2 Jan 2009 08:15:58 +0000 (08:15 -0000)]
elf-x86id.asm testcase: Don't require NASM preproc.

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

15 years agoGas parser: Move instruction/prefix lookup from tokenizer to parser.
Peter Johnson [Fri, 2 Jan 2009 07:27:39 +0000 (07:27 -0000)]
Gas parser: Move instruction/prefix lookup from tokenizer to parser.
Use the single token of lookahead to detect the label case.

This is significantly cleaner as it removes the special-casing of labels
in the tokenizer (so there is just a single identifier rule) and removes
the INSTDIR parser state (as this was only used to prevent instruction
lookup within other locations).

Also, ID and LABEL now provide the string length to the parser.  We needed
to do this for ID due to parse_check_insnprefix() needing the length, so
both were folded in for consistency.

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

16 years agogas-parse.c: Fix double-free on error.
Peter Johnson [Wed, 24 Dec 2008 06:17:54 +0000 (06:17 -0000)]
gas-parse.c: Fix double-free on error.

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

16 years agoLegalize effective addresses such as [eax*2+ebx*2-ebx].
Peter Johnson [Sun, 21 Dec 2008 10:57:36 +0000 (10:57 -0000)]
Legalize effective addresses such as [eax*2+ebx*2-ebx].
These were incorrectly identified as invalid.  The code would see the
ebx*2 term and identify ebx as the index register.  After the ebx was
subtracted, the ebx remained in the index register slot, so eax*2 had
nowhere to go.  The code now recognizes this case and frees the slot
when the -ebx is processed, leaving the index register selection up
to the main part of the code.

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

16 years agoFix Mach-O alignment handling by aligning start and end of every section.
Peter Johnson [Sun, 7 Dec 2008 02:49:22 +0000 (02:49 -0000)]
Fix Mach-O alignment handling by aligning start and end of every section.

Reported and patch by: David DeHaven <dave@sagetv.com>

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

16 years agogen_x86_insn.py: Handle invalid rcstag.
Peter Johnson [Fri, 5 Dec 2008 07:13:33 +0000 (07:13 -0000)]
gen_x86_insn.py: Handle invalid rcstag.
This can happen if somehow this file is retrieved without expanded keywords
(e.g. directly from the webpage, or via something like git-svn).

Reported by: Patrick Walton <pcwalton@cs.ucla.edu>

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

16 years agoDon't assume CPP_PROG is 3 characters long (e.g. "gcc -E" isn't).
Peter Johnson [Tue, 25 Nov 2008 09:16:26 +0000 (09:16 -0000)]
Don't assume CPP_PROG is 3 characters long (e.g. "gcc -E" isn't).

Reported and fix submitted by: Mark Charney

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

16 years agoFix #161: Don't require 0d/0e/0f/0t prefix on floating point numbers.
Peter Johnson [Thu, 30 Oct 2008 07:36:25 +0000 (07:36 -0000)]
Fix #161: Don't require 0d/0e/0f/0t prefix on floating point numbers.
While this is not mentioned in the GAS documentation, GAS doesn't require it.

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

16 years agoFix #157: Use UNIX (not Windows) path functions on cygwin platform.
Peter Johnson [Sun, 19 Oct 2008 07:29:15 +0000 (07:29 -0000)]
Fix #157: Use UNIX (not Windows) path functions on cygwin platform.

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

16 years agoAdd movbe instruction and CPU feature.
Peter Johnson [Thu, 16 Oct 2008 02:44:49 +0000 (02:44 -0000)]
Add movbe instruction and CPU feature.

Noticed by: Mark Charney

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

16 years agoUpdate Makefile.am for vc98_swap.py.
Peter Johnson [Thu, 9 Oct 2008 04:37:12 +0000 (04:37 -0000)]
Update Makefile.am for vc98_swap.py.

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

16 years agoChange to Python for Visual Studio 2008/2005 conversion (vc98_swap.py in place of...
Brian Gladman [Wed, 8 Oct 2008 08:48:18 +0000 (08:48 -0000)]
Change to Python for Visual Studio 2008/2005 conversion (vc98_swap.py in place of vc928.c)

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

16 years agosvn path=/trunk/yasm/; revision=2150
Brian Gladman [Wed, 8 Oct 2008 08:41:55 +0000 (08:41 -0000)]
svn path=/trunk/yasm/; revision=2150

16 years agoupdate Visual Studio 2008 build
Brian Gladman [Wed, 8 Oct 2008 08:22:37 +0000 (08:22 -0000)]
update Visual Studio 2008 build

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

16 years agoRemove directory EXTRA_DIST; it seems to be making distcheck on ctn die.
Peter Johnson [Wed, 8 Oct 2008 07:15:45 +0000 (07:15 -0000)]
Remove directory EXTRA_DIST; it seems to be making distcheck on ctn die.

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

16 years agoUse yasm functions yasm__strcasecmp and nasm_strdup instead of relying on
Peter Johnson [Wed, 8 Oct 2008 05:19:47 +0000 (05:19 -0000)]
Use yasm functions yasm__strcasecmp and nasm_strdup instead of relying on
platform to have them.

Also, instead of using snprintf, preallocate and then use sprintf.  This
also avoids the while() reallocation loop.

Reported by: Brian Gladman

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

16 years agotasm.c: Don't include unistd.h.
Peter Johnson [Wed, 8 Oct 2008 04:58:08 +0000 (04:58 -0000)]
tasm.c: Don't include unistd.h.

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

16 years agoAdd Samuel Thibault to list of contributors.
Peter Johnson [Tue, 7 Oct 2008 06:22:58 +0000 (06:22 -0000)]
Add Samuel Thibault to list of contributors.

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

16 years agotasm frontend: Fix handling of options >2 chars long.
Peter Johnson [Tue, 7 Oct 2008 06:21:06 +0000 (06:21 -0000)]
tasm frontend: Fix handling of options >2 chars long.
Use yasm__strncasecmp instead of manually lowercasing up to two characters.

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

16 years agotasm frontend: Fix crash with plain /l option.
Peter Johnson [Tue, 7 Oct 2008 06:16:57 +0000 (06:16 -0000)]
tasm frontend: Fix crash with plain /l option.

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

16 years agoDon't use tasm_compatible_mode in nasm parser (use local var instead).
Peter Johnson [Tue, 7 Oct 2008 06:02:12 +0000 (06:02 -0000)]
Don't use tasm_compatible_mode in nasm parser (use local var instead).
Fix a few warnings while here.

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

16 years agoFix a number of warnings.
Peter Johnson [Tue, 7 Oct 2008 05:59:29 +0000 (05:59 -0000)]
Fix a number of warnings.

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

16 years agoAdd CMakeLists.txt for tasm frontend.
Peter Johnson [Tue, 7 Oct 2008 05:47:08 +0000 (05:47 -0000)]
Add CMakeLists.txt for tasm frontend.

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

16 years agoUpdate Mkfiles (except for VC) for TASM build.
Peter Johnson [Tue, 7 Oct 2008 05:43:29 +0000 (05:43 -0000)]
Update Mkfiles (except for VC) for TASM build.

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

16 years agoAdd core TASM syntax support.
Peter Johnson [Tue, 7 Oct 2008 05:38:11 +0000 (05:38 -0000)]
Add core TASM syntax support.
Contributed by: Samuel Thibault <samuel.thibault@ens-lyon.org>

It is built on top of the NASM parser and preproc, with the following
notable extensions for TASM syntax:
 - case insensitive symbols and filenames,
 - support for segment and size of labels, which permits to avoid giving
   them on each memory dereference,
 - support for data reservation (i.e. e.g. "var dd ?"),
 - support for multiples (i.e. e.g. "var dd 1 dup 10"),
 - little endian string integer constants,
 - additional expression operators: shl, shr, and, or, low, high,
 - additional offset keyword,
 - additional fword and df,
 - support for doubled quotes within quotes,
 - support for array-like and structure-like notations: t[eax] and
   [var].field,
 - support for tasm directives: macro, rept, irp, locals, proc, struc,
   segment, assume.

Notes:

 - Almost all extensions are only effective when tasm_compatible_mode is
   set, so we should have very reduced possible breakage.

 - Because the "and" keyword can be an expression operator and an
   instruction name, the data pseudo-instructions explicitly switch the
   lexer state to INSTRUCTION state to fix the ambiguity.

 - In gen_x86_insn.py, several instructions (namely lds and lea) now take
   relaxed memory sizes.  The reason is that in the case of tasm, the size
   of the actual pointed data is passed up to there, and thus any type of
   data should be accepted.

With all of this, loadlin can be compiled by yasm with quite reduced
modifications.

A new TASM-like frontend is also included.

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

16 years agoDon't require nasm preproc for some testcases.
Peter Johnson [Tue, 7 Oct 2008 04:34:19 +0000 (04:34 -0000)]
Don't require nasm preproc for some testcases.

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

16 years agoOptimize non-strict push with 66 override to byte size if possible in NASM
Peter Johnson [Sun, 5 Oct 2008 08:31:04 +0000 (08:31 -0000)]
Optimize non-strict push with 66 override to byte size if possible in NASM
syntax.

Previously, the forms of push that did this optimization were disabled in
NASM syntax due to conflicting with the size=BITS case.  Fix this via
reordering to allow these forms to be active in NASM syntax.

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

16 years agoelf64: automatically promote [rel foo wrt ..gotpc] to GOTPCREL relocation.
Peter Johnson [Fri, 3 Oct 2008 08:13:00 +0000 (08:13 -0000)]
elf64: automatically promote [rel foo wrt ..gotpc] to GOTPCREL relocation.
Formerly, [rel foo wrt ..gotpcrel] was required.

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

16 years agoVPBLENDVB doesn't have a 256-bit form.
Peter Johnson [Thu, 2 Oct 2008 07:26:22 +0000 (07:26 -0000)]
VPBLENDVB doesn't have a 256-bit form.

Reported by: Mark Charney

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

16 years agogen_x86_insn.py: Warn if any groups are unused (due to a typo, for example).
Peter Johnson [Thu, 2 Oct 2008 02:15:56 +0000 (02:15 -0000)]
gen_x86_insn.py: Warn if any groups are unused (due to a typo, for example).

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

16 years agoFix expr simplification bug.
Peter Johnson [Tue, 30 Sep 2008 03:56:37 +0000 (03:56 -0000)]
Fix expr simplification bug.
If an expression of the form INT+(a+b)+INT was simplified, constant folding
would combine the ints, but then the level stage (to make INT+a+b) would
start reading from the second (deleted due to folding) INT rather than the
new end of the expression.

Reported by: Samuel Thibault (on yasm-devel@)

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

16 years agoNasm lexer: Don't read past end of passed string.
Peter Johnson [Tue, 30 Sep 2008 02:52:56 +0000 (02:52 -0000)]
Nasm lexer: Don't read past end of passed string.
This was because the re2c-generated code always reads the next character
prior to user code being executed.  Instead, check for the \0 marker prior
to entering the re2c code.  Retain the re2c check just for sanity.

Reported by: Samuel Thibault (on yasm-devel@)

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

16 years agoMark gen_x86_insn.py outputs as generated, to discourage hand-editing.
Peter Johnson [Wed, 10 Sep 2008 02:42:45 +0000 (02:42 -0000)]
Mark gen_x86_insn.py outputs as generated, to discourage hand-editing.

Suggested by: Mark Charney

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

16 years agoFix #153: Name the absolute symbol.
Peter Johnson [Thu, 4 Sep 2008 04:45:30 +0000 (04:45 -0000)]
Fix #153: Name the absolute symbol.
While we're here, ensure it's always output regardless of all_syms setting.

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

16 years agoIncrease size of buffer now that mnenomics can be 16 characters.
Peter Johnson [Wed, 13 Aug 2008 04:05:19 +0000 (04:05 -0000)]
Increase size of buffer now that mnenomics can be 16 characters.

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

16 years agoAdd support for newly specified AVX/AES instructions:
Peter Johnson [Wed, 13 Aug 2008 03:43:47 +0000 (03:43 -0000)]
Add support for newly specified AVX/AES instructions:
- vaes*
- 256b vmovnt{ps,pd,dq}

Reported by: Mark.Charney@intel.com

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

16 years agoFix bug in expr_level_op(). Discovered when adding on-the-fly expr leveling.
Peter Johnson [Fri, 18 Jul 2008 05:52:01 +0000 (05:52 -0000)]
Fix bug in expr_level_op().  Discovered when adding on-the-fly expr leveling.

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

16 years agoActually implement yasm__abspath() according to its documentation.
Peter Johnson [Tue, 15 Jul 2008 05:49:29 +0000 (05:49 -0000)]
Actually implement yasm__abspath() according to its documentation.
Formerly, it would not correctly handle absolute paths.  Now it uses
yasm__combpath() to do absolute-path aware path combination.
As a benefit, it no longer needs to be OS-specific.

Reported by: Shmuel Baron <shmulik@gmail.com>

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

16 years agoFix extraneous warnings and update testcases for [2114] changes.
Peter Johnson [Tue, 8 Jul 2008 06:36:44 +0000 (06:36 -0000)]
Fix extraneous warnings and update testcases for [2114] changes.

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

16 years agoFix #148: Don't clear elf section flags in GAS if it's a standard section and
Peter Johnson [Tue, 8 Jul 2008 06:28:37 +0000 (06:28 -0000)]
Fix #148: Don't clear elf section flags in GAS if it's a standard section and
no GAS flags were provided.

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

16 years agox86_reg_print(): Add missing commas for correct register name lookup.
Peter Johnson [Mon, 7 Jul 2008 06:17:33 +0000 (06:17 -0000)]
x86_reg_print(): Add missing commas for correct register name lookup.

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

16 years agoyasm_symrec_get_global_name(): Document object parameter.
Peter Johnson [Sun, 6 Jul 2008 22:30:07 +0000 (22:30 -0000)]
yasm_symrec_get_global_name(): Document object parameter.

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

16 years agoGenerated files listed in SOURCES (rather than included by other files)
Peter Johnson [Sun, 6 Jul 2008 22:26:49 +0000 (22:26 -0000)]
Generated files listed in SOURCES (rather than included by other files)
should not be listed in BUILT_SOURCES but rather have nodist_ prepended.
They still need to be separately listed as CLEANFILES as they're built
at make time.

Reported by: David Harvey <dmharvey@math.harvard.edu>

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

16 years agoBin map file: Fix incorrect address printing for symbols.
Peter Johnson [Thu, 3 Jul 2008 04:19:12 +0000 (04:19 -0000)]
Bin map file: Fix incorrect address printing for symbols.
We were printing the previous bytecode's start rather than the label's
bytecode.  Use yasm_bc_next_offset() to get the correct offset.

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

16 years agoFix #132: Add --prefix and --suffix (aka --postfix) options.
Peter Johnson [Sun, 8 Jun 2008 09:06:05 +0000 (09:06 -0000)]
Fix #132: Add --prefix and --suffix (aka --postfix) options.
These allow arbitrary prefixes and/or suffixes to be added to
externally-visible (GLOBAL, EXTERN, or COMMON) symbol names.

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

16 years agoFix #141: Add macho64 PIC support.
Peter Johnson [Thu, 5 Jun 2008 08:48:21 +0000 (08:48 -0000)]
Fix #141: Add macho64 PIC support.
The way PIC relocations are generated for macho64 requires a bit of a hack
to detect MOV opcodes and generate GOT_LOAD relocs.
GAS contains a similar hack.

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

16 years agoQuiet a warning about casting from a data to function pointer.
Peter Johnson [Sun, 25 May 2008 17:02:24 +0000 (17:02 -0000)]
Quiet a warning about casting from a data to function pointer.
This is required to get a function pointer from dlsym().

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

16 years agoUpdate plugin README files for Windows.
Peter Johnson [Sat, 24 May 2008 19:00:48 +0000 (19:00 -0000)]
Update plugin README files for Windows.

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

16 years agoError out if Python not found.
Peter Johnson [Sat, 24 May 2008 18:50:32 +0000 (18:50 -0000)]
Error out if Python not found.

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

16 years agoFix x86 plugin build on Windows.
Peter Johnson [Sat, 24 May 2008 18:49:59 +0000 (18:49 -0000)]
Fix x86 plugin build on Windows.

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

16 years agoClean up plugins CMakeLists a bit.
Peter Johnson [Sat, 24 May 2008 18:32:39 +0000 (18:32 -0000)]
Clean up plugins CMakeLists a bit.
Be more clever about finding the yasm executable on Windows.

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

16 years ago(cmake build) Install DLL files to correct locations on Windows.
Peter Johnson [Sat, 24 May 2008 18:30:29 +0000 (18:30 -0000)]
(cmake build) Install DLL files to correct locations on Windows.

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

16 years agoEnable DLL/plugin builds with cmake on Windows.
Peter Johnson [Fri, 23 May 2008 06:46:51 +0000 (06:46 -0000)]
Enable DLL/plugin builds with cmake on Windows.
Add proper declspec dllimport/dllexport to all libyasm functions.
Use macros to make these do nothing on non-cmake and Unix builds.

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

16 years agoEnable Id keyword expansion.
Peter Johnson [Fri, 23 May 2008 06:31:52 +0000 (06:31 -0000)]
Enable Id keyword expansion.

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

16 years agoPrepend "lib" on plugin name only on Unix.
Peter Johnson [Fri, 23 May 2008 06:30:38 +0000 (06:30 -0000)]
Prepend "lib" on plugin name only on Unix.

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

16 years agoAdd cmake build infrastructure.
Peter Johnson [Thu, 22 May 2008 09:08:03 +0000 (09:08 -0000)]
Add cmake build infrastructure.
Not default nor even distributed in the .tar.gz, the cmake build allows for
loadable yasm plugins by building libyasm as a shared library.
Example plugins are in the plugins/ directory, and may be loaded into a
cmake-built yasm using the -N command line option (non-cmake builds will
not have this option).

Tested only on Linux so far, but should be relatively painless to port to
Windows thanks to the use of cmake rather than libtool to create shared
libraries.

The only modification to the main source tree is some conditional-compiled
additions to yasm.c.

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

16 years agoMake util.h more robust against use without config.h by moving the
Peter Johnson [Thu, 22 May 2008 08:37:32 +0000 (08:37 -0000)]
Make util.h more robust against use without config.h by moving the
toascii redefinition to the only file that uses it, errwarn.c.

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

16 years agoMake ISO C89 compliant (too long constant string, use of // comment).
Peter Johnson [Thu, 15 May 2008 06:55:57 +0000 (06:55 -0000)]
Make ISO C89 compliant (too long constant string, use of // comment).

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

16 years agoAdd westmere CPU (supports AES and CLMUL), redefine sandybridge to add AVX
Peter Johnson [Wed, 14 May 2008 03:32:20 +0000 (03:32 -0000)]
Add westmere CPU (supports AES and CLMUL), redefine sandybridge to add AVX
(FMA won't appear until the 22nm shrink of sandybridge).

Reported by: nasm64developer@users.sf.net

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

16 years agoBring Mkfiles up-to-date with genmacro/preproc changes.
Peter Johnson [Tue, 13 May 2008 05:28:09 +0000 (05:28 -0000)]
Bring Mkfiles up-to-date with genmacro/preproc changes.

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

16 years agoFix handling of alloc_stack macro in GAS mode.
Peter Johnson [Tue, 13 May 2008 03:41:27 +0000 (03:41 -0000)]
Fix handling of alloc_stack macro in GAS mode.
Reported by: Brian Gladman <brg@gladman.plus.com>

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

16 years agoCommit moved, updated genmacro script missed in [2082] commit.
Peter Johnson [Fri, 9 May 2008 07:08:17 +0000 (07:08 -0000)]
Commit moved, updated genmacro script missed in [2082] commit.

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

16 years agoFix #138: Incorrect UNW_FLAG_CHAININFO value (currently unused).
Peter Johnson [Fri, 9 May 2008 06:51:41 +0000 (06:51 -0000)]
Fix #138: Incorrect UNW_FLAG_CHAININFO value (currently unused).

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

16 years agoSplit NASM preprocessor standard macro set between various modules.
Peter Johnson [Fri, 9 May 2008 06:46:02 +0000 (06:46 -0000)]
Split NASM preprocessor standard macro set between various modules.
Standard macro sets are looked up based on parser and preprocessor keyword
from individual modules.

The "standard" NASM parser macros now reside in the NASM parser, so when
the GAS parser is used with the NASM preprocessor, the NASM-specific macros
are no longer defined.

Object-format specific macros are now individually defined by each object
formatm module.  This allows for the object formats to be independent of the
NASM preprocessor module and yields a small optimization benefit as unused
object format macros don't need to be skipped over.

Also add GAS macro equivalents for the Win64 SEH more complex directives [1].

[1] Requested by Brian Gladman <brg@gladman.plus.com>

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

16 years agoAllow registers as GAS directive parameters.
Peter Johnson [Fri, 9 May 2008 06:28:47 +0000 (06:28 -0000)]
Allow registers as GAS directive parameters.
This is required for the win64 SEH directives.

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

16 years agoAllow registering of new modules at runtime.
Peter Johnson [Wed, 30 Apr 2008 04:40:29 +0000 (04:40 -0000)]
Allow registering of new modules at runtime.

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

16 years agoEnable GAS versions of the win32/win64 safe exception handling directives.
Peter Johnson [Tue, 29 Apr 2008 06:06:20 +0000 (06:06 -0000)]
Enable GAS versions of the win32/win64 safe exception handling directives.

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

16 years agoFix GAS handling of NASM preproc %line.
Peter Johnson [Tue, 29 Apr 2008 05:11:52 +0000 (05:11 -0000)]
Fix GAS handling of NASM preproc %line.

Reported by: Brian Gladman

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

16 years agoFix #137: LAR and LSL should only need 286+Prot CPU flags, not 386.
Peter Johnson [Tue, 29 Apr 2008 02:24:02 +0000 (02:24 -0000)]
Fix #137: LAR and LSL should only need 286+Prot CPU flags, not 386.

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

16 years agoSupport use of NASM preprocessor with GAS parser.
Peter Johnson [Fri, 25 Apr 2008 06:50:36 +0000 (06:50 -0000)]
Support use of NASM preprocessor with GAS parser.
Note: this combination is obviously not supported by any other assembler.

Requested by: Brian Gladman <brg@gladman.plus.com>

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

16 years agoDefensively look for NULL istk.
Peter Johnson [Fri, 25 Apr 2008 05:07:57 +0000 (05:07 -0000)]
Defensively look for NULL istk.

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

16 years agoFix two instances of VERMIL2PS/PD incorrectly setting VEX.L=1.
Peter Johnson [Fri, 25 Apr 2008 04:58:11 +0000 (04:58 -0000)]
Fix two instances of VERMIL2PS/PD incorrectly setting VEX.L=1.

Reported by: nasm64developer@users.sf.net

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

16 years agoFix some re2c memory/initialization issues.
Peter Johnson [Fri, 25 Apr 2008 01:58:59 +0000 (01:58 -0000)]
Fix some re2c memory/initialization issues.
Found by: valgrind

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

16 years agoFix register fields on FMA instructions.
Peter Johnson [Tue, 22 Apr 2008 05:41:11 +0000 (05:41 -0000)]
Fix register fields on FMA instructions.
The FMA instructions swap VEX.vvvv and imm8[7:4] as compared to other AVX
instructions.

Reported by: nasm64developer@users.sf.net

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

16 years agoFix a number of AVX instructions where VEX.vvvv was incorrectly being set
Peter Johnson [Mon, 21 Apr 2008 07:59:57 +0000 (07:59 -0000)]
Fix a number of AVX instructions where VEX.vvvv was incorrectly being set
to a register value instead of 1111b as required by the specification.

Reported by: Mark Charney

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

16 years agoFix AVX instruction misnaming of new vptest variants:
Peter Johnson [Mon, 21 Apr 2008 07:56:26 +0000 (07:56 -0000)]
Fix AVX instruction misnaming of new vptest variants:
 - vptestps should be vtestps
 - vptestpd should be vtestpd

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