On Wed, Jul 8, 2015 at 8:01 PM, Michael Meissner
<meiss...@linux.vnet.ibm.com> wrote:
> David asked me to change the definition of FLOAT128_IBM_P and FLOAT128_IEEE_P
> so that they were more consistant.  In doing so, I realized that I didn't need
> to test TARGET_LONG_DOUBLE_128 in those macros, since the mode would never be
> TFmode, IFmode, or KFmode unless TARGET_LONG_DOUBLE_128 was true.
>
> He also asked for better verification that the existing calling sequence with
> long double (which needs the subsequent patches to test), and I will write 
> such
> tests and test them, putting them in the final patches.
>
> It bootstraps fine with no regressions.  Is this patch ok to install?
>
> 2015-07-08  Michael Meissner  <meiss...@linux.vnet.ibm.com>
>
>         * config/rs6000/rs6000-protos.h (rs6000_secondary_reload_memory):
>         Use machine mode, not enum machine_mode in the prototype.
>
>         * config/rs6000/rs6000.h (FLOAT128_IEEE_P): New helper macros to
>         classify 128-bit floating point support.
>         (FLOAT128_IBM_P): Likewise.
>         (FLOAT128_VECTOR_P): Likewise.
>         (FLOAT128_2REG_P): Likewise.
>         (SCALAR_FLOAT_MODE_NOT_VECTOR_P): Likewise.
>         (SLOW_UNALIGNED_ACCESS): Add IEEE 128-bit floating point support.
>         (HARD_REGNO_CALLER_SAVE_MODE): Likewise.
>         (HARD_REGNO_CALL_PART_CLOBBERED): Likewise.
>
>         * config/rs6000/rs6000.c (rs6000_hard_regno_nregs_internal): Drop
>         tests against TFmode/TDmode, since those modes do not use VSX
>         addresses.
>         (rs6000_hard_regno_mode_ok): Add IEEE 128-bit floating point
>         support.
>         (rs6000_init_hard_regno_mode_ok): Use new helper macros instead of
>         tests against TFmode, etc.
>         (invalid_e500_subreg): Add tests against IFmode/KFmode.
>         (reg_offset_addressing_ok_p): Likewise.
>         (rs6000_legitimate_offset_address_p): Likewise.
>         (rs6000_legitimize_address): Likewise.
>         (rs6000_legitimize_reload_address): Likewise.
>         (rs6000_legitimate_address_p): Clean up tests against TFmode and
>         TDmode to use the new helper macros, which will include IFmode and
>         KFmode.
>         (rs6000_emit_move): Likewise.
>         (rs6000_darwin64_record_arg_recurse): Likewise.
>         (print_operand): Likewise.
>         (rs6000_member_type_forces_blk): Treat IEEE 128-bit floating point
>         that uses a single vector register as a vector and not as a
>         floating point register in terms of the calling sequence.
>         (rs6000_discover_homogeneous_aggregate): Likewise.
>         (rs6000_return_in_memory): Likewise.
>         (init_cumulative_args): Likewise.
>         (rs6000_function_arg_boundary): Likewise.
>         (rs6000_function_arg_advance_1): Likewise.
>         (rs6000_function_arg): Likewise.
>         (rs6000_pass_by_reference): Likewise.
>         (rs6000_gimplify_va_arg): Likewise.
>         (rs6000_secondary_reload_memory): Use machine_mode not enum
>         machine mode.
>         (rs6000_split_multireg_move): Use new helper macros.
>         (spe_func_has_64bit_regs_p): Likewise.
>         (rs6000_output_function_epilogue): Add IFmode/KFmode support.
>         (output_toc): Use new helper macros.
>         (rs6000_register_move_cost): Likewise.
>         (rs6000_function_value): Add IEEE 128-bit floating point calling
>         sequence support.
>         (rs6000_libcall_value): Likewise.
>         (rs6000_scalar_mode_supported_p): Add support for IEEE 128-bit
>         floating point support.
>         (rs6000_vector_mode_supported_p): Likewise.

Okay.

Thanks, David

Reply via email to