aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorLutz Vieweg <lkv@mania.robin.de>1999-01-06 23:06:29 +0000
committerJeff Law <law@gcc.gnu.org>1999-01-06 16:06:29 -0700
commit548e44b3366c210afee8754753a82a8641118684 (patch)
tree5a94214824f9865d6640e155c7b7d3a599206808 /gcc
parentee65dab8419efd872b531721a280b74d9b2866f0 (diff)
downloadgcc-548e44b3366c210afee8754753a82a8641118684.zip
gcc-548e44b3366c210afee8754753a82a8641118684.tar.gz
gcc-548e44b3366c210afee8754753a82a8641118684.tar.bz2
pa.h (reg_class): Add FPUPPER_REGS.
* pa.h (reg_class): Add FPUPPER_REGS. (REG_CLASS_NAMES): Similarly. (REG_CLASS_CONTENTS): Similarly (REGNO_REG_CLASS): Handle FPUPPER_REGS. (FP_REG_CLASS_P): Likewise. (REG_CLASS_FROM_LETTER): Similarly. (CLASS_MAX_NREGS): Similarly. From-SVN: r24546
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog10
-rw-r--r--gcc/config/pa/pa.h13
2 files changed, 18 insertions, 5 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 0afa05b..dc4f252 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,13 @@
+Thu Jan 7 00:01:38 1999 Lutz Vieweg <lkv@mania.robin.de>
+
+ * pa.h (reg_class): Add FPUPPER_REGS.
+ (REG_CLASS_NAMES): Similarly.
+ (REG_CLASS_CONTENTS): Similarly
+ (REGNO_REG_CLASS): Handle FPUPPER_REGS.
+ (FP_REG_CLASS_P): Likewise.
+ (REG_CLASS_FROM_LETTER): Similarly.
+ (CLASS_MAX_NREGS): Similarly.
+
1999-01-06 Brendan Kehoe <brendan@cygnus.com>
* fixincludes: For HP/UX 10.20, also look in curses_colr/curses.h
diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h
index a0f9ff0..d25e0d2 100644
--- a/gcc/config/pa/pa.h
+++ b/gcc/config/pa/pa.h
@@ -687,7 +687,7 @@ do { \
1.1 fp regs, and the high 1.1 fp regs, to which the operands of
fmpyadd and fmpysub are restricted. */
-enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS,
+enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FPUPPER_REGS, FP_REGS, GENERAL_OR_FP_REGS,
SHIFT_REGS, ALL_REGS, LIM_REG_CLASSES};
#define N_REG_CLASSES (int) LIM_REG_CLASSES
@@ -695,7 +695,7 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS,
/* Give names of register classes as strings for dump file. */
#define REG_CLASS_NAMES \
- {"NO_REGS", "R1_REGS", "GENERAL_REGS", "FP_REGS", \
+ {"NO_REGS", "R1_REGS", "GENERAL_REGS", "FPUPPER_REGS", "FP_REGS", \
"GENERAL_OR_FP_REGS", "SHIFT_REGS", "ALL_REGS"}
/* Define which registers fit in which classes.
@@ -707,6 +707,7 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS,
{{0x00000000, 0x00000000, 0x00000000}, /* NO_REGS */ \
{0x00000002, 0x00000000, 0x00000000}, /* R1_REGS */ \
{0xfffffffe, 0x00000000, 0x00000000}, /* GENERAL_REGS */ \
+ {0x00000000, 0xff000000, 0x00ffffff}, /* FPUPPER_REGS */ \
{0x00000000, 0xffffffff, 0x00ffffff}, /* FP_REGS */ \
{0xfffffffe, 0xffffffff, 0x00ffffff}, /* GENERAL_OR_FP_REGS */ \
{0x00000000, 0x00000000, 0x01000000}, /* SHIFT_REGS */ \
@@ -721,7 +722,8 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS,
((REGNO) == 0 ? NO_REGS \
: (REGNO) == 1 ? R1_REGS \
: (REGNO) < 32 ? GENERAL_REGS \
- : (REGNO) < 88 ? FP_REGS \
+ : (REGNO) < 56 ? FP_REGS \
+ : (REGNO) < 88 ? FPUPPER_REGS \
: SHIFT_REGS)
/* The class value for index registers, and the one for base regs. */
@@ -729,12 +731,13 @@ enum reg_class { NO_REGS, R1_REGS, GENERAL_REGS, FP_REGS, GENERAL_OR_FP_REGS,
#define BASE_REG_CLASS GENERAL_REGS
#define FP_REG_CLASS_P(CLASS) \
- ((CLASS) == FP_REGS)
+ ((CLASS) == FP_REGS || (CLASS) == FPUPPER_REGS)
/* Get reg_class from a letter such as appears in the machine description. */
/* Keep 'x' for backward compatibility with user asm. */
#define REG_CLASS_FROM_LETTER(C) \
((C) == 'f' ? FP_REGS : \
+ (C) == 'y' ? FPUPPER_REGS : \
(C) == 'x' ? FP_REGS : \
(C) == 'q' ? SHIFT_REGS : \
(C) == 'a' ? R1_REGS : \
@@ -808,7 +811,7 @@ int zdepi_cint_p ();
/* Return the maximum number of consecutive registers
needed to represent mode MODE in a register of class CLASS. */
#define CLASS_MAX_NREGS(CLASS, MODE) \
- (!TARGET_SNAKE && (CLASS) == FP_REGS ? 1 : \
+ (!TARGET_SNAKE && ((CLASS) == FP_REGS || (CLASS) == FPUPPER_REGS) ? 1 : \
((GET_MODE_SIZE (MODE) + UNITS_PER_WORD - 1) / UNITS_PER_WORD))
/* Stack layout; function entry, exit and calling. */