OSDN Git Service

2006-05-12 Andreas Krebbel <krebbel1@de.ibm.com>
authorkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 May 2006 07:51:35 +0000 (07:51 +0000)
committerkrebbel <krebbel@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 12 May 2006 07:51:35 +0000 (07:51 +0000)
* config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
On contraint.
* config/s390/s390.md: Adjust comment describing On constraint.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@113721 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/config/s390/s390.c
gcc/config/s390/s390.md

index fff2191..e8f8d07 100644 (file)
@@ -1,3 +1,9 @@
+2006-05-12  Andreas Krebbel  <krebbel1@de.ibm.com>
+
+       * config/s390/s390.c (s390_const_ok_for_constraint_p): Disallow -4G for
+       On contraint.
+       * config/s390/s390.md: Adjust comment describing On constraint.
+
 2006-05-11  Jan Hubicka  <jh@suse.cz>
 
        * cgraphunit.c (decide_is_function_needed): Don't force always_inline
index fdd4b5c..e55686d 100644 (file)
@@ -2075,8 +2075,10 @@ s390_const_ok_for_constraint_p (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 
+           (value == -1
+            || s390_single_part (GEN_INT (value), DImode, SImode, -1) == 1)
+           && value != -((HOST_WIDE_INT)1 << 32);
          
        default:
          gcc_unreachable ();
index 54822da..6459c81 100644 (file)
@@ -50,7 +50,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.