OSDN Git Service

Don't use fldcr to serialize it is broken on the 88110, use tb1 instead
authorhassey <hassey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jul 1993 01:16:21 +0000 (01:16 +0000)
committerhassey <hassey@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 23 Jul 1993 01:16:21 +0000 (01:16 +0000)
Made serialize-volatile the deault for all models.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@4967 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/m88k/m88k.c

index e2465e3..0611728 100644 (file)
@@ -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);