diff options
author | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-12 09:15:03 +0000 |
---|---|---|
committer | krebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4> | 2007-12-12 09:15:03 +0000 |
commit | 29847ec4952258319a397b4a567dc31f942aac5c (patch) | |
tree | a090d4114aac8d2473921064c1ad9e15cc3a093a /gcc/config/s390 | |
parent | 2d1f9589a302bf6e28f4929a1a0a1e46af2a55f8 (diff) | |
download | gcc-29847ec4952258319a397b4a567dc31f942aac5c.tar.gz |
2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
* config/s390/s390.c (s390_O_constraint_str): Limit the range
for 'On' to -4G+1..-1.
* config/s390/constraints.md: Adjust comment accordingly.
2007-12-12 Andreas Krebbel <krebbel1@de.ibm.com>
* gcc.target/s390/20071212-1.c: New testcase.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@130787 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/config/s390')
-rw-r--r-- | gcc/config/s390/constraints.md | 4 | ||||
-rw-r--r-- | gcc/config/s390/s390.c | 3 |
2 files changed, 3 insertions, 4 deletions
diff --git a/gcc/config/s390/constraints.md b/gcc/config/s390/constraints.md index cdafa2fad31..92fd3254ca5 100644 --- a/gcc/config/s390/constraints.md +++ b/gcc/config/s390/constraints.md @@ -49,7 +49,7 @@ ;; O -- Multiple letter constraint followed by 1 parameter. ;; s: Signed extended immediate value (-2G .. 2G-1). ;; p: Positive extended immediate value (0 .. 4G-1). -;; n: Negative extended immediate value (-4G .. -1). +;; n: Negative extended immediate value (-4G+1 .. -1). ;; These constraints do not accept any operand if the machine does ;; not provide the extended-immediate facility. ;; P -- Any integer constant that can be loaded without literal pool. @@ -337,7 +337,7 @@ (define_constraint "On" "@internal - Negative extended immediate value (-4G .. -1). + Negative extended immediate value (-4G+1 .. -1). This constraint will only match if the machine provides the extended-immediate facility." (and (match_code "const_int") diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c index f7d80dbc01c..0b6d63bf019 100644 --- a/gcc/config/s390/s390.c +++ b/gcc/config/s390/s390.c @@ -2056,8 +2056,7 @@ s390_O_constraint_str (const char c, HOST_WIDE_INT value) || s390_single_part (GEN_INT (value), DImode, SImode, 0) == 1; case 'n': - return value == -1 - || s390_single_part (GEN_INT (value), DImode, SImode, -1) == 1; + return s390_single_part (GEN_INT (value - 1), DImode, SImode, -1) == 1; default: gcc_unreachable (); |