* config/rl78/rl78.c (rl78_as_legitimate_address): Do not allow
reg+addend addresses for the _far namespace.
From-SVN: r192866
+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.
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);