Use float stack slots for e500 promoted arguments

Steve Ellcey sje@cup.hp.com
Thu Jul 3 18:21:00 GMT 2008


On Thu, 2008-07-03 at 14:04 -0400, Daniel Jacobowitz wrote:

> So conditionalizing on data->passed_mode must not be enough.  What is
> the passed mode?
> 
> I'll start a PA cross-gcc build.

It looks like it is SCmode.  From gdb:

#3  0x35ff7c in assign_parm_remove_parallels (data=0x7a00104c)
    at /proj/opensrc_nobackup/sje/tot/src/trunk/gcc/function.c:2371
2371	      emit_group_store (parmreg, entry_parm, NULL_TREE,

(gdb) p *data
$1 = {nominal_type = 0x79d73af8, passed_type = 0x79d73af8, 
  entry_parm = 0x79d89d98, stack_parm = 0x79ddaca0, nominal_mode =
SCmode, 
  passed_mode = SCmode, promoted_mode = SCmode, locate = {size = {
      constant = 8, var = 0x0}, offset = {constant = -8, var = 0x0}, 
    slot_offset = {constant = -8, var = 0x0}, alignment_pad = {constant
= 0, 
      var = 0x0}, where_pad = none, boundary = 64}, partial = 0, 
  named_arg = 1, passed_pointer = 0, on_stack = 0, loaded_in_reg = 0}



More information about the Gcc-patches mailing list