aboutsummaryrefslogtreecommitdiff
path: root/gcc/rtl.h
diff options
context:
space:
mode:
authorSteve Ellcey <sje@cup.hp.com>2002-03-01 01:19:52 +0000
committerRichard Henderson <rth@gcc.gnu.org>2002-02-28 17:19:52 -0800
commit7879b81e6cedc9090e72804014ab1927832fe8e0 (patch)
tree7b548c0ab1fb1a218191d2b6c99b0f25d0d7bf12 /gcc/rtl.h
parent42d579d8796eca2c8c184c52194ea8659d59c20b (diff)
downloadgcc-7879b81e6cedc9090e72804014ab1927832fe8e0.zip
gcc-7879b81e6cedc9090e72804014ab1927832fe8e0.tar.gz
gcc-7879b81e6cedc9090e72804014ab1927832fe8e0.tar.bz2
rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition to take ptr_extend into account as third type of extension.
* doc/rtl.texi (SUBREG_PROMOTED_UNSIGNED_P): Change definition to take ptr_extend into account as third type of extension. (SUBREG_PROMOTED_UNSIGNED_SET): Definition of new macro to set bit fields used by SUBREG_PROMOTED_UNSIGNED_P. * rtl.h (SUBREG_PROMOTED_UNSIGNED_SET): New macro. (SUBREG_PROMOTED_UNSIGNED_P): Change to return -1 as well as 0 or 1. * calls.c (precompute_arguments): Use new macro. (expand_call): Ditto. * combine.c (nonzero_bits): Ditto. (record_promoted_value): Ditto. * expr.c (store_expr): Ditto. (expand_expr): Ditto. * function.c (assign_parms): Ditto. From-SVN: r50174
Diffstat (limited to 'gcc/rtl.h')
-rw-r--r--gcc/rtl.h11
1 files changed, 10 insertions, 1 deletions
diff --git a/gcc/rtl.h b/gcc/rtl.h
index c5b3397..e679c54 100644
--- a/gcc/rtl.h
+++ b/gcc/rtl.h
@@ -853,7 +853,16 @@ extern unsigned int subreg_regno PARAMS ((rtx));
when assigning to SUBREG_REG. */
#define SUBREG_PROMOTED_VAR_P(RTX) ((RTX)->in_struct)
-#define SUBREG_PROMOTED_UNSIGNED_P(RTX) ((RTX)->unchanging)
+#define SUBREG_PROMOTED_UNSIGNED_SET(RTX, VAL) \
+do { \
+ if ((VAL) < 0) \
+ (RTX)->volatil = 1; \
+ else { \
+ (RTX)->volatil = 0; \
+ (RTX)->unchanging = (VAL); \
+ } \
+} while (0)
+#define SUBREG_PROMOTED_UNSIGNED_P(RTX) ((RTX)->volatil ? -1 : (RTX)->unchanging)
/* Access various components of an ASM_OPERANDS rtx. */