diff options
author | John Hassey <hassey@gnu.org> | 1993-07-23 01:16:21 +0000 |
---|---|---|
committer | John Hassey <hassey@gnu.org> | 1993-07-23 01:16:21 +0000 |
commit | a61a052b0d60fbb7d36b48444cd7cf70162faae2 (patch) | |
tree | b6bc744385192589c316f0c0a94ab56938dd789c | |
parent | 57bc9c689ee458ca4b6697d6a98a9c5dde541a9e (diff) | |
download | gcc-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.c | 11 |
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); |