bnd: Show warning when bnd prefix is dropped
authorJin Kyu Song <jin.kyu.song@intel.com>
Fri, 29 Nov 2013 08:38:29 +0000 (00:38 -0800)
committerJin Kyu Song <jin.kyu.song@intel.com>
Thu, 5 Dec 2013 04:06:23 +0000 (20:06 -0800)
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>
assemble.c
nasm.c
nasmlib.h

index bf1490d..f06cee8 100644 (file)
@@ -385,6 +385,8 @@ static bool jmp_match(int32_t segment, int64_t offset, int bits,
     if (is_byte && c == 0371 && ins->prefixes[PPS_REP] == P_BND) {
         /* jmp short (opcode eb) cannot be used with bnd prefix. */
         ins->prefixes[PPS_REP] = P_none;
+        errfunc(ERR_WARNING | ERR_WARN_BND | ERR_PASS2 ,
+                "jmp short does not init bnd regs - bnd prefix dropped.");
     }
 
     return is_byte;
diff --git a/nasm.c b/nasm.c
index b83810d..d10ddbc 100644 (file)
--- a/nasm.c
+++ b/nasm.c
@@ -166,6 +166,7 @@ static const struct warning {
     {"user", "%warning directives", true},
     {"lock", "lock prefix on unlockable instructions", true},
     {"hle", "invalid hle prefixes", true},
+    {"bnd", "invalid bnd prefixes", true},
 };
 
 static bool want_usage;
index 2210748..d11e6e0 100644 (file)
--- a/nasmlib.h
+++ b/nasmlib.h
@@ -134,7 +134,8 @@ void nasm_set_verror(vefunc);
 #define ERR_WARN_USER           WARN(11) /* %warning directives */
 #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 */
+#define ERR_WARN_BND           WARN(14) /* bad BND prefixes */
+#define ERR_WARN_MAX            14       /* the highest numbered one */
 
 /*
  * Wrappers around malloc, realloc and free. nasm_malloc will