Commit f5ac80f8 by DJ Delorie Committed by DJ Delorie

rl78.c (rl78_as_legitimate_address): Do not allow reg+addend addresses for the _far namespace.

* config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow
reg+addend addresses for the _far namespace.

From-SVN: r192866
parent 1f8c354b
2012-10-26 DJ Delorie <dj@redhat.com>
* config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow
reg+addend addresses for the _far namespace.
2012-10-26 Segher Boessenkool <segher@kernel.crashing.org>
* config/rs6000/sync.md (ATOMIC): Correct DI condition.
......@@ -686,6 +686,13 @@ rl78_as_legitimate_address (enum machine_mode mode ATTRIBUTE_UNUSED, rtx x,
if (! characterize_address (x, &base, &index, &addend))
return false;
/* We can't extract the high/low portions of a PLUS address
involving a register during devirtualization, so make sure all
such __far addresses do not have addends. This forces GCC to do
the sum separately. */
if (addend && base && as == ADDR_SPACE_FAR)
return false;
if (base && index)
{
int ir = REGNO (index);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment