From: Kyrylo Tkachov Date: Thu, 7 Nov 2013 11:44:04 +0000 (+0000) Subject: aarch64.c (aarch64_legitimize_reload_address): Explain why plus_constant is not used. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=acf67b8e7c649d35547d627cbc1a275f11d35fa7;p=gcc.git aarch64.c (aarch64_legitimize_reload_address): Explain why plus_constant is not used. * config/aarch64/aarch64.c (aarch64_legitimize_reload_address): Explain why plus_constant is not used. From-SVN: r204507 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 72dd1c2b3e2..77f1b32fdaa 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2013-11-07 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch64_legitimize_reload_address): + Explain why plus_constant is not used. + 2013-11-07 Richard Biener * tree-ssa-ccp.c (canonicalize_float_value): Rename to ... diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 30c8eb00805..8458cac34f2 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -4033,7 +4033,11 @@ aarch64_legitimize_reload_address (rtx *x_p, cst = force_const_mem (xmode, cst); /* Reload high part into base reg, leaving the low part - in the mem instruction. */ + in the mem instruction. + Note that replacing this gen_rtx_PLUS with plus_constant is + wrong in this case because we rely on the + (plus (plus reg c1) c2) structure being preserved so that + XEXP (*p, 0) in push_reload below uses the correct term. */ x = gen_rtx_PLUS (xmode, gen_rtx_PLUS (xmode, XEXP (x, 0), cst), GEN_INT (low));