OSDN Git Service

2008-06-03 H.J. Lu <hongjiu.lu@intel.com>
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index 7edcf2e..e1a1bb3 100644 (file)
@@ -1,3 +1,130 @@
+2008-06-03  H.J. Lu  <hongjiu.lu@intel.com>
+
+       *  config/i386/i386.c (ix86_gen_leave): New.
+       (ix86_gen_pop1): Likewise.
+       (ix86_gen_add3): Likewise.
+       (ix86_gen_sub3): Likewise.
+       (ix86_gen_sub3_carry): Likewise.
+       (ix86_gen_one_cmpl2): Likewise.
+       (ix86_gen_monitor): Likewise.
+       (override_options): Initialize ix86_gen_leave, ix86_gen_pop1,
+       ix86_gen_add3, ix86_gen_sub3, ix86_gen_sub3_carry,
+       ix86_gen_one_cmpl2 and ix86_gen_monitor.
+       (ix86_file_end): Use mov%z0 instead of mov{q}/mov{l}.
+       (output_set_got): Use mov%z0, pop%z0 and add%z0 instead of
+       mov{q}/mov{l}, pop{q}/pop{l} and add{q}/add{l}.
+       (ix86_expand_epilogue): Updated.
+       (print_operand): Handle integer register operand for 'z'.
+       (ix86_expand_strlensi_unroll_1): Likewise.
+       (ix86_expand_strlen): Likewise.
+       (ix86_expand_builtin): Likewise.
+       (x86_output_mi_thunk): Use mov%z1 and add%z1 instead of
+       mov{q}/mov{l} and add{q}/add{l}.
+
+2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386.md (define_mode_iterator P): New.
+       (split): Merged XF and DF rules using P.
+
+2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
+
+       * config/i386/i386-protos.h (ix86_reg_parm_stack_space): New.
+       * config/i386/i386.h (ix86_reg_parm_stack_space): Removed
+       prototype.
+       * config/i386/i386.c (ix86_reg_parm_stack_space): Changed
+       return type to int.
+       (ix86_call_abi_override): Remove check for call_used_regs.
+
+2008-06-03  Richard Guenther  <rguenther@suse.de>
+
+       * tree-ssa-structalias.c (find_func_aliases): Add constraints
+       for the lhs of calls if the return type contains pointers.
+
+2008-06-03  Kai Tietz  <kai.tietz@onevision.com>
+
+       * doc/tm.texi (OVERRIDE_ABI_FORMAT): New.
+       * doc/extend.texi (ms_abi,sysv_abi): New attribute description.
+       * function.c (allocate_struct_function): Use of
+       OVERRIDE_ABI_FORMAT.
+       * config/i386/cygming.h (TARGET_64BIT_MS_ABI): Make use
+       of cfun and DEFAULT_ABI to deceide abi mode.
+       (DEFAULT_ABI): New.
+       (REG_PARM_STACK_SPACE): Removed.
+       (OUTGOING_REG_PARM_STACK_SPACE): Removed.
+       (STACK_BOUNDARY): Use default target to deceide stack boundary.
+       * config/i386/i386-protos.h (ix86_cfun_abi): New.
+       (ix86_function_abi): Likewise.
+       (ix86_function_type_abi): Likewise.
+       (ix86_call_abi_override): Likewise.
+       * confid/i386/i386.md (SSE_REGPARM_MAX): Replaced by abi
+       specific define X86_64_SSE_REGPARM_MAX/X64_SSE_REGPARM_MAX.
+       * config/i386/i386.c (override_options): Replace TARGET_64BIT_MS_ABI.
+       (X86_64_VARARGS_SIZE): Replace REGPARM_MAX and SSE_REGPARM_MAX by abi
+       specific defines.
+       (X86_64_REGPARM_MAX): New.
+       (X86_64_SSE_REGPARM_MAX): New.
+       (X64_REGPARM_MAX): New.
+       (X64_SSE_REGPARM_MAX): New.
+       (X86_32_REGPARM_MAX): New.
+       (X86_32_SSE_REGPARM_MAX): New.
+       (ix86_handle_cconv_attribute): Replace TARGET_64BIT_MS_ABI.
+       (ix86_function_regparm): Handle user calling abi.
+       (ix86_function_arg_regno_p): Replace TARGET_64BIT_MS_ABI
+       by DEFAULT_ABI versus SYSV_ABI check.
+       (ix86_reg_parm_stack_space): New.
+       (ix86_function_type_abi): New.
+       (ix86_call_abi_override): New.
+       (ix86_function_abi): New.
+       (ix86_cfun_abi): New.
+       (init_cumulative_args): Call abi specific initialization.
+       (function_arg_advance): Remove TARGET_64BIT_MS_ABI.
+       (function_arg_64): Extend SSE_REGPARM_MAX check.
+       (function_arg (): Remove TARGET_64BIT_MS_ABI.
+       (ix86_pass_by_reference): Likewise.
+       (ix86_function_value_regno_p): Likewise.
+       (function_value_64): Replace REGPARM_MAX, and SSE_REGPARM_MAX.
+       (ix86_function_value_1): Replace TARGET_64BIT_MS_ABI.
+       (return_in_memory_ms_64): Replace TARGET_64BIT_MS_ABI.
+       (ix86_build_builtin_va_list): Replace TARGET_64BIT_MS_ABI.
+       (setup_incoming_varargs_64): Adjust regparm for call abi.
+       (ix86_setup_incoming_varargs): Replace TARGET_64BIT_MS_ABI.
+       (ix86_va_start): Likewise.
+       (ix86_gimplify_va_arg): Likewise.
+       (ix86_expand_prologue): Likewise.
+       (output_pic_addr_const): Likewise.
+       (ix86_init_machine_status): Initialize call_abi by DEFAULT_ABI.
+       (x86_this_parameter): Replace TARGET_64BIT_MS_ABI.
+       (x86_output_mi_thunk): Likewise.
+       (x86_function_profiler): Likewise.
+       * config/i386/i386.h (TARGET_64BIT_MS_ABI): Use ix64_cfun_abi.
+       (SYSV_ABI, MS_ABI): New constants.
+       (DEFAULT_ABI): New.
+       (init_regs): Add prototype of function in regclass.c file.
+       (OVERRIDE_ABI_FORMAT): New.
+       (CONDITIONAL_REGISTER_USAGE): Remove TARGET_64BIT_MS_ABI part.
+       (REG_PARM_STACK_SPACE): Use ix86_reg_parm_stack_space.
+       (OUTGOING_REG_PARM_STACK_SPACE): New.
+       (ix86_reg_parm_stack_space): New prototype.
+       (CUMULATIVE_ARGS): Add call_abi member.
+       (machine_function): Add call_abi member.
+       * config/i386/mingw32.h (EXTRA_OS_CPP_BUILTINS): Replace TARGET_64BIT_MS_ABI
+       by DEFAULT_ABI compare to MS_ABI.
+
+2008-06-02  Andy Hutchinson  <hutchinsonandy@aim.com> 
+
+       PR target/34879
+       * config/avr/avr.c (TARGET_BUILTIN_SETJMP_FRAME_VALUE): Redefine.
+       (avr_builtin_setjmp_frame_value): New function.
+       * config/avr/avr.md (nonlocal_goto_receiver): Define.
+       (nonlocal_goto): Define.
+
+2008-06-02  Richard Sandiford  <rdsandiford@googlemail.com>
+
+       * config/mips/mips.c (mips_emit_loadgp): Return early if
+       there is nothing do to, otherwise emit a blockage if
+       !TARGET_EXPLICIT_RELOCS || crtl->profile.
+       * config/mips/mips.md (loadgp_blockage): Use SI rather than DI.
+
 2008-06-02  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * configure.ac: Drop unneeded backslash ending up in config.in.