* v850-opc.c (insert_d9, insert_d22): Slightly improve error
authorJeff Law <law@redhat.com>
Sat, 31 Aug 1996 17:23:49 +0000 (17:23 +0000)
committerJeff Law <law@redhat.com>
Sat, 31 Aug 1996 17:23:49 +0000 (17:23 +0000)
        message.  Issue an error if the branch offset is odd.

opcodes/ChangeLog
opcodes/v850-opc.c

index e84ff627f42afe29d74d2932b06ef8dbefc5eb3e..b28d4ebe014fb42bf2795761e8e62318bfe4e249 100644 (file)
@@ -1,6 +1,9 @@
 start-sanitize-v850
 Sat Aug 31 01:27:26 1996  Jeffrey A Law  (law@cygnus.com)
 
+       * v850-opc.c (insert_d9, insert_d22): Slightly improve error
+       message.  Issue an error if the branch offset is odd.
+
        * v850-opc.c: Add notes about needing special insert/extract
        for all the load/store insns, except "ld.b" and "st.b".
 
index 4530231160fc5f40ab52e9bac9eab435f8f3bcc7..d7845e3d9f9d4906404d9446fe31e1c7be3f5bfd 100644 (file)
@@ -267,7 +267,10 @@ insert_d9 (insn, value, errmsg)
      const char **errmsg;
 {
   if (value > 255 || value <= -256)
-    *errmsg = "value out of range";
+    *errmsg = "branch value out of range";
+
+  if ((value % 2) != 0)
+    *errmsg = "branch to odd offset";
 
   return (insn | ((value & 0x1f0) << 7) | ((value & 0x0e) << 3));
 }
@@ -294,6 +297,9 @@ insert_d22 (insn, value, errmsg)
   if (value > 0xfffff || value <= -0x100000)
     *errmsg = "value out of range";
 
+  if ((value % 2) != 0)
+    *errmsg = "branch to odd offset";
+
   return (insn | ((value & 0xfffe) << 16) | ((value & 0x3f0000) >> 16));
 }