aboutsummaryrefslogtreecommitdiff
path: root/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S
diff options
context:
space:
mode:
Diffstat (limited to 'gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S')
-rw-r--r--gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S112
1 files changed, 112 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S
new file mode 100644
index 0000000..ea001b3
--- /dev/null
+++ b/gdb/testsuite/gdb.arch/amd64-extended-prologue-analysis-offset.S
@@ -0,0 +1,112 @@
+/* This testcase is part of GDB, the GNU debugger.
+
+ Copyright 2025 Free Software Foundation, Inc.
+
+ This program is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 3 of the License, or
+ (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see <http://www.gnu.org/licenses/>. */
+
+/* This file is compiled from gdb.arch/amd64-extended-prologue-analysis.c
+ using gcc 11.4.0 with flags: -g0 -O1 -S -fomit-frame-pointer
+ -fno-asynchronous-unwind-tables. */
+
+ .file "amd64-extended-prologue-analysis.c"
+ .text
+ .globl bar
+ .type bar, @function
+bar:
+ endbr64
+ leal (%rdi,%rdi), %eax
+ ret
+ .size bar, .-bar
+ .globl foo
+ .type foo, @function
+foo:
+ endbr64
+ pushq %r14
+ pushq %r13
+ pushq %r12
+ pushq %rbp
+ pushq %rbx
+ subq $272, %rsp
+ movl %edi, %ebx
+ movl %esi, %r13d
+ movl %edx, %r12d
+ movl %ecx, %ebp
+ movq %fs:40, %rax
+ movq %rax, 264(%rsp)
+ xorl %eax, %eax
+.L3:
+ leal (%rbx,%rax), %ecx
+ movslq %eax, %rdx
+ movb %cl, (%rsp,%rdx)
+ addl $1, %eax
+ cmpl $256, %eax
+ jne .L3
+ movl %ebx, %edi
+ call bar
+ movl %eax, %r14d
+ movl %r13d, %edi
+ call bar
+ leal (%r14,%rax), %r13d
+ movl %r12d, %edi
+ call bar
+ addl %eax, %r13d
+ movl %ebp, %edi
+ call bar
+ addl %r13d, %eax
+ addl %ebx, %eax
+ movq 264(%rsp), %rdx
+ subq %fs:40, %rdx
+ jne .L7
+ addq $272, %rsp
+ popq %rbx
+ popq %rbp
+ popq %r12
+ popq %r13
+ popq %r14
+ ret
+.L7:
+ call __stack_chk_fail@PLT
+ .size foo, .-foo
+ .globl main
+ .type main, @function
+main:
+ endbr64
+ subq $24, %rsp
+ leal (%rdi,%rdi), %ecx
+ leal 2(%rdi), %edx
+ leal 1(%rdi), %esi
+ call foo
+ movl %eax, 12(%rsp)
+ movl 12(%rsp), %eax
+ addq $24, %rsp
+ ret
+ .size main, .-main
+ .ident "GCC: (Ubuntu 11.4.0-1ubuntu1~22.04) 11.4.0"
+ .section .note.GNU-stack,"",@progbits
+ .section .note.gnu.property,"a"
+ .align 8
+ .long 1f - 0f
+ .long 4f - 1f
+ .long 5
+0:
+ .string "GNU"
+1:
+ .align 8
+ .long 0xc0000002
+ .long 3f - 2f
+2:
+ .long 0x3
+3:
+ .align 8
+4: