aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Hassey <hassey@gnu.org>1993-07-23 01:16:21 +0000
committerJohn Hassey <hassey@gnu.org>1993-07-23 01:16:21 +0000
commita61a052b0d60fbb7d36b48444cd7cf70162faae2 (patch)
treeb6bc744385192589c316f0c0a94ab56938dd789c
parent57bc9c689ee458ca4b6697d6a98a9c5dde541a9e (diff)
downloadgcc-a61a052b0d60fbb7d36b48444cd7cf70162faae2.zip
gcc-a61a052b0d60fbb7d36b48444cd7cf70162faae2.tar.gz
gcc-a61a052b0d60fbb7d36b48444cd7cf70162faae2.tar.bz2
Don't use fldcr to serialize it is broken on the 88110...
Don't use fldcr to serialize it is broken on the 88110, use tb1 instead Made serialize-volatile the deault for all models. From-SVN: r4967
-rw-r--r--gcc/config/m88k/m88k.c11
1 files changed, 11 insertions, 0 deletions
diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c
index e2465e3..0611728 100644
--- a/gcc/config/m88k/m88k.c
+++ b/gcc/config/m88k/m88k.c
@@ -2687,6 +2687,13 @@ print_operand (file, x, code)
The mechanism below is completed by having CC_STATUS_INIT set
the code to the unknown value. */
+ /*
+ hassey 6/30/93
+ A problem with 88110 4.1 & 4.2 makes the use of fldcr for
+ this purpose undesirable. Instead we will use tb1, this will
+ cause serialization on the 88100 but such is life.
+ */
+
static rtx last_addr = 0;
if (code == 'V' /* Only need to serialize before a load. */
&& m88k_volatile_code != 'V' /* Loads complete in FIFO order. */
@@ -2694,12 +2701,16 @@ print_operand (file, x, code)
&& GET_CODE (XEXP (x, 0)) == LO_SUM
&& rtx_equal_p (XEXP (XEXP (x, 0), 1), last_addr)))
fprintf (file,
+#if 0
#ifdef AS_BUG_FLDCR
"fldcr\t %s,%scr63\n\t",
#else
"fldcr\t %s,%sfcr63\n\t",
#endif
reg_names[0], m88k_pound_sign);
+#else /* 0 */
+ "tb1\t 1,%s,0xff\n\t", reg_names[0]);
+#endif /* 0 */
m88k_volatile_code = code;
last_addr = (GET_CODE (XEXP (x, 0)) == LO_SUM
? XEXP (XEXP (x, 0), 1) : 0);