aboutsummaryrefslogtreecommitdiff
path: root/bfd
diff options
context:
space:
mode:
authorJoern Rennecke <joern.rennecke@embecosm.com>1998-07-03 13:40:08 +0000
committerJoern Rennecke <joern.rennecke@embecosm.com>1998-07-03 13:40:08 +0000
commit0ea9d7bc701003282c695efebc4bcfc10ab5df17 (patch)
tree184cb0ae187a1b731dd35a32482dba219cbec80d /bfd
parent5c1c32cae53237fb64a10fe71730b11d1eb2f4ea (diff)
downloadgdb-0ea9d7bc701003282c695efebc4bcfc10ab5df17.zip
gdb-0ea9d7bc701003282c695efebc4bcfc10ab5df17.tar.gz
gdb-0ea9d7bc701003282c695efebc4bcfc10ab5df17.tar.bz2
Brought over from sh4-980527-branch:
Fix for execute/921208-1.c -Os -mrelax -m4-single failure: * coff-sh.c (sh_insns_conflict): Load of fpscr conflicts with floating point operations.
Diffstat (limited to 'bfd')
-rw-r--r--bfd/ChangeLog5
-rw-r--r--bfd/coff-sh.c6
2 files changed, 11 insertions, 0 deletions
diff --git a/bfd/ChangeLog b/bfd/ChangeLog
index c92ead4..92c5b42 100644
--- a/bfd/ChangeLog
+++ b/bfd/ChangeLog
@@ -1,3 +1,8 @@
+Fri Jul 3 14:35:48 1997 J"orn Rennecke <amylaar@cygnus.co.uk>
+
+ * coff-sh.c (sh_insns_conflict): Load of fpscr conflicts with
+ floating point operations.
+
Thu Jul 2 18:37:25 1998 Ian Lance Taylor <ian@cygnus.com>
* cofflink.c (_bfd_coff_link_input_bfd): Skip undefined global
diff --git a/bfd/coff-sh.c b/bfd/coff-sh.c
index ca68c56..29c0dcf 100644
--- a/bfd/coff-sh.c
+++ b/bfd/coff-sh.c
@@ -1952,6 +1952,12 @@ sh_insns_conflict (i1, op1, i2, op2)
f1 = op1->flags;
f2 = op2->flags;
+ /* Load of fpscr conflicts with floating point operations.
+ FIXME: shouldn't test raw opcodes here. */
+ if (((i1 & 0xf0ff) == 0x4066 && (i2 & 0xf000) == 0xf000)
+ || ((i2 & 0xf0ff) == 0x4066 && (i1 & 0xf000) == 0xf000))
+ return true;
+
if ((f1 & (BRANCH | DELAY)) != 0
|| (f2 & (BRANCH | DELAY)) != 0)
return true;