Age | Commit message (Collapse) | Author | Files | Lines |
|
Add general support in the function parser for "integer functions"
(actually implemented as special unary operators, then wrapped in
macros) and implement a family of integer logarithms. The only
difference is the behavior on a non-power-of-two argument:
ilog2[e] -- throw an error
ilog2w -- throw a warning
ilog2f -- round down to power of 2
ilog2c -- round up to power of 2
This is useful for back-converting from masks to bit values.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
New standard macro package with utility macros for floating-point
constants.
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
|
|
"sectalign" is preferred over "segalign"
since it operates over section attributes.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
This change may have backward compatibility issue but
most probably the sane program never used sections with
base address less then instruction alignment.
Note that alignment may only increase which means if a
section is aligned on 2^5 the align 2^4 will not affect
the section.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
This allows to force nasm to generate multibyte
NOPs without jmp injected.
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
|
|
These are all recent and written by me. BSD license them.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Remove unnecessary duplicated patterns; with indirection we can handle
lists of any length.
For 16-bit generic padding, alternate between SI and DI dependencies.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Use a "times" construct rather than "%rep" for higher performance.
No need to preprocess the same line over and over for no good reason.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
This code can be made so much smaller with clever use of the
indirection construct.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
|
|
We can't use ($$-$) % (%1) since the wraparound will be wrong except
for powers of 2.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
|
|
Use a context-local label in the smart align macro.
|
|
Apparently the current recommendation is for a smaller threshold when
using the "generic"-style alignment macros (short jumps are cheaper on
newer CPUs.)
Also change the alignment threshold definition to reflect the maximum
number of padding instead of when to start using jumps.
|
|
Smart alignment content for 16-bit "generic" mode
|
|
Add 16-bit P6 NOPs
|
|
"%use smartalign" followed by an optional "alignmode" can be used to
enable smart macros.
|
|
Add a builtin equivalent to the %include directive called %use.
%use includes a standard macro file compiled into the binary; these
come from the macros/ directory in the source code.
The idea here is to be able to provide optional macro packages with
the distribution, without adding complex host filesystem dependencies.
|