diff options
author | Richard Earnshaw <erich@gnu.org> | 1994-06-03 13:17:55 +0000 |
---|---|---|
committer | Richard Earnshaw <erich@gnu.org> | 1994-06-03 13:17:55 +0000 |
commit | aef1764cb384995a9a5c64abe2b5869cfd1ff37c (patch) | |
tree | a7d9cbc578deb97fae4ae5558e911f6c468f0062 | |
parent | f726ea7dd51046d6d6587d99cfa8b0619a0494db (diff) | |
download | gcc-aef1764cb384995a9a5c64abe2b5869cfd1ff37c.zip gcc-aef1764cb384995a9a5c64abe2b5869cfd1ff37c.tar.gz gcc-aef1764cb384995a9a5c64abe2b5869cfd1ff37c.tar.bz2 |
(CONST_OK_FOR_LETTER_P): Only allow constants valid when inverted for 'K'.
Only allow constants valid when negated for 'L'.
From-SVN: r7435
-rw-r--r-- | gcc/config/arm/arm.h | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/gcc/config/arm/arm.h b/gcc/config/arm/arm.h index 6a76fa3..3163cd9 100644 --- a/gcc/config/arm/arm.h +++ b/gcc/config/arm/arm.h @@ -486,13 +486,13 @@ enum reg_class Return 1 if VALUE is in the range specified by C. I: immediate arithmetic operand (i.e. 8 bits shifted as required). J: valid indexing constants. - K: as I but also (not (value)) ok. - L: as I but also (neg (value)) ok.*/ -#define CONST_OK_FOR_LETTER_P(VALUE, C) \ - ((C) == 'I' ? const_ok_for_arm (VALUE) : \ - (C) == 'J' ? ((VALUE) < 4096 && (VALUE) > -4096) : \ - (C) == 'K' ? (const_ok_for_arm (VALUE) || const_ok_for_arm (~(VALUE))) : \ - (C) == 'L' ? (const_ok_for_arm (VALUE) || const_ok_for_arm (-(VALUE))) : 0) + K: ~value ok in rhs argument of data operand. + L: -value ok in rhs argument of data operand. */ +#define CONST_OK_FOR_LETTER_P(VALUE, C) \ + ((C) == 'I' ? const_ok_for_arm (VALUE) : \ + (C) == 'J' ? ((VALUE) < 4096 && (VALUE) > -4096) : \ + (C) == 'K' ? (const_ok_for_arm (~(VALUE))) : \ + (C) == 'L' ? (const_ok_for_arm (-(VALUE))) : 0) /* For the ARM, `Q' means that this is a memory operand that is just an offset from a register. |