2017-08-10 Uros Bizjak <ubizjak@gmail.com>
- * config/i386/i386-protos.h (ix86_split_stack_boundary): New prototype.
- * config/i386/i386.c (ix86_split_stack_boundary): New function.
- (ix86_xpand_split_stack_prologue): Call ix86_split_stack_boundary.
+ * config/i386/i386-protos.h (ix86_split_stack_guard): New prototype.
+ * config/i386/i386.c (ix86_split_stack_guard): New function.
+ (ix86_xpand_split_stack_prologue): Call ix86_split_stack_guard.
(ix86_legitimate_address_p) <case UNSPEC_STACK_CHECK>: Remove.
(i386_asm_output_addr_const_extra) <case UNSPEC_STACK_CHECK>: Ditto.
(optput_pic_addr_const): Remove UNSPEC_STACK_CHECK handling.
* config/i386/i386.md (unspec): Remove UNSPEC_STACK_CHECK.
- (split_stack_space_check): Call ix86_split_stack_boundary.
+ (split_stack_space_check): Call ix86_split_stack_guard.
2017-08-10 Martin Sebor <msebor@redhat.com>
extern void ix86_expand_vecop_qihi (enum rtx_code, rtx, rtx, rtx);
-extern rtx ix86_split_stack_boundary (void);
+extern rtx ix86_split_stack_guard (void);
#ifdef TREE_CODE
extern void init_cumulative_args (CUMULATIVE_ARGS *, tree, rtx, tree, int);
static GTY(()) rtx split_stack_fn_large;
-/* Return location of the stack boundary value in the TLS block. */
+/* Return location of the stack guard value in the TLS block. */
rtx
-ix86_split_stack_boundary (void)
+ix86_split_stack_guard (void)
{
int offset;
addr_space_t as = DEFAULT_TLS_SEG_REG;
rtx r;
+ gcc_assert (flag_split_stack);
+
#ifdef TARGET_THREAD_SPLIT_STACK_OFFSET
offset = TARGET_THREAD_SPLIT_STACK_OFFSET;
#else
us SPLIT_STACK_AVAILABLE bytes, so if we need less than that we
can compare directly. Otherwise we need to do an addition. */
- limit = ix86_split_stack_boundary ();
+ limit = ix86_split_stack_guard ();
if (allocate < SPLIT_STACK_AVAILABLE)
current = stack_pointer_rtx;
emit_insn (gen_sub3_insn (reg, stack_pointer_rtx, operands[0]));
- operands[2] = ix86_split_stack_boundary ();
+ operands[2] = ix86_split_stack_guard ();
ix86_expand_branch (GEU, reg, operands[2], operands[1]);
DONE;