Hi Guys,

  I am applying the following patch to update the prototypes in the
  MSP430 specific part of libgcc.  It adds missing prototypes for
  exported ABI functions, and it changes the prototypes for the
  arithmetic shift functions so that they explicitly take a signed
  char parameter.

Cheers
  Nick

libgcc/ChangeLog
2016-04-25  Nick Clifton  <ni...@redhat.com>

        * config/msp430/cmpd.c (__mspabi_cmpf): Add prototype.
        (__mspabi_cmpd): Likewise.
        * config/msp430/floathidf.c (__floathidf): Likewise.
        * config/msp430/floathisf.c (__floathisf): Likewise
        * config/msp430/floatunhidf.c (__floatunssidf): Likewise.
        * config/msp430/floatunhisf.c (__floatunshisf): Likewise.
        * config/msp430/lib2shift.c (__ashlsi3): Take a signed char as the
        second parameter.
        (__ashrsi3): Likewise.

Index: libgcc/config/msp430/cmpd.c
===================================================================
--- libgcc/config/msp430/cmpd.c (revision 235408)
+++ libgcc/config/msp430/cmpd.c (working copy)
@@ -1,4 +1,7 @@
 /* Public domain.  */
+
+int __mspabi_cmpf (float, float);
+
 int
 __mspabi_cmpf (float x, float y)
 {
@@ -8,6 +11,9 @@
     return 1;
   return 0;
 }
+
+int __mspabi_cmpd (double, double);
+
 int
 __mspabi_cmpd (double x, double y)
 {
Index: libgcc/config/msp430/floathidf.c
===================================================================
--- libgcc/config/msp430/floathidf.c    (revision 235408)
+++ libgcc/config/msp430/floathidf.c    (working copy)
@@ -1,6 +1,8 @@
 /* Public domain.  */
 extern double __floatsidf (long);
 
+double __floathidf (int);
+
 double
 __floathidf (int u)
 {
Index: libgcc/config/msp430/floathisf.c
===================================================================
--- libgcc/config/msp430/floathisf.c    (revision 235408)
+++ libgcc/config/msp430/floathisf.c    (working copy)
@@ -4,6 +4,8 @@
 
 extern SFtype __floatsisf (unsigned long);
 
+SFtype __floathisf (HItype);
+
 SFtype
 __floathisf (HItype u)
 {
Index: libgcc/config/msp430/floatunhidf.c
===================================================================
--- libgcc/config/msp430/floatunhidf.c  (revision 235408)
+++ libgcc/config/msp430/floatunhidf.c  (working copy)
@@ -5,6 +5,8 @@
 
 extern DFtype __floatunsidf (unsigned long);
 
+DFtype __floatunhidf (UHItype);
+
 DFtype
 __floatunhidf (UHItype u)
 {
Index: libgcc/config/msp430/floatunhisf.c
===================================================================
--- libgcc/config/msp430/floatunhisf.c  (revision 235408)
+++ libgcc/config/msp430/floatunhisf.c  (working copy)
@@ -5,6 +5,8 @@
 
 extern SFtype __floatunsisf (unsigned long);
 
+SFtype __floatunhisf (UHItype);
+
 SFtype
 __floatunhisf (UHItype u)
 {
Index: libgcc/config/msp430/lib2shift.c
===================================================================
--- libgcc/config/msp430/lib2shift.c    (revision 235408)
+++ libgcc/config/msp430/lib2shift.c    (working copy)
@@ -28,10 +28,10 @@
 typedef          int  sint16_type   __attribute__ ((mode (HI)));
 typedef unsigned int  uint16_type   __attribute__ ((mode (HI)));
 
-uint32_type __ashlsi3 (uint32_type in, char bit);
-sint32_type __ashrsi3 (sint32_type in, char bit);
-int __clrsbhi2 (sint16_type x);
-extern int __clrsbsi2 (sint32_type x);
+uint32_type __ashlsi3 (uint32_type, signed char);
+sint32_type __ashrsi3 (sint32_type, signed char);
+int         __clrsbhi2 (sint16_type);
+extern int  __clrsbsi2 (sint32_type);
 
 typedef struct
 {
@@ -43,7 +43,7 @@
 } dd;
 
 uint32_type
-__ashlsi3 (uint32_type in, char bit)
+__ashlsi3 (uint32_type in, signed char bit)
 {
   uint16_type h, l;
   dd d;
@@ -77,7 +77,7 @@
 }
 
 sint32_type
-__ashrsi3 (sint32_type in, char bit)
+__ashrsi3 (sint32_type in, signed char bit)
 {
   sint16_type h;
   uint16_type l;

Reply via email to