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: [PATCH] - Use of powerpc 64bit instructions in 32bit ABI


	Does the appended patch work better for you?

	The SPARC ABI, especially for records, is complex and I am trying
to understand how to mitigate the problems you are seeing.  You need to
meet me half way and consider what this change is trying to accomplish on
other architectures.  If we make the test too tight to match one specific
port or architecture, then we no longer have a portable, retargetable
compiler.

David

Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.471
diff -c -p -r1.471 function.c
*** function.c	1 Dec 2003 13:07:12 -0000	1.471
--- function.c	2 Dec 2003 17:54:53 -0000
*************** assign_parms (tree fndecl)
*** 4704,4716 ****
  
  	 Set DECL_RTL to that place.  */
  
!       if (GET_CODE (entry_parm) == PARALLEL && nominal_mode != BLKmode)
  	{
! 	  /* Objects the size of a register can be combined in registers */
  	  rtx parmreg = gen_reg_rtx (nominal_mode);
! 	  emit_group_store (parmreg, entry_parm, TREE_TYPE (parm),
! 			    int_size_in_bytes (TREE_TYPE (parm)));
! 	  SET_DECL_RTL (parm, parmreg);
  	}
  
        if (nominal_mode == BLKmode
--- 4704,4721 ----
  
  	 Set DECL_RTL to that place.  */
  
!       if (GET_CODE (entry_parm) == PARALLEL && nominal_mode != BLKmode
! 	  && XVECLEN (entry_parm, 0) > 1)
  	{
! 	  /* Objects the size of a register can be combined in registers.  */
  	  rtx parmreg = gen_reg_rtx (nominal_mode);
! 
! 	  if (REG_P (parmreg))
! 	    {
! 	      emit_group_store (parmreg, entry_parm, TREE_TYPE (parm),
! 				int_size_in_bytes (TREE_TYPE (parm)));
! 	      SET_DECL_RTL (parm, parmreg);
! 	    }
  	}
  
        if (nominal_mode == BLKmode


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