diff options
author | Christian Borntraeger <borntraeger@de.ibm.com> | 2008-10-10 15:33:30 -0400 |
---|---|---|
committer | Martin Schwidefsky <schwidefsky@de.ibm.com> | 2008-10-10 15:34:03 -0400 |
commit | 89d49841e9e7a90b04b036b7dbe7521b55edbe24 (patch) | |
tree | 6284b071511c4cdd50219a212c24a4ed62f7af4e /scripts/checkstack.pl | |
parent | 4a672cfa3a7fcbc6f2adc558f34148be1096c561 (diff) |
[S390] Fix checkstack for s390
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>
Diffstat (limited to 'scripts/checkstack.pl')
-rwxr-xr-x | scripts/checkstack.pl | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/scripts/checkstack.pl b/scripts/checkstack.pl index 3eca62566d6b..f7e8e93ff30d 100755 --- a/scripts/checkstack.pl +++ b/scripts/checkstack.pl | |||
@@ -81,7 +81,10 @@ my (@stack, $re, $dre, $x, $xs); | |||
81 | $re = qr/.*st[dw]u.*r1,-($x{1,8})\(r1\)/o; | 81 | $re = qr/.*st[dw]u.*r1,-($x{1,8})\(r1\)/o; |
82 | } elsif ($arch =~ /^s390x?$/) { | 82 | } elsif ($arch =~ /^s390x?$/) { |
83 | # 11160: a7 fb ff 60 aghi %r15,-160 | 83 | # 11160: a7 fb ff 60 aghi %r15,-160 |
84 | $re = qr/.*ag?hi.*\%r15,-(([0-9]{2}|[3-9])[0-9]{2})/o; | 84 | # or |
85 | # 100092: e3 f0 ff c8 ff 71 lay %r15,-56(%r15) | ||
86 | $re = qr/.*(?:lay|ag?hi).*\%r15,-(([0-9]{2}|[3-9])[0-9]{2}) | ||
87 | (?:\(\%r15\))?$/ox; | ||
85 | } elsif ($arch =~ /^sh64$/) { | 88 | } elsif ($arch =~ /^sh64$/) { |
86 | #XXX: we only check for the immediate case presently, | 89 | #XXX: we only check for the immediate case presently, |
87 | # though we will want to check for the movi/sub | 90 | # though we will want to check for the movi/sub |