mips.c (mips_adjust_insn_length): Fix handling of calls in mips16 code.
authorRichard Sandiford <rsandifo@redhat.com>
Thu, 15 Jul 2004 19:28:22 +0000 (19:28 +0000)
committerRichard Sandiford <rsandifo@gcc.gnu.org>
Thu, 15 Jul 2004 19:28:22 +0000 (19:28 +0000)
* config/mips/mips.c (mips_adjust_insn_length): Fix handling of
calls in mips16 code.

From-SVN: r84772

gcc/ChangeLog
gcc/config/mips/mips.c

index cd45d8a..c19e996 100644 (file)
@@ -1,5 +1,10 @@
 2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
 
+       * config/mips/mips.c (mips_adjust_insn_length): Fix handling of
+       calls in mips16 code.
+
+2004-07-15  Richard Sandiford  <rsandifo@redhat.com>
+
        * config/mips/mips.md: In the mips16 li/neg splitter, use SImode for
        the destination of the li as well as for the neg.
 
index 70c4680..679416c 100644 (file)
@@ -8969,9 +8969,7 @@ mips_adjust_insn_length (rtx insn, int length)
   /* A unconditional jump has an unfilled delay slot if it is not part
      of a sequence.  A conditional jump normally has a delay slot, but
      does not on MIPS16.  */
-  if (simplejump_p (insn)
-      || (!TARGET_MIPS16  && (GET_CODE (insn) == JUMP_INSN
-                             || GET_CODE (insn) == CALL_INSN)))
+  if (CALL_P (insn) || (TARGET_MIPS16 ? simplejump_p (insn) : JUMP_P (insn)))
     length += 4;
 
   /* See how many nops might be needed to avoid hardware hazards.  */