From df6aa9bce74bd4765a70f57f6008e145ae2c75b6 Mon Sep 17 00:00:00 2001 From: Alexandre Oliva Date: Fri, 21 Apr 2000 21:32:24 +0000 Subject: [PATCH] mn10300.h (REGISTER_MOVE_COST): Provide more accurate data about SP moves. * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more accurate data about SP moves. From-SVN: r33326 --- gcc/ChangeLog | 5 +++++ gcc/config/mn10300/mn10300.h | 10 +++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d0bac16..140d2a6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +Fri Apr 21 18:30:00 2000 Alexandre Oliva + + * config/mn10300/mn10300.h (REGISTER_MOVE_COST): Provide more + accurate data about SP moves. + Fri Apr 21 18:28:28 2000 Alexandre Oliva * config/mn10300/mn10300.h (ADDITIONAL_REGISTER_NAMES): Added diff --git a/gcc/config/mn10300/mn10300.h b/gcc/config/mn10300/mn10300.h index 412aad7..9369e7c 100644 --- a/gcc/config/mn10300/mn10300.h +++ b/gcc/config/mn10300/mn10300.h @@ -816,7 +816,15 @@ struct cum_arg {int nbytes; }; #define REGISTER_MOVE_COST(CLASS1, CLASS2) \ ((CLASS1 == CLASS2 && (CLASS1 == ADDRESS_REGS || CLASS1 == DATA_REGS)) ? 2 :\ - CLASS1 == CLASS2 && CLASS1 == EXTENDED_REGS ? 6 : 4) + ((CLASS1 == ADDRESS_REGS || CLASS1 == DATA_REGS) && \ + (CLASS2 == ADDRESS_REGS || CLASS2 == DATA_REGS)) ? 4 : \ + (CLASS1 == SP_REGS && CLASS2 == ADDRESS_REGS) ? 2 : \ + (CLASS1 == ADDRESS_REGS && CLASS2 == SP_REGS) ? 4 : \ + ! TARGET_AM33 ? 6 : \ + (CLASS1 == SP_REGS || CLASS2 == SP_REGS) ? 6 : \ + (CLASS1 == CLASS2 && CLASS1 == EXTENDED_REGS) ? 6 : \ + (CLASS1 == EXTENDED_REGS || CLASS2 == EXTENDED_REGS) ? 4 : \ + 4) #define ADDRESS_COST(X) mn10300_address_cost((X), 0) -- 2.7.4