aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/csky
diff options
context:
space:
mode:
authorGeng Qi <gengqi@linux.alibaba.com>2021-05-24 20:22:53 +0800
committerXianmiao Qu <xianmiao_qu@c-sky.com>2021-05-25 14:07:20 +0800
commitb8a618539c26f19cb5753f0757848c0933f3ac7c (patch)
treed98af9d2e12adff428cec2146f3f7d61e7191909 /gcc/config/csky
parentdb92bd223e3957ee58b5a0c0fffd8b7766f1def3 (diff)
downloadgcc-b8a618539c26f19cb5753f0757848c0933f3ac7c.zip
gcc-b8a618539c26f19cb5753f0757848c0933f3ac7c.tar.gz
gcc-b8a618539c26f19cb5753f0757848c0933f3ac7c.tar.bz2
C-SKY: Delete LO_REGS and HI_REGS, use HILO_REGS instead.
gcc/ChangeLog: * config/csky/constraints.md ("l", "h"): Delete. * config/csky/csky.h (reg_class, REG_CLASS_NAMES, REG_CLASS_CONTENTS): Delete LO_REGS and HI_REGS. * config/csky/csky.c (regno_reg_classm, csky_secondary_reload, csky_register_move_cost): Use HILO_REGS instead of LO_REGS and HI_REGS.
Diffstat (limited to 'gcc/config/csky')
-rw-r--r--gcc/config/csky/constraints.md2
-rw-r--r--gcc/config/csky/csky.c7
-rw-r--r--gcc/config/csky/csky.h8
3 files changed, 3 insertions, 14 deletions
diff --git a/gcc/config/csky/constraints.md b/gcc/config/csky/constraints.md
index 937cb81..c9bc9f2 100644
--- a/gcc/config/csky/constraints.md
+++ b/gcc/config/csky/constraints.md
@@ -24,8 +24,6 @@
(define_register_constraint "b" "LOW_REGS" "r0 - r15")
(define_register_constraint "c" "C_REGS" "C register")
(define_register_constraint "y" "HILO_REGS" "HI and LO registers")
-(define_register_constraint "l" "LO_REGS" "LO register")
-(define_register_constraint "h" "HI_REGS" "HI register")
(define_register_constraint "v" "V_REGS" "vector registers")
(define_register_constraint "z" "SP_REGS" "SP register")
diff --git a/gcc/config/csky/csky.c b/gcc/config/csky/csky.c
index 6e97994..b2160b9 100644
--- a/gcc/config/csky/csky.c
+++ b/gcc/config/csky/csky.c
@@ -112,7 +112,7 @@ enum reg_class regno_reg_class[FIRST_PSEUDO_REGISTER] =
/* Reserved. */
RESERVE_REGS,
/* CC,HI,LO registers. */
- C_REGS, HI_REGS, LO_REGS,
+ C_REGS, HILO_REGS, HILO_REGS,
/* Reserved. */
RESERVE_REGS, RESERVE_REGS, RESERVE_REGS, RESERVE_REGS,
RESERVE_REGS, RESERVE_REGS, RESERVE_REGS, RESERVE_REGS,
@@ -2477,8 +2477,7 @@ csky_secondary_reload (bool in_p ATTRIBUTE_UNUSED, rtx x,
/* We always require a general register when copying anything to
HI/LO_REGNUM, except when copying an SImode value from HI/LO_REGNUM
to a general register, or when copying from register 0. */
- if ((rclass == HILO_REGS || rclass == LO_REGS || rclass == HI_REGS)
- && !CSKY_GENERAL_REGNO_P (regno))
+ if (rclass == HILO_REGS && !CSKY_GENERAL_REGNO_P (regno))
return GENERAL_REGS;
if (rclass == V_REGS && !CSKY_GENERAL_REGNO_P (regno))
@@ -6546,7 +6545,7 @@ csky_register_move_cost (machine_mode mode ATTRIBUTE_UNUSED,
|| (CLASS) == LOW_REGS)
#define HILO_REG_CLASS_P(CLASS) \
- ((CLASS) == HI_REGS || (CLASS) == LO_REGS || (CLASS) == HILO_REGS)
+ ((CLASS) == HILO_REGS)
#define V_REG_CLASS_P(CLASS) \
((CLASS) == V_REGS)
diff --git a/gcc/config/csky/csky.h b/gcc/config/csky/csky.h
index f535c42..1fd72d0 100644
--- a/gcc/config/csky/csky.h
+++ b/gcc/config/csky/csky.h
@@ -685,8 +685,6 @@ enum reg_class
LOW_REGS,
GENERAL_REGS,
C_REGS,
- HI_REGS,
- LO_REGS,
HILO_REGS,
V_REGS,
OTHER_REGS,
@@ -706,8 +704,6 @@ enum reg_class
"LOW_REGS", \
"GENERAL_REGS", \
"C_REGS", \
- "HI_REGS", \
- "LO_REGS", \
"HILO_REGS", \
"V_REGS", \
"OTHER_REGS", \
@@ -731,10 +727,6 @@ enum reg_class
0x00000000, 0x00000000, 0x00000000}, /* GENERAL_REGS */ \
{0x00000000, 0x00000002, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000}, /* C_REGS */ \
- {0x00000000, 0x00000004, 0x00000000, 0x00000000, \
- 0x00000000, 0x00000000, 0x00000000}, /* HI_REG */ \
- {0x00000000, 0x00000008, 0x00000000, 0x00000000, \
- 0x00000000, 0x00000000, 0x00000000}, /* LO_REG */ \
{0x00000000, 0x0000000c, 0x00000000, 0x00000000, \
0x00000000, 0x00000000, 0x00000000}, /* HILO_REGS */ \
{0x00000000, 0xFFF00000, 0x007FFF8F, 0x00000000, \