regclass.c (fix_register): Add error message.
* regclass.c (fix_register): Add error message. * invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the new error message From-SVN: r23198
This commit is contained in:
parent
0ca3fb0a16
commit
cb2fdc843b
@ -1,3 +1,9 @@
|
||||
Tue Oct 20 10:59:02 1998 Gavin Romig-Koch <gavin@cygnus.com>
|
||||
|
||||
* regclass.c (fix_register): Add error message.
|
||||
* invoke.texi (-fcall-used-REG,-fcall-saved-REG): Note the
|
||||
new error message.
|
||||
|
||||
Tue Oct 20 10:12:17 1998 Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
|
||||
|
||||
* c-decl.c (warn_missing_noreturn): New global variable.
|
||||
|
@ -5819,9 +5819,9 @@ clobbered by function calls. It may be allocated for temporaries or
|
||||
variables that do not live across a call. Functions compiled this way
|
||||
will not save and restore the register @var{reg}.
|
||||
|
||||
Use of this flag for a register that has a fixed pervasive role in the
|
||||
machine's execution model, such as the stack pointer or frame pointer,
|
||||
will produce disastrous results.
|
||||
It is an error to used this flag with the frame pointer or stack pointer.
|
||||
Use of this flag for other registers that have fixed pervasive roles in
|
||||
the machine's execution model will produce disastrous results.
|
||||
|
||||
This flag does not have a negative form, because it specifies a
|
||||
three-way choice.
|
||||
@ -5832,9 +5832,9 @@ functions. It may be allocated even for temporaries or variables that
|
||||
live across a call. Functions compiled this way will save and restore
|
||||
the register @var{reg} if they use it.
|
||||
|
||||
Use of this flag for a register that has a fixed pervasive role in the
|
||||
machine's execution model, such as the stack pointer or frame pointer,
|
||||
will produce disastrous results.
|
||||
It is an error to used this flag with the frame pointer or stack pointer.
|
||||
Use of this flag for other registers that have fixed pervasive roles in
|
||||
the machine's execution model will produce disastrous results.
|
||||
|
||||
A different sort of disaster will result from the use of this flag for
|
||||
a register in which function values may be returned.
|
||||
|
@ -574,8 +574,27 @@ fix_register (name, fixed, call_used)
|
||||
|
||||
if ((i = decode_reg_name (name)) >= 0)
|
||||
{
|
||||
fixed_regs[i] = fixed;
|
||||
call_used_regs[i] = call_used;
|
||||
if ((i == STACK_POINTER_REGNUM
|
||||
#ifdef HARD_FRAME_POINTER_REGNUM
|
||||
|| i == HARD_FRAME_POINTER_REGNUM
|
||||
#else
|
||||
|| i == FRAME_POINTER_REGNUM
|
||||
#endif
|
||||
)
|
||||
&& (fixed == 0 || call_used == 0))
|
||||
{
|
||||
static char* what_option[2][2] = {
|
||||
"call-saved", "call-used",
|
||||
"no-such-option", "fixed" };
|
||||
|
||||
error ("can't use '%s' as a %s register", name,
|
||||
what_option[fixed][call_used]);
|
||||
}
|
||||
else
|
||||
{
|
||||
fixed_regs[i] = fixed;
|
||||
call_used_regs[i] = call_used;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user