From 1deb8127a2a7099d84e4de49128aaeb0e5125b30 Mon Sep 17 00:00:00 2001
From: Jim Wilson <wilson@tuliptree.org>
Date: Sat, 14 Apr 2001 03:51:40 +0000
Subject: Fix latent bug exposed by a gcc-3 bug fix. 	* tc-ia64.c
 (is_conditional_branch): Return true for br, brl, and br. 	excluding
 br.i.

---
 gas/config/tc-ia64.c | 18 +++++++++---------
 1 file changed, 9 insertions(+), 9 deletions(-)

(limited to 'gas/config')

diff --git a/gas/config/tc-ia64.c b/gas/config/tc-ia64.c
index a07ee7c..1f85ee4 100644
--- a/gas/config/tc-ia64.c
+++ b/gas/config/tc-ia64.c
@@ -6889,19 +6889,19 @@ ia64_canonicalize_symbol_name (name)
   return name;
 }
 
+/* Return true if idesc is a conditional branch instruction.  */
+
 static int
 is_conditional_branch (idesc)
      struct ia64_opcode *idesc;
 {
-  return (strncmp (idesc->name, "br", 2) == 0
-	  && (strcmp (idesc->name, "br") == 0
-	      || strncmp (idesc->name, "br.cond", 7) == 0
-	      || strncmp (idesc->name, "br.call", 7) == 0
-	      || strncmp (idesc->name, "br.ret", 6) == 0
-	      || strcmp (idesc->name, "brl") == 0
-	      || strncmp (idesc->name, "brl.cond", 7) == 0
-	      || strncmp (idesc->name, "brl.call", 7) == 0
-	      || strncmp (idesc->name, "brl.ret", 6) == 0));
+  /* br is a conditional branch.  Everything that starts with br. except
+     br.ia is a conditional branch.  Everything that starts with brl is a
+     conditional branch.  */
+  return (idesc->name[0] == 'b' && idesc->name[1] == 'r'
+	  && (idesc->name[2] == '\0'
+	      || (idesc->name[2] == '.' && idesc->name[3] != 'i')
+	      || idesc->name[2] == 'l'));
 }
 
 /* Return whether the given opcode is a taken branch.  If there's any doubt,
-- 
cgit v1.1