+2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ Backport from mainline
+ 2016-04-20 Andrew Pinski <apinski@cavium.com>
+ Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR target/64971
+ * config/aarch64/aarch64.md (sibcall): Force call
+ address to be DImode for ILP32.
+ (sibcall_value): Likewise.
+
2016-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Backport from mainline (minus test for POWER9 support)
&& (GET_CODE (XEXP (operands[0], 0)) != SYMBOL_REF))
XEXP (operands[0], 0) = force_reg (Pmode, XEXP (operands[0], 0));
+ /* This is a band-aid. An SImode symbol reference is sometimes generated
+ by expand_expr_addr_expr. See PR 64971. */
+ if (TARGET_ILP32
+ && GET_CODE (XEXP (operands[0], 0)) == SYMBOL_REF
+ && GET_MODE (XEXP (operands[0], 0)) == SImode)
+ XEXP (operands[0], 0) = convert_memory_address (Pmode,
+ XEXP (operands[0], 0));
if (operands[2] == NULL_RTX)
operands[2] = const0_rtx;
&& (GET_CODE (XEXP (operands[1], 0)) != SYMBOL_REF))
XEXP (operands[1], 0) = force_reg (Pmode, XEXP (operands[1], 0));
+ /* This is a band-aid. An SImode symbol reference is sometimes generated
+ by expand_expr_addr_expr. See PR 64971. */
+ if (TARGET_ILP32
+ && GET_CODE (XEXP (operands[1], 0)) == SYMBOL_REF
+ && GET_MODE (XEXP (operands[1], 0)) == SImode)
+ XEXP (operands[1], 0) = convert_memory_address (Pmode,
+ XEXP (operands[1], 0));
+
if (operands[3] == NULL_RTX)
operands[3] = const0_rtx;
+2016-08-26 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ Backport from mainline
+ 2016-04-20 Andrew Pinski <apinski@cavium.com>
+ Kyrylo Tkachov <kyrylo.tkachov@arm.com>
+
+ PR target/64971
+ * gcc.c-torture/compile/pr37433-1.c: New testcase.
+
2016-08-25 Bill Schmidt <wschmidt@linux.vnet.ibm.com>
Backport from mainline