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


This code was added for when pattern for 'long long' is passed-by-value is generated in -mpowerpc64 mode (64bit insns
with 32bit ABI).
Following diff should fix the SPARC problem.


Index: function.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/function.c,v
retrieving revision 1.469
diff -c -p -r1.469 function.c
*** function.c  20 Nov 2003 22:42:01 -0000      1.469
--- function.c  1 Dec 2003 19:24:14 -0000
*************** assign_parms (tree fndecl)
*** 4704,4710 ****

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);
--- 4704,4710 ----


Set DECL_RTL to that place. */

! if (GET_CODE (entry_parm) == PARALLEL && nominal_mode == DImode)
{
/* Objects the size of a register can be combined in registers */
rtx parmreg = gen_reg_rtx (nominal_mode);



- Fariborz


On Monday, December 1, 2003, at 10:43 AM, David Edelsohn wrote:

Eric Botcazou writes:

Eric> I'd say:
Eric> (1) check that the size is not greater than a word,
Eric> (2) check that the rtx returned by gen_reg_rtx is really a REG,
Eric> (3) ideally, it would be nice to have a bit more control over the insns
Eric> emitted for the move, because it appears that emit_group_store can really do
Eric> scary things :-) But I don't know if this is really doable.


Eric> That said, the code may have been added for a specific pattern so the
Eric> suggestions above may of course be totally void.


I think some scenarios exist where (1) might be too restrictive.

	I'll test with adding a check that gen_reg_rtx() returned a REG
because CONCAT is not useful in this scenario.

Thanks, David



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