Commit b96c434c by Marek Michalkiewicz Committed by Marek Michalkiewicz

avr.c (avr_hard_regno_mode_ok): Do not allow r29 which may overwrite the high…

avr.c (avr_hard_regno_mode_ok): Do not allow r29 which may overwrite the high byte of the frame pointer.


	* config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
	which may overwrite the high byte of the frame pointer.

From-SVN: r50138
parent 9b420a6a
2002-02-28 Marek Michalkiewicz <marekm@amelek.gda.pl>
* config/avr/avr.c (avr_hard_regno_mode_ok): Do not allow r29
which may overwrite the high byte of the frame pointer.
2002-02-28 Bo Thorsen <bo@suse.de>
* config/i386/linux64.h (LINK_SPEC): Fix 32/64 bit compilation.
......
......@@ -5210,6 +5210,13 @@ avr_hard_regno_mode_ok (regno, mode)
int regno;
enum machine_mode mode;
{
/* Bug workaround: recog.c (peep2_find_free_register) and probably
a few other places assume that the frame pointer is a single hard
register, so r29 may be allocated and overwrite the high byte of
the frame pointer. Do not allow any value to start in r29. */
if (regno == REG_Y + 1)
return 0;
if (mode == QImode)
return 1;
/* if (regno < 24 && !AVR_ENHANCED)
......
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