diff options
author | H. Peter Anvin <hpa@zytor.com> | 2012-02-25 15:10:04 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2012-02-25 15:11:11 -0800 |
commit | 5a24fdd547f4c02fe46c37b84a020febfa41bfd2 (patch) | |
tree | 4a8018ff69d3c806b8baa52fb3d8ff500395b197 | |
parent | c92aaa1d49876b69fc2d727033922274733ff7fe (diff) | |
download | nasm-5a24fdd547f4c02fe46c37b84a020febfa41bfd2.tar.gz |
Make the LOCK and HLE warnings suppressable.
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
-rw-r--r-- | assemble.c | 6 | ||||
-rw-r--r-- | doc/nasmdoc.src | 7 | ||||
-rw-r--r-- | nasm.c | 4 | ||||
-rw-r--r-- | nasmlib.h | 4 |
4 files changed, 16 insertions, 5 deletions
@@ -818,14 +818,14 @@ static void bad_hle_warn(const insn * ins, uint8_t hleok) case w_lock: if (ins->prefixes[PPS_LOCK] != P_LOCK) { - errfunc(ERR_WARNING | ERR_PASS2, + errfunc(ERR_WARNING | ERR_WARN_HLE | ERR_PASS2, "%s with this instruction requires lock", prefix_name(rep_pfx)); } break; case w_inval: - errfunc(ERR_WARNING | ERR_PASS2, + errfunc(ERR_WARNING | ERR_WARN_HLE | ERR_PASS2, "%s invalid with this instruction", prefix_name(rep_pfx)); break; @@ -1254,7 +1254,7 @@ static int64_t calcsize(int32_t segment, int64_t offset, int bits, if (has_prefix(ins, PPS_LOCK, P_LOCK) && lockcheck && (!(temp->flags & IF_LOCK) || !is_class(MEMORY, ins->oprs[0].type))) { - errfunc(ERR_WARNING | ERR_PASS2, + errfunc(ERR_WARNING | ERR_WARN_LOCK | ERR_PASS2 , "instruction is not lockable"); } diff --git a/doc/nasmdoc.src b/doc/nasmdoc.src index 583ad523..217c12a8 100644 --- a/doc/nasmdoc.src +++ b/doc/nasmdoc.src @@ -948,6 +948,13 @@ Enabled by default. \b \i\c{user} controls \c{%warning} directives (see \k{pperror}). Enabled by default. +\b \i\c{lock} warns about \c{LOCK} prefixes on unlockable instructions. +Enabled by default. + +\b \i\c{hle} warns about invalid use of the HLE \c{XACQUIRE} or \c{XRELEASE} +prefixes. +Enabled by default. + \b \i\c{error} causes warnings to be treated as errors. Disabled by default. @@ -1,6 +1,6 @@ /* ----------------------------------------------------------------------- * * - * Copyright 1996-2011 The NASM Authors - All Rights Reserved + * Copyright 1996-2012 The NASM Authors - All Rights Reserved * See the file AUTHORS included with the NASM distribution for * the specific copyright holders. * @@ -161,6 +161,8 @@ static const struct warning { {"float-underflow", "floating point underflow", false}, {"float-toolong", "too many digits in floating-point number", true}, {"user", "%warning directives", true}, + {"lock", "lock prefix on unlockable instructions", true}, + {"hle", "invalid hle prefixes", true}, }; /* @@ -132,7 +132,9 @@ void nasm_set_verror(vefunc); #define ERR_WARN_FL_UNDERFLOW WARN( 9) /* FP underflow */ #define ERR_WARN_FL_TOOLONG WARN(10) /* FP too many digits */ #define ERR_WARN_USER WARN(11) /* %warning directives */ -#define ERR_WARN_MAX 11 /* the highest numbered one */ +#define ERR_WARN_LOCK WARN(12) /* bad LOCK prefixes */ +#define ERR_WARN_HLE WARN(13) /* bad HLE prefixes */ +#define ERR_WARN_MAX 13 /* the highest numbered one */ /* * Wrappers around malloc, realloc and free. nasm_malloc will |