From fc51ca3b0a90f92662c19e8d4d908f8bc6106006 Mon Sep 17 00:00:00 2001 From: law Date: Wed, 30 Sep 1998 18:09:47 +0000 Subject: * regs.h (HARD_REGNO_CALL_PART_CLOBBERED): New macro. * local-alloc.c (find_free_reg): Use it. * global.c (find_reg): Likewise. * tm.texi: Document HARD_REGNO_CALL_PART_CLOBBERED. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@22688 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/local-alloc.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'gcc/local-alloc.c') diff --git a/gcc/local-alloc.c b/gcc/local-alloc.c index 5dbde5218f8..3049a988007 100644 --- a/gcc/local-alloc.c +++ b/gcc/local-alloc.c @@ -2043,7 +2043,10 @@ find_free_reg (class, mode, qty, accept_call_clobbered, just_try_suggested, int regno = i; #endif if (! TEST_HARD_REG_BIT (first_used, regno) - && HARD_REGNO_MODE_OK (regno, mode)) + && HARD_REGNO_MODE_OK (regno, mode) + && (qty_n_calls_crossed[qty] == 0 + || accept_call_clobbered + || ! HARD_REGNO_CALL_PART_CLOBBERED (regno, mode))) { register int j; register int size1 = HARD_REGNO_NREGS (regno, mode); -- cgit v1.2.1