+2017-06-22 Jeff Law <law@redhat.com>
+
+ * config/aarch64/aarch64.c (aarch64_emit_probe_stack_range): Handle
+ frame sizes that do not satisfy aarch64_uimm12_shift.
+
2017-06-22 Jan Hubicka <hubicka@ucw.cz>
* profile-count.h (apply_probability,
plus_constant (Pmode, stack_pointer_rtx, -first));
/* LAST_ADDR = SP + FIRST + ROUNDED_SIZE. */
- emit_set_insn (reg2,
- plus_constant (Pmode, stack_pointer_rtx,
- -(first + rounded_size)));
-
-
+ HOST_WIDE_INT adjustment = - (first + rounded_size);
+ if (! aarch64_uimm12_shift (adjustment))
+ {
+ aarch64_internal_mov_immediate (reg2, GEN_INT (adjustment),
+ true, Pmode);
+ emit_set_insn (reg2, gen_rtx_PLUS (Pmode, stack_pointer_rtx, reg2));
+ }
+ else
+ {
+ emit_set_insn (reg2,
+ plus_constant (Pmode, stack_pointer_rtx, adjustment));
+ }
+
/* Step 3: the loop
do
+2017-06-22 Jeff Law <law@redhat.com>
+
+ * gcc.c-torture/compile/stack-check-1.c: New test.
+
2016-06-22 Richard Biener <rguenther@suse.de>
* gcc.dg/vect/pr65947-1.c: Remove xfail.