On Thu, Mar 3, 2011 at 11:35 PM, Alan Modra <amo...@gmail.com> wrote: > Re http://gcc.gnu.org/ml/gcc-patches/2011-02/msg01525.html > > Updated patch, using cgraph to decide whether a function is visible > outside of the object file. Bootstrapped and regression tested > powerpc-linux. OK for 4.6? > > * config/rs6000/linux.h (TARGET_ASM_FILE_END): Don't define. > * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Don't define. > * config/rs6000/sysv4.h (TARGET_ASM_FILE_END): Define. > * config/rs6000/rs6000-protos.h (init_cumulative_args): Add fndecl and > return_mode args. > * config/rs6000/rs6000.h (CUMULATIVE_ARGS): Add "escapes". > (INIT_CUMULATIVE_ARGS): Pass FNDECL, VOIDmode. > (INIT_CUMULATIVE_INCOMING_ARGS): Pass current_function_decl, VOIDmode. > (INIT_CUMULATIVE_LIBCALL_ARGS): Pass NULL_TREE, MODE. > * config/rs6000/rs6000.c > (rs6000_elf_end_indicate_exec_stack): Rename to.. > (rs6000_elf_file_end): ..this. Only call file_end_indicate_exec_stack > for POWERPC_LINUX. Move code emitting .gnu_attribute to here, from.. > (rs6000_file_start): ..here. > (rs6000_passes_float, rs6000_passes_vector, rs6000_returns_struct): New > file scope variables. > (call_ABI_of_interest): New function. > (init_cumulative_args): Set above vars when function return value > is a float, vector, or small struct. > (rs6000_function_arg_advance_1): Likewise for function args. > (rs6000_va_start): Set rs6000_passes_float if variable arg function > references float args.
Okay. Thanks, David