Commit 87ce34d6 by Jim Wilson

(instantiate_decl): Always store addr back into x.

From-SVN: r12842
parent f49e4127
...@@ -2684,28 +2684,28 @@ instantiate_decl (x, size, valid_only) ...@@ -2684,28 +2684,28 @@ instantiate_decl (x, size, valid_only)
instantiate_virtual_regs_1 (&addr, NULL_RTX, 0); instantiate_virtual_regs_1 (&addr, NULL_RTX, 0);
if (! valid_only) if (valid_only)
return; {
/* Now verify that the resulting address is valid for every integer or
/* Now verify that the resulting address is valid for every integer or floating-point mode up to and including SIZE bytes long. We do this
floating-point mode up to and including SIZE bytes long. We do this since the object might be accessed in any mode and frame addresses
since the object might be accessed in any mode and frame addresses are shared. */
are shared. */
for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT);
for (mode = GET_CLASS_NARROWEST_MODE (MODE_INT); mode != VOIDmode && GET_MODE_SIZE (mode) <= size;
mode != VOIDmode && GET_MODE_SIZE (mode) <= size; mode = GET_MODE_WIDER_MODE (mode))
mode = GET_MODE_WIDER_MODE (mode)) if (! memory_address_p (mode, addr))
if (! memory_address_p (mode, addr)) return;
return;
for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT); for (mode = GET_CLASS_NARROWEST_MODE (MODE_FLOAT);
mode != VOIDmode && GET_MODE_SIZE (mode) <= size; mode != VOIDmode && GET_MODE_SIZE (mode) <= size;
mode = GET_MODE_WIDER_MODE (mode)) mode = GET_MODE_WIDER_MODE (mode))
if (! memory_address_p (mode, addr)) if (! memory_address_p (mode, addr))
return; return;
}
/* Otherwise, put back the address, now that we have updated it and we /* Put back the address now that we have updated it and we either know
know it is valid. */ it is valid or we don't care whether it is valid. */
XEXP (x, 0) = addr; XEXP (x, 0) = addr;
} }
......
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