OSDN Git Service

*** empty log message ***
authorsac <sac@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Sep 1994 23:43:17 +0000 (23:43 +0000)
committersac <sac@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Sep 1994 23:43:17 +0000 (23:43 +0000)
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@8064 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/config/sh/sh.c
gcc/config/sh/sh.md
gcc/config/sh/t-sh

index 7aa323f..dcb845d 100644 (file)
@@ -693,7 +693,7 @@ prepare_move_operands (operands, mode)
       /* copy the source to a register */
       operands[1] = copy_to_mode_reg (mode, operands[1]);
     }
-  if ((mode == DImode || mode == SImode || mode == HImode || mode == QImode)
+  if ((mode == SImode || mode == HImode || mode == QImode)
       && GET_CODE (operands[1]) == CONST_INT)
     {
       return synth_constant (operands, mode);
@@ -2512,3 +2512,14 @@ sh_function_arg_partial_nregs (CUM, MODE, TYPE, NAMED)
     }
   return 0;
 }
+
+/* Turn this on to recognise shift insns which aren't supported in the
+   hardware.  This will allow the combiner to notice more patterns,
+   but the down side is that the asm outputter will have to emit
+   several instructions for each shift which isn't possible in the
+   hardware, this makes scheduling perform badly .*/ 
+
+int fake_shift()
+{
+  return 0;
+}
index 4c46a9c..3ad663b 100644 (file)
        (ashift:SI (match_operand:SI 1 "arith_reg_operand" "0")
                   (match_operand:SI 2 "immediate_operand" "n")))
    (clobber (reg:SI 18))]
-  ""
+  "fake_shift()"
   "*return output_shift(\"shll\", operands[0], operands[2], ASHIFT);"
   [(set_attr "length" "12")
    (set_attr "in_delay_slot" "no")
        (lshiftrt:SI (match_operand:SI 1 "arith_reg_operand" "0")
                     (match_operand:SI 2 "immediate_operand" "n")))
    (clobber (reg:SI 18))]
-  ""
+  "fake_shift()"
   "* return output_shift (\"shlr\", operands[0], operands[2], LSHIFTRT);"
   [(set_attr "length" "12")
    (set_attr "in_delay_slot" "no")
index 0067223..30f7c60 100644 (file)
@@ -1,6 +1,32 @@
-LIBGCC1 = libgcc1.null
-CROSS_LIBGCC1 = libgcc1.null
-T_CFLAGS = -DDONT_HAVE_STDIO -DDONT_HAVE_SETJMP  -Dinhibit_libc 
-LIBGCC2_CFLAGS=-g -O5 $(GCC_CFLAGS) 
+CROSS_LIBGCC1 = libgcc1-asm.a
+LIB1ASMSRC = sh/lib1funcs.asm
+LIB1ASMFUNCS = _ashiftrt _movstr _mulsi3 _sdivsi3 _udivsi3 
+
+LIBGCC2_CFLAGS=-g -O5 $(GCC_CFLAGS)
+
+# CYGNUS LOCAL sh
+LANGUAGES=c c++ proto
+
+# CYGNUS LOCAL sh
+# These are really part of libgcc1, but this will cause them to be
+# built correctly, so... [taken from t-ose68k]
+
+LIB2FUNCS_EXTRA = fp-bit.c dp-bit.c ashlsi3.c ashrsi3.c lshrsi3.c
+
+ashlsi3.c: $(srcdir)/config/sh/ashlsi3.c
+       cp $(srcdir)/config/sh/ashlsi3.c ashlsi3.c
+
+ashrsi3.c: $(srcdir)/config/sh/ashrsi3.c
+       cp $(srcdir)/config/sh/ashrsi3.c ashrsi3.c
+
+lshrsi3.c: $(srcdir)/config/sh/lshrsi3.c
+       cp $(srcdir)/config/sh/lshrsi3.c lshrsi3.c
+
+dp-bit.c: $(srcdir)/config/fp-bit.c
+       cat $(srcdir)/config/fp-bit.c > dp-bit.c
+
+fp-bit.c: $(srcdir)/config/fp-bit.c
+       echo '#define FLOAT' > fp-bit.c
+       cat $(srcdir)/config/fp-bit.c >> fp-bit.c