This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [DRAGONEGG] Expose 4 functions in i386.c


In this unusual case, it may even be "better" to put the patch on the
release branch alone, and not on the trunk. That gives Duncan the
opportunity to fix this properly in DragonEgg for GCC 4.6, while
having a working interface in the released FSF GCC 4.5.1.

That sounds like a perfectly reasonable compromise.

Here's the patch rediffed against the gcc-4.5 branch. It passes bootstrap. OK to apply to the 4.5 branch only?

Ciao,

Duncan.
Index: gcc-4_5-branch/gcc/ChangeLog
===================================================================
--- gcc-4_5-branch.orig/gcc/ChangeLog	2010-04-13 22:08:42.018841614 +0200
+++ gcc-4_5-branch/gcc/ChangeLog	2010-04-13 22:10:02.878840451 +0200
@@ -1,3 +1,10 @@
+2010-04-13  Duncan Sands  <baldrick@free.fr>
+
+	* config/i386/i386.c (type_natural_mode): Make non-static.  Declare.
+	(classify_argument): Likewise.
+	(examine_argument): Likewise.
+	(contains_aligned_value_p): Likewise.
+
 2010-04-13  Michael Matz  <matz@suse.de>
 
 	PR middle-end/43730
Index: gcc-4_5-branch/gcc/config/i386/i386.c
===================================================================
--- gcc-4_5-branch.orig/gcc/config/i386/i386.c	2010-04-13 22:08:50.188860326 +0200
+++ gcc-4_5-branch/gcc/config/i386/i386.c	2010-04-13 22:09:40.098844481 +0200
@@ -4992,7 +4992,8 @@
    case, we return the original mode and warn ABI change if CUM isn't
    NULL.  */
 
-static enum machine_mode
+enum machine_mode type_natural_mode (const_tree, CUMULATIVE_ARGS *);
+enum machine_mode
 type_natural_mode (const_tree type, CUMULATIVE_ARGS *cum)
 {
   enum machine_mode mode = TYPE_MODE (type);
@@ -5123,7 +5124,9 @@
    See the x86-64 PS ABI for details.
 */
 
-static int
+int classify_argument (enum machine_mode, const_tree,
+                       enum x86_64_reg_class [MAX_CLASSES], int);
+int
 classify_argument (enum machine_mode mode, const_tree type,
 		   enum x86_64_reg_class classes[MAX_CLASSES], int bit_offset)
 {
@@ -5504,7 +5507,8 @@
 
 /* Examine the argument and return set number of register required in each
    class.  Return 0 iff parameter should be passed in memory.  */
-static int
+int examine_argument (enum machine_mode, const_tree, int, int *, int *);
+int
 examine_argument (enum machine_mode mode, const_tree type, int in_return,
 		  int *int_nregs, int *sse_nregs)
 {
@@ -6186,7 +6190,8 @@
 
 /* Return true when TYPE should be 128bit aligned for 32bit argument passing
    ABI.  */
-static bool
+bool contains_aligned_value_p (tree);
+bool
 contains_aligned_value_p (tree type)
 {
   enum machine_mode mode = TYPE_MODE (type);

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]