aboutsummaryrefslogtreecommitdiff
path: root/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s
diff options
context:
space:
mode:
Diffstat (limited to 'gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s')
-rw-r--r--gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s37
1 files changed, 37 insertions, 0 deletions
diff --git a/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s
new file mode 100644
index 0000000..932ca4a
--- /dev/null
+++ b/gas/testsuite/gas/scfi/aarch64/scfi-strp-1.s
@@ -0,0 +1,37 @@
+## Testcase with a variety of str/stp instructions
+ .text
+ .globl foo
+ .type foo, @function
+foo:
+ .cfi_startproc
+# Pre-indexed addressing is like offset addressing, except that
+# the base pointer is updated as a result of the instruction.
+ stp x29, x30, [sp, -128]!
+ .cfi_def_cfa_offset 128
+ .cfi_offset 29, -128
+ .cfi_offset 30, -120
+ mov x29, sp
+ .cfi_def_cfa_register 29
+# Offset addressing mode is when ann offset can be applied optionally to the
+# base address.
+ stp x19, x20, [sp, 16]
+ .cfi_offset 19, -112
+ .cfi_offset 20, -104
+ stp x21, x22, [sp, 32]
+ .cfi_offset 21, -96
+ .cfi_offset 22, -88
+ stp x23, x24, [sp, 48]
+ .cfi_offset 23, -80
+ .cfi_offset 24, -72
+ stp x25, x26, [sp, 64]
+ .cfi_offset 25, -64
+ .cfi_offset 26, -56
+ str x27, [sp, 80]
+ .cfi_offset 27, -48
+# Stores non callee-saved register on stack.
+ str w0, [x29, 124]
+ str wzr, [x29, 120]
+ str w0, [x29, 120]
+ ret
+ .cfi_endproc
+ .size foo, .-foo