From 80559c31a6955c02751911a9af2a8446432f2eae Mon Sep 17 00:00:00 2001 From: Jeffrey A Law Date: Wed, 22 Sep 1999 20:11:22 +0000 Subject: [PATCH] pa.md (subsi3): Turn into an expander. * pa.md (subsi3): Turn into an expander. Create two anonymous patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. * pa.h (EXTRA_CONSTRAINT): Handle 'S'. From-SVN: r29597 --- gcc/ChangeLog | 1 + gcc/config/pa/pa.h | 8 +++++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46d9677db02..6cd7f82c4ce 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -39,6 +39,7 @@ Wed Sep 22 06:06:57 1999 Jeffrey A Law (law@cygnus.com) * pa.md (subsi3): Turn into an expander. Create two anonymous patterns. One for PA2.0 one for PA1.x. Use mtsarcm for PA2.0. + * pa.h (EXTRA_CONSTRAINT): Handle 'S'. * pa.md (floatunssisf2, floatunssidf2): Generate different RTL for TARGET_PA_20. diff --git a/gcc/config/pa/pa.h b/gcc/config/pa/pa.h index 4734057151a..ffbccea61ae 100644 --- a/gcc/config/pa/pa.h +++ b/gcc/config/pa/pa.h @@ -1315,7 +1315,7 @@ extern struct rtx_def *hppa_va_arg(); `R' is used for scaled indexed addresses. - `S' is unused. + `S' is the constant 31. `T' is for fp loads and stores. */ #define EXTRA_CONSTRAINT(OP, C) \ @@ -1343,7 +1343,9 @@ extern struct rtx_def *hppa_va_arg(); && memory_address_p (DFmode, XEXP (OP, 0)) \ && !(GET_CODE (XEXP (OP, 0)) == PLUS \ && (GET_CODE (XEXP (XEXP (OP, 0), 0)) == MULT\ - || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT))) : 0))) + || GET_CODE (XEXP (XEXP (OP, 0), 1)) == MULT))) + : ((C) == 'S' ? \ + (GET_CODE (OP) == CONST_INT && INTVAL (OP) == 31) : 0)))) /* The macros REG_OK_FOR..._P assume that the arg is a REG rtx and check its validity for a certain class. @@ -1706,7 +1708,7 @@ while (0) /* Specify the machine mode that pointers have. After generation of rtl, the compiler makes no further distinction between pointers and any other objects of this machine mode. */ -#define Pmode word_mode +#define Pmode SImode /* Add any extra modes needed to represent the condition code. -- 2.30.2