[S390] Fix checkstack for s390
authorChristian Borntraeger <borntraeger@de.ibm.com>
Fri, 10 Oct 2008 19:33:30 +0000 (21:33 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Fri, 10 Oct 2008 19:34:03 +0000 (21:34 +0200)
With -march=z990 and later gcc can use the long displacement facility
insruction lay for stack register handling. This patch adopts checkstack
to catch lay in addition to ahi and aghi.

Signed-off-by: Christian Borntraeger <borntraeger@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
scripts/checkstack.pl

index 3eca625..f7e8e93 100755 (executable)
@@ -81,7 +81,10 @@ my (@stack, $re, $dre, $x, $xs);
                $re = qr/.*st[dw]u.*r1,-($x{1,8})\(r1\)/o;
        } elsif ($arch =~ /^s390x?$/) {
                #   11160:       a7 fb ff 60             aghi   %r15,-160
-               $re = qr/.*ag?hi.*\%r15,-(([0-9]{2}|[3-9])[0-9]{2})/o;
+               # or
+               #  100092:       e3 f0 ff c8 ff 71       lay     %r15,-56(%r15)
+               $re = qr/.*(?:lay|ag?hi).*\%r15,-(([0-9]{2}|[3-9])[0-9]{2})
+                     (?:\(\%r15\))?$/ox;
        } elsif ($arch =~ /^sh64$/) {
                #XXX: we only check for the immediate case presently,
                #     though we will want to check for the movi/sub