summaryrefslogtreecommitdiff
path: root/gcc/ChangeLog
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/ChangeLog')
-rw-r--r--gcc/ChangeLog60
1 files changed, 60 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 68dd7e9f8b4..1970bd74cdf 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,63 @@
+2010-09-27 Ian Lance Taylor <iant@google.com>
+
+ * common.opt (fsplit-stack): New option.
+ * opts.c (decode_options): Set flag_split_stack to final value.
+ * target.def (supports_split_stack): New hook.
+ * gcc.c (STACK_SPLIT_SPEC): Define.
+ (LINK_COMMAND_SPEC): Use STACK_SPLIT_SPEC.
+ * doc/invoke.texi (Option Summary): Mention -fsplit-stack.
+ (Code Gen Options): Document -fsplit-stack.
+ * doc/extend.texi (Function Attributes): Mention no_split_stack.
+ (Function Attributes): Document no_split_stack.
+ * doc/tm.texi.in (Stack Smashing Protection): Add @hook
+ TARGET_SUPPORTS_SPLIT_STACK.
+ * doc/tm.texi: Rebuild.
+ * function.c (thread_prologue_and_epilogue_insns): If
+ flag_split_stack, add split stack prologue.
+ * explow.c (allocate_dynamic_stack_space): Support -fsplit-stack.
+ * varasm.c (saw_no_split_stack): New static variable.
+ (assemble_start_function): Set saw_no_split_stack if the function
+ has the no_split_stack attribute.
+ (file_end_indicate_split_stack): New function.
+ * output.h (file_end_indicate_split_stack): Declare.
+ * libgcc-std.ver (GCC_4.6.0): Add -fsplit-stack support variables
+ and function.
+ * doc/libgcc.texi (Miscellaneous routines): Document -fsplit-stack
+ routines.
+ * config/i386/i386.c (ix86_option_override_internal): Don't set
+ expand_builtin_va_start to NULL if -fsplit-stack.
+ (ix86_function_regparm): Reduce local regparm by 1 for 32-bit
+ -fsplit-stack.
+ (ix86_va_start): If -fsplit-stack, get overflow pointer from
+ scratch register set by prologue.
+ (ix86_code_end): If -fsplit-stack, call
+ file_end_indicate_split_stack.
+ (ix86_supports_split_stack): New static function.
+ (SPLIT_STACK_AVAILABLE): Define.
+ (split_stack_prologue_scratch_regno): New static function.
+ (split_stack_fn): New static variable.
+ (ix86_expand_split_stack_prologue): New function.
+ (ix86_live_on_entry): New static function.
+ (ix86_legitimate_address_p): Handle UNSPEC_STACK_CHECK.
+ (output_pic_addr_const): Likewise.
+ (i386_asm_output_addr_const_extra): Likewise.
+ (ix86_expand_call): Change return type to rtx. Return the new
+ call instruction.
+ (TARGET_SUPPORTS_SPLIT_STACK): Define.
+ (TARGET_EXTRA_LIVE_ON_ENTRY): Define.
+ * config/i386/i386.md (UNSPEC_STACK_CHECK): Define.
+ (split_stack_prologue, split_stack_return): New insns.
+ (split_stack_space_check): New insn.
+ * config/i386/i386.h (struct machine_function): Add
+ split_stack_varargs_pointer field.
+ * config/i386/linux.h (TARGET_CAN_SPLIT_STACK): Define.
+ (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
+ * config/i386/linux64.h (TARGET_CAN_SPLIT_STACK): Define.
+ (TARGET_THREAD_SPLIT_STACK_OFFSET): Define.
+ * config/i386/i386-protos.h (ix86_expand_split_stack_prologue):
+ Declare.
+ (ix86_expand_call): Update declaration.
+
2010-09-27 Nicola Pero <nicola.pero@meta-innovation.com>
* doc/objc.texi (Type encoding): Added the new 'long double' (D)