mirror of
git://gcc.gnu.org/git/gcc.git
synced 2025-03-09 01:37:13 +08:00
* config/alpha/alpha.c (call_operand) [OSF]: Disallow virtual regs.
From-SVN: r48297
This commit is contained in:
parent
8aad177787
commit
99407cf2f1
@ -1,5 +1,7 @@
|
||||
2001-12-23 Richard Henderson <rth@redhat.com>
|
||||
|
||||
* config/alpha/alpha.c (call_operand) [OSF]: Disallow virtual regs.
|
||||
|
||||
* config/alpha/alpha.md (UNSPEC_SIBCALL): New.
|
||||
(sibcall, sibcall_value, sibcall_osf_1_er, sibcall_osf_1): Use it.
|
||||
(sibcall_value_osf_1_er, sibcall_value_osf_1): Likewise.
|
||||
|
@ -1008,7 +1008,12 @@ call_operand (op, mode)
|
||||
if (GET_CODE (op) == REG)
|
||||
{
|
||||
if (TARGET_ABI_OSF)
|
||||
return (REGNO (op) == 27 || REGNO (op) >= FIRST_PSEUDO_REGISTER);
|
||||
{
|
||||
/* Disallow virtual registers to cope with pathalogical test cases
|
||||
such as compile/930117-1.c in which the virtual reg decomposes
|
||||
to the frame pointer. Which is a hard reg that is not $27. */
|
||||
return (REGNO (op) == 27 || REGNO (op) > LAST_VIRTUAL_REGISTER);
|
||||
}
|
||||
else
|
||||
return 1;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user