* config/stormy16/stormy16-lib2-cmpsi2.c: New file.
* config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
stormy16-lib2-cmpsi.c.
* config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
-O2.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163097
138bc75d-0d04-0410-961f-
82ee72b054a4
+2010-08-11 Nick Clifton <nickc@redhat.com>
+
+ * config/stormy16/stormy16-lib2.c (__cmpsi2): New function.
+ * config/stormy16/stormy16-lib2-cmpsi2.c: New file.
+ * config/stormy16/t-stormy16 (LIB2FUNCS_EXTRA): Add
+ stormy16-lib2-cmpsi.c.
+
+ * config/stormy16/t-stormy16 (TARGET_LIBGCC2_CFLAGS): Change to
+ -O2.
+
2010-08-11 Joseph Myers <joseph@codesourcery.com>
* opts.h (struct cl_option_handler_func): Make handler take
--- /dev/null
+#define XSTORMY16_CMPSI2
+#include "stormy16-lib2.c"
return hi_a < hi_b ? 0 : 2;
}
#endif
+
+#ifdef XSTORMY16_CMPSI2
+/* Performs an signed comparison of two 32-bit values: A and B.
+ If A is less than B, then 0 is returned. If A is greater than B,
+ then 2 is returned. Otherwise A and B are equal and 1 is returned. */
+
+word_type
+__cmpsi2 (SItype a, SItype b)
+{
+ word_type hi_a = (a >> 16);
+ word_type hi_b = (b >> 16);
+
+ if (hi_a == hi_b)
+ {
+ word_type low_a = (a & 0xffff);
+ word_type low_b = (b & 0xffff);
+
+ return low_a < low_b ? 0 : (low_a > low_b ? 2 : 1);
+ }
+
+ return hi_a < hi_b ? 0 : 2;
+}
+#endif
$(srcdir)/config/stormy16/stormy16-lib2-clzhi2.c \
$(srcdir)/config/stormy16/stormy16-lib2-ctzhi2.c \
$(srcdir)/config/stormy16/stormy16-lib2-ffshi2.c \
+ $(srcdir)/config/stormy16/stormy16-lib2-cmpsi2.c \
$(srcdir)/config/stormy16/stormy16-lib2-ucmpsi2.c
# Floating point emulation libraries.
dp-bit.c: $(srcdir)/config/fp-bit.c
cat $(srcdir)/config/fp-bit.c > dp-bit.c
-TARGET_LIBGCC2_CFLAGS = -Os
+TARGET_LIBGCC2_CFLAGS = -O2