checkstack: add riscv support for scripts/checkstack.pl
authorWadim Mueller <wafgo01@gmail.com>
Wed, 13 Jul 2022 19:41:10 +0000 (21:41 +0200)
committerMasahiro Yamada <masahiroy@kernel.org>
Wed, 27 Jul 2022 12:18:00 +0000 (21:18 +0900)
scripts/checkstack.pl lacks support for the riscv architecture. Add
support to detect "addi sp,sp,-FRAME_SIZE" stack frame generation instruction

Signed-off-by: Wadim Mueller <wafgo01@gmail.com>
Signed-off-by: Masahiro Yamada <masahiroy@kernel.org>
scripts/checkstack.pl

index d2c3858..d48dfed 100755 (executable)
@@ -16,6 +16,7 @@
 #      AArch64, PARISC ports by Kyle McMartin
 #      sparc port by Martin Habets <errandir_news@mph.eclipse.co.uk>
 #      ppc64le port by Breno Leitao <leitao@debian.org>
+#      riscv port by Wadim Mueller <wafgo01@gmail.com>
 #
 #      Usage:
 #      objdump -d vmlinux | scripts/checkstack.pl [arch]
@@ -108,6 +109,9 @@ my (@stack, $re, $dre, $sub, $x, $xs, $funcre, $min_stack);
        } elsif ($arch eq 'sparc' || $arch eq 'sparc64') {
                # f0019d10:       9d e3 bf 90     save  %sp, -112, %sp
                $re = qr/.*save.*%sp, -(([0-9]{2}|[3-9])[0-9]{2}), %sp/o;
+       } elsif ($arch =~ /^riscv(64)?$/) {
+               #ffffffff8036e868:      c2010113                addi    sp,sp,-992
+               $re = qr/.*addi.*sp,sp,-(([0-9]{2}|[3-9])[0-9]{2})/o;
        } else {
                print("wrong or unknown architecture \"$arch\"\n");
                exit