From f5fa4507849214668430b923a811b6537c4e0272 Mon Sep 17 00:00:00 2001 From: Richard Kenner Date: Wed, 11 May 1994 16:50:16 -0400 Subject: [PATCH] (a29k_clobbers_to): New function. From-SVN: r7276 --- gcc/config/a29k/a29k.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/gcc/config/a29k/a29k.c b/gcc/config/a29k/a29k.c index 447751b7925..08363ed0c59 100644 --- a/gcc/config/a29k/a29k.c +++ b/gcc/config/a29k/a29k.c @@ -802,6 +802,33 @@ incoming_reg (start, count) return R_AR (start); } +/* Add CLOBBERs to CALL_INSN_FUNCTION_USAGE chain of INSN indicating + that LR2 up to, but not including, OP are clobbered. If OP is + zero, indicate all parameter registers are clobbered. */ + +void +a29k_clobbers_to (insn, op) + rtx insn; + rtx op; +{ + int i; + int high_regno; + + if (op == 0) + high_regno = R_LR (18); + else if (GET_CODE (op) != REG || REGNO (op) < R_LR (0) + || REGNO (op) > R_LR (18)) + abort (); + else + high_regno = REGNO (op); + + for (i = R_LR (2); i < high_regno; i++) + CALL_INSN_FUNCTION_USAGE (insn) + = gen_rtx (EXPR_LIST, VOIDmode, + gen_rtx (CLOBBER, VOIDmode, gen_rtx (REG, SImode, i)), + CALL_INSN_FUNCTION_USAGE (insn)); +} + /* These routines are used in finding insns to fill delay slots in the epilogue. */ -- 2.30.2