Fix assembly of "callt 0x3f"
authorNick Clifton <nickc@redhat.com>
Fri, 16 Aug 2002 07:01:47 +0000 (07:01 +0000)
committerNick Clifton <nickc@redhat.com>
Fri, 16 Aug 2002 07:01:47 +0000 (07:01 +0000)
gas/ChangeLog
gas/config/tc-v850.c

index 1d9468f..1b92555 100644 (file)
@@ -1,3 +1,7 @@
+2002-08-16  Nick Clifton  <nickc@redhat.com>
+
+       * config/tc-v850.c (md_assemble): Fix assembling of "callt 0x3f".
+
 2002-08-15  Alexandre Oliva  <aoliva@redhat.com>
 
        * config/tc-mips.c (macro_build_jalr): Make sure we generate
index eaadaaf..480f4fc 100644 (file)
@@ -1952,13 +1952,13 @@ md_assemble (str)
                {
                  expression (&ex);
                  /* Special case:
-                    If we are assembling a MOV instruction (or a CALLT.... :-)
-                    and the immediate value does not fit into the bits
-                    available then create a fake error so that the next MOV
-                    instruction will be selected.  This one has a 32 bit
-                    immediate field.  */
+                    If we are assembling a MOV instruction and the immediate
+                    value does not fit into the bits available then create a
+                    fake error so that the next MOV instruction will be
+                    selected.  This one has a 32 bit immediate field.  */
 
                  if (((insn & 0x07e0) == 0x0200)
+                     && operand->bits == 5 /* Do not match the CALLT instruction.  */
                      && ex.X_op == O_constant
                      && (ex.X_add_number < (-(1 << (operand->bits - 1)))
                          || ex.X_add_number > ((1 << (operand->bits - 1)) - 1)))