WRITEADDR() really doesn't need multiple implementations. Unify them,
and optimize the case of a constant length argument (not sure if that
is currently used, however.)
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Add macro is_constant() to return true if and only if the value is a
compile-time constant. It may never return true, however.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
PA_HAVE_FUNC() would fail on some systems for inline functions or
macros due to missing #includes. Also modernize to current autoconf
style.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Clean up the 2.13.02 release notes: we don't need to list every single
subcase where we would crash, as it is not really relevant to the
user.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
We don't want to call make to rebuild msvc.dep when that is what we
are actually trying to do, over and over again...
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Make further autoconf rule improvements and update the required
version of autoconf to 2.69. That version is now 5+ years old and
although there might be older versions which have the prerequisite
macros they are known to have lots of bugs, and we can't really test
them.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Make it possible to keep dependency information separate from the
Makefiles, so we don't have to deal with it noisifying the git logs.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
autoconf complained about this dnl, and it's not necessary anyway (and
perhaps even potentially harmful?
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Add defines for added CFLAGS. This can be useful, for example, for
LTO or sanitizers being enabled.
Various cleanups for readability and documentation; use macros
available in current autoconf.
Add new utility function PA_SYM(), similar to AS_TR_CPP() except
collapses sequential underscores.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
For specially formed code we can have skip_white_
to end up with nil pointer which should be taken
into account.
https://bugzilla.nasm.us/show_bug.cgi?id=3392435
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
In case if smacro is called with inapropriate
number of arguments exit early. Actually we have
to handle this situation more gracefully but
this requires a way more efforts than two
line patches (need to refactor macro expansion).
https://bugzilla.nasm.us/show_bug.cgi?id=3392431
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
Make -O0 imply -fno-omit-frame-pointer
Add options to compile/link with AddressSanitizer and
UndefinedSanitizer.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
For immediates, we had one overflow test in the bytecode interpreter
(in most cases via warn_overflow_opd()) and one in out(); this meant
we got two warnings instead of one every time. Replace with only the
one in out().
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
The calculation of vmin in overflow_general() was bogus, causing
silliness like ~80h being warned about in a byte context.
Reported-by: C. Masloch <pushbx@38.de>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
The prototype:
extern int const_func alignlog2_64(uint64_t v);
were missed in ilog2.h
After adding, the build proceeds successfully.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
We could generate the MRI version (SSE 4.1) instead of the RMI
(SSE 2) version of these instructions if a 64-bit register was given
as the destination.
Reported-by: Vasiliy Olekhov <olekhov@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
We need to always define the end symbol, otherwise we might find
ourselves in a situation where the alignment code grows (common!) and
then the symbol is defined late.
Reported-by: ig <glucksmann@avast.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Issue a diagnostic and don't panic for invalid TIMES values.
Reported-by: C. Masloch <pushbx@38.de>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
The DWARF spec specifies that the .debug_abbrev section always should
end with a null byte. Existing tools don't seem to care, but some
issue a warning, and it is invalid according to spec.
Reported-by: Darren Sylvain <sylvaindarren@gmail.com>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
Support 16-character section names, and support the debug section
flag.
Reported-by: Andrey Timofeyev <timofeyev@bk.ru>
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
For some output types, the bit size, globalbits, follow the section
(segment); make sure we actually update it!
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
For many (most?) targets these will be very small functions, so inline
them. However, just in case make these external library functions.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>