summaryrefslogtreecommitdiff
path: root/nasmlib.h
AgeCommit message (Collapse)AuthorFilesLines
2013-12-04bnd: Show warning when bnd prefix is droppedJin Kyu Song1-1/+2
When bnd prefix is dropped as jmp is encoded as jmp short, nasm shows a warning message, which can be suppressed with a new command line option, -w-bnd. Signed-off-by: Jin Kyu Song <jin.kyu.song@intel.com>
2012-02-25Make the LOCK and HLE warnings suppressable.H. Peter Anvin1-1/+3
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2011-12-05Add WARN_IDX helper and ERR_WARN_TERM named constantCyrill Gorcunov1-1/+3
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-06-25nasmlib: Add list_reverse helperCyrill Gorcunov1-0/+13
There is no way to make it as a helper function for a while, we need to unify list processing in general (ie to use abstract list type). Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-06-25nasmlib: Add list_last helperCyrill Gorcunov1-0/+4
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-06-25Move numvalue herleper into nasmlib.hCyrill Gorcunov1-0/+2
No need to duplicate implementation. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2011-04-09Revert "nasmlib: added string replace (strrep) utility function"Keith Kanios1-5/+0
This reverts commit dd9c9752ead3a39fec6f050bfe3ac8768defc02f.
2011-04-08nasmlib: added string replace (strrep) utility functionKeith Kanios1-0/+5
2010-06-03nasmlib: Rename elements() macro to ARRAY_SIZECyrill Gorcunov1-2/+1
ARRAY_SIZE is a well known name pointing out that we're dealing with array in macro argument. Also to be on a safe side prefix_name helper should check the index been in bounds more precisely. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-04-21Add generic ilog2 functionsH. Peter Anvin1-0/+12
Add ilog2_{32,64}() and alignlog2_{32,64}() ... the latter is intended for alignment statements and return -1 for non-power-of-2 other than 0 (which returns 0). Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
2010-04-11nasmlib.c: Introduce nasm_get_word helperCyrill Gorcunov1-0/+1
For easier space separated words extraction from a text stream. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-04-10nasmlib: Introduce nasm_trim_spaces and nasm_opt_val helpersCyrill Gorcunov1-0/+2
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2010-03-12BR 2496848: Tighten ea checksVictor van den Elzen1-0/+10
Check if the offset and the representation are equivalent. Disallow REL on absolute addresses. I'm not sure what that would mean and the output formats don't support it. Warn about ignored displacement size modifiers.
2010-02-11nasmlib.h: Introduce ALIGN helpersCyrill Gorcunov1-0/+7
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-11-11Don't boundcheck 64-bit numbers, it gives problems due to overflowsVictor van den Elzen1-9/+27
2009-11-06Introduce is_power2 helperCyrill Gorcunov1-0/+3
We will need it for hash tables Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-11-05nasmlib.h: Introduce nasm_build_assertCyrill Gorcunov1-0/+5
It's useful to protect our self from some errors at build time. For this sake we should use nasm_build_assert if needed. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-10-31nasmlib: Introduce idata_bytes helperCyrill Gorcunov1-0/+2
This allow us to eliminate code duplication Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-10-13nasm: rename nasm_zap_spaces() to nasm_zap_spaces_fwd()H. Peter Anvin1-1/+1
By analogy with nasm_zap_spaces_rev() have nasm_zap_spaces_fwd(). The forward version isn't a super-common operation, and it might be possible to think the reverse one is the "normal" version... therefore we might as well be explicit. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-10-13nasmlib: introduce string helpersCyrill Gorcunov1-0/+5
To make code more compact we introduce the following string helpers: 1) nasm_scip_spaces - skip leading spaces 2) nasm_skip_word - skip leading non-spaces 3) nasm_zap_spaces - zap leading spaces with zero 4) nasm_zap_spaces_rev - zap spaces in reverse order Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-10-13introduce "overflow" helpersCyrill Gorcunov1-0/+27
Suggested-by: H. Peter Anvin <hpa@zytor.com> Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-10-13style cleanupCyrill Gorcunov1-103/+103
Convert tabs to spaces. Eliminate empty comments. No change on binary level. Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-08-11Fix some format strings for nasm_errorVictor van den Elzen1-0/+4
Added a format attribute to nasm_error (only for GCC) and used the resulting warnings to fix some format strings.
2009-07-20nasmlib.h - introduce list iterator helpersCyrill Gorcunov1-0/+12
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
2009-07-18Remove function pointers in output, simplify error handlingH. Peter Anvin1-6/+5
Remove a bunch of function pointers in the output stage; they are never changed and don't add any value. Also make "ofile" a global variable and let the backend use it directly. All we ever did with these variables were stashing it in locals and using them as-is anyway for no benefit. Also change the global error function, nasm_error() into a true function which invokes a function pointer internally. That lets us use direct calls to it. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-07-06NASM: relicense under the 2-clause BSD licenseH. Peter Anvin1-12/+0
*To the best of my knowledge*, we now have authorization from everyone who has significantly contributed to NASM in the past. As such, change the license to the 2-clause BSD license. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-07-05Change noreturn macro to no_return to avoid header file problemsH. Peter Anvin1-1/+1
Change the "noreturn" macro to "no_return", to avoid problems with system header files which use __attribute__((noreturn)) rather than __attribute__((__noreturn__)) as is appropriate for system headers. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-07-03nasmlib.h: add unlikely() to nasm_assert()H. Peter Anvin1-2/+5
We explicitly want the compiler to pessimize the taken case of the assert, so unlikely() is appropriate here. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-07-01nasmlib: add nasm_assert(); use const char * for filenamesH. Peter Anvin1-7/+14
Add new nasm_assert() function, and add "const" to the declarations which take filenames, as well as to the nasm_strdup/strndup functions. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-06-28Add copyright headers to the *.c/*.h files in the main directoryH. Peter Anvin1-5/+46
Add copyright headers to the *.c/*.h files in the main directory. For files where I'm sure enough that we have all the approvals, I have given them the 2-BSD license, the others have been given the "LGPL for now" license header. Most of them can probably be changed after auditing. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-06-27Move prototypes for null_debug to outform.h and outlib.hH. Peter Anvin1-14/+0
Move the prototypes for the null debugging format to outform.h (for the top-level structure declaration only) and outlib.h (for the internal routines.) Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-06-27debug: make *all* the null debug routines available as a libraryH. Peter Anvin1-0/+10
Make all the null debug routines available as a library, so we can use them whenever appropriate. We really don't need to have a bunch of dummy functions scattered all over the code. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2009-02-21nasmlib: make nasm_strcat() take const argumentsH. Peter Anvin1-1/+1
None of the strings passed to nasm_strcat() are modified, to make them const.
2009-02-21Unify all-zero buffers; add fwritezero()H. Peter Anvin1-0/+4
We have a number of all-zero buffers in the code. Put a single all-zero buffer in nasmlib.c. Additionally, add fwritezero() which can be used to write an arbitrary number of all-zero bytes; this prevents the situation where the all-zero buffer is simply too small.
2008-10-06Better warnings for out-of-range valuesH. Peter Anvin1-3/+4
Issue better warnings for out-of-range values. This is not yet complete. In particular, note we may have out-of-range for values that end up being subject to optimization. That is because the optimization takes place on the *truncated* value, not the pre-truncated value. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-09-30Allow %warning output to be suppressedH. Peter Anvin1-1/+2
Allow the user to suppress user-specified warnings. Signed-off-by: H. Peter Anvin <hpa@zytor.com>
2008-08-06Add macro-defaults warning class and documentation.Victor van den Elzen1-13/+14
2008-06-21Fix a few more <ctype.h> instancesH. Peter Anvin1-3/+5
A few isolated instances of isalpha() and isxdigit().
2008-06-21ctype.h: wrapper ctype functions with a cast to (unsigned char)H. Peter Anvin1-9/+15
ctype functions take an *int*, which the user is expected to have taken the input character from getc() and friends, or taken a character and cast it to (unsigned char). We don't care about EOF (-1), so use macros that cast to (unsigned char) for us.
2008-06-11Use an explicit table for tolower() to avoid a function callH. Peter Anvin1-0/+8
On some platforms, tolower() is implemented as a function call, in order to handle locale support. We never change locales, so can the result of tolower() into a table, so we don't have to sit through the function call every time. ~1.3% overall performance improvement on a macro-heavy benchmark under Linux x86-64.
2008-06-10Add %warning, saner unquoting of %errorH. Peter Anvin1-0/+1
- Add %warning directive - Only unquote an %error or %warning string if it is the only thing on the directive line. - Don't expand macros inside a quoted string, even for %error.
2008-06-09Move all the RAA code out of nasmlibH. Peter Anvin1-50/+0
The RAA code doesn't have to be in nasmlib; it is only used by nasm itself, and is better handled in a separate module.
2008-06-09Move all the SAA code out of nasmlibH. Peter Anvin1-47/+1
Move all the SAA code out of nasmlib; it's not used by anything than nasm itself. Cleaning out the kitchen sink known as nasmlib is a good thing, too.
2008-06-01qstring: backquoted strings seem to work now...H. Peter Anvin1-1/+3
Hopefully backquoted strings should work correctly now.
2008-06-01qstring: first cut at full quoted string support in the preprocessorH. Peter Anvin1-1/+0
First attempt at properly handle quoted strings in the preprocessor. This also adds range support in %substr. No support in the assembler yet.
2008-04-10Temporaries in macros need a unique prefix; WSAA*() macros to headerH. Peter Anvin1-34/+34
When using temporaries in macros, given them a unique prefix to avoid namespace collisions when using one macro inside another. Move the WSAA*() macros from outelf32/outelf64 to a separate header file.
2008-02-24Dwarf3 support for ELF32Charles Crayne1-0/+2
1. Port dwarf3 support from ELF64 to ELF32 2. Move common SAA extentions to nasmlib
2008-02-16Clear up WRITE macros causing compile failures with WatcomH. Peter Anvin1-32/+44
The OpenWatcom compiler warns about invalid shifts (correctly, it appears) due to the non-X86_MEMORY versions of the various WRITE macros. Fix.
2008-01-21RAA subsystem: use shift instead of divideH. Peter Anvin1-7/+11
Make the RAA size always a power of two, so we can use shifts instead of multiple, expensive divides.
2008-01-21nasmlib.h: nasm_zalloc() should call nasm_zalloc_log()H. Peter Anvin1-1/+1
If we're doing logging, we need to call nasm_zalloc_log()