From a61a052b0d60fbb7d36b48444cd7cf70162faae2 Mon Sep 17 00:00:00 2001 From: John Hassey Date: Fri, 23 Jul 1993 01:16:21 +0000 Subject: [PATCH] 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 --- gcc/config/m88k/m88k.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/gcc/config/m88k/m88k.c b/gcc/config/m88k/m88k.c index e2465e323c2..06117286468 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); -- 2.30.2