| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
Add a new %note directive to issue a note into the list file without
printing a message. The difference between %note and a comment is that
a %note will be issued with single-line macros expanded, and will be
issued even if it occurs inside a .nolist macro.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Right now it appears we lose more than one error message from the
listing file; this is not OK.
Add support for dropping the current listed line (leaving only
possible error messages.) This will be used in the upcoming %note
patch.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Add a default-off warning for phase error in pass 1. This is default
off because of the lateness in the release cycle, but cases where we
have such instability should be investigated further. For now, the
warning is here so we can debug these problems in the field.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
We don't want to lose the offset into the parent section when we
create a subsection, at least not for the MachO backend which is
currently the only user of subsections. Allow ofmt->herelabel() to set
a flag to copy the section offset from the previous section.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
We may not even have the most basic stabilization done unless we run
at least two optimization passes, e.g. in the case of subsections.
However, we cannot run more than one stabilization pass (pass0 == 1);
for one thing we'll call ofmt->symdef() multiple times on the same
symbol, which is not allowed. If we haven't achieved stability by the
time we decide to run a stabilization pass, plod on and hope for the
best.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
The latest version of Perl complains about an unescaped brace in a
regexp and states that it will be a fatal error in Perl 5.30. Fix it
now before it becomes a problem.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
Add SGX instructions ENCLS, ENCLU, ENCLV.
Bug report: https://bugzilla.nasm.us/show_bug.cgi?id=3392492
Reported-by: ff_ff <qqqqqqqqqfffffffff@gmail.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
| |
In particular, document the new behavior of EXTERN, GLOBAL and COMMON.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
| |
These instructions ignore vector length.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
| |
|
|
|
|
|
|
| |
The two V4FNM* instructions had the wrong opcodes.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
| |
Support the +n syntax for multiple contiguous registers, and emit it
in the output from ndisasm as well.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
| |
New instructions which do four full iterations of a data-reduction
operation (FMA, dot product.)
Bug report: https://bugzilla.nasm.us/show_bug.cgi?id=3392492
Reported-by: ff_ff <qqqqqqqqqfffffffff@gmail.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Add PTWRITE instruction. It is worth noting that we should
be able to do "ptwrite [eax]" in 32-bit mode, but the instruction
selector doesn't currently handle that well in a way that doesn't make
64-bit mode very confusing.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
| |
Clean up the language somewhat, and fix a couple of confusing
statements.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
| |
Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
Added descriptions about new commandline options, STATIC
directive, symbol mingling, and some output format
specifics.
Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
| |
Signed-off-by: Chang S. Bae <chang.seok.bae@intel.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
| |
|
|
|
|
|
|
|
|
|
| |
We can be in absolute space and still end up with segment-relative
references. This is in fact the meaning of absolute.segment. Make
sure we define the labels appropriately.
Reported-by: Cyrill Gorcunov <gorcunov@gmail.com>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
| |
absolute.asm is useful even for other backends, so explicitly test to
see if ORG is possible for this format.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Add a simple test case for context-local (%$) labels not disturbing
the local variable namespace, and extern labels getting promoted to
global.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
| |
If we define a label which was previously declared EXTERN, then
automatically treat is as GLOBAL.
Previously, we would fail to converge and loop forever, which is
obviously not what we want. This is more user-friendly anyway.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
| |
If we have overridden EXTERN, then we should not call define_label()
on it again. Return a fail status from declare_label(), indicating
that the type declaration failed, but of course we don't print an
error message.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
| |
Output was backwards...
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
The prefix and suffix options call perm_alloc() in labels.c, which is
not available until init_labels() have run. There is no reason not to
call init_labels() early.
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
..@ labels (macro-local) are NASM specials, although not "magic": they
are explicitly defined to not preturb the local label base name.
However, they return false for both islocal() and ismagic(), so we
need to add a new function containing the correct test for when the
local label base should be advanced.
Reported-by: <balducci@units.it>
Signed-off-by: H. Peter Anvin (Intel) <hpa@zytor.com>
Cc: Cyrill Gorcunov <gorcunov@gmail.com>
Cc: Bae, Chang Seok <chang.seok.bae@intel.com>
|
| |
|
|
|
|
|
|
|
| |
Use pseudo-types to make it impossible to confuse RAAs made of
integers and RAAs made of pointers.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
If we write pointers, we have to read pointers. This unbreaks
non-64-bit bigendian systems.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
ofmt->symdef() always takes the mangled label name, make sure we
actually do the correct thing even for forward fixups.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
| |
|
|
|
|
|
|
|
| |
Apparently it isn't just NMAKE which is sensitive to the ordering of
.SUFFIXES, it apparently applies just as well to Unix make.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
1. The mkdep.pl program didn't handle excluded dependencies correctly,
causing it to error out due to config/config.h not existing.
2. NMAKE is sensitive to the order suffixes appear in .SUFFIXES,
causing it to try to use the builtin rule .c.exe instead of
.c.obj -> .obj.exe.
3. NMAKE doesn't handle the && operator between commands.
4. The !ifdef jungle around dependency generation was wrong.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
| |
asm/directbl.h was missing from .gitignore, making this generated file
show up as a file not checked in.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
Add test for declaring ELF visibility.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
|
|
|
| |
There are cases where we may want to implement generic pragmas, while
still make them selective based on output and/or debug formats.
Initially, use this for the prefix/suffix options.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Cc: Chang Seok Bae <chang.seok.bae@intel.com>
|
|
|
|
|
|
|
| |
It is quite likely we may want to build the same input with multiple
output formats; make it so we don't lose the list file.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
|
|
|
|
| |
Remove unused constants for prefix and suffix, long since obsolete.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
| |
|
|
|
|
|
|
|
| |
Add instructions from the Intel Instruction Set Extensions and Future
Features Programming Reference, document 319433-034, May 2018.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
|
|
| |
Make all limit counters 64 bits, in case someone really has a usage
for an insanely large program. The globallines limit was omitted, add
it to the list of configurable limits.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
|
|
| |
We really don't need every C compiler flag repeated twice.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|\
| |
| |
| |
| |
| |
| | |
Merge in some warning workarounds/possible bugs discovered by a recent
gcc.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
| |
| |
| |
| |
| |
| | |
Recent versions of gcc issue a couple of warnings, which may be real
bugs.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
| |
| |
| |
| |
| |
| |
| |
| | |
strncpy() is correctly used to fill in a zero-*padded* (not
zero-terminated) field in several places. Make gcc not complain about
those uses.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|