blob: c56e19a388c76bc9a037b35a0d2ec19ff9d54e4f [file] [log] [blame]
.globl crash1
.type crash1, %function
crash1:
.cfi_startproc
stp x29, x30, [sp, -16]!
.cfi_def_cfa_offset 16
.cfi_rel_offset x29, 0
.cfi_rel_offset x30, 8
ldr x0, =0xa5a50000
ldr x1, =0xa5a50001
ldr x2, =0xa5a50002
ldr x3, =0xa5a50003
ldr x4, =0xa5a50004
ldr x5, =0xa5a50005
ldr x6, =0xa5a50006
ldr x7, =0xa5a50007
ldr x8, =0xa5a50008
ldr x9, =0xa5a50009
ldr x10, =0xa5a50010
ldr x11, =0xa5a50011
ldr x12, =0xa5a50012
ldr x13, =0xa5a50013
ldr x14, =0xa5a50014
ldr x15, =0xa5a50015
ldr x16, =0xa5a50016
ldr x17, =0xa5a50017
ldr x18, =0xa5a50018
ldr x19, =0xa5a50019
ldr x20, =0xa5a50020
ldr x21, =0xa5a50021
ldr x22, =0xa5a50022
ldr x23, =0xa5a50023
ldr x24, =0xa5a50024
ldr x25, =0xa5a50025
ldr x26, =0xa5a50026
ldr x27, =0xa5a50027
ldr x28, =0xa5a50028
ldr x29, =0xa5a50029
mov x30, xzr
ldr x30, [x30]
b .
.cfi_endproc
.size crash1, .-crash1
.globl crash_no_stack
.type crash_no_stack, %function
crash_no_stack:
.cfi_startproc
mov x1, sp
.cfi_def_cfa_register x1
mov x0, xzr
add sp, x0, xzr
ldr x0, [x0]
b .
.cfi_endproc
.size crash_no_stack, .-crash_no_stack
.globl crash_bti
.type crash_bti, %function
crash_bti:
.cfi_startproc
adr x16, 1f
br x16
1: // Deliberatly not a bti instruction so we crash here.
b .
.cfi_endproc
.size crash_bti, .-crash_bti
.globl crash_pac
.type crash_pac, %function
crash_pac:
.cfi_startproc
paciasp
// Since sp is a pac input, this ensures a mismatch.
sub sp, sp, #16
autiasp
b .
.cfi_endproc
.size crash_pac, .-crash_pac
// Set the PAC and BTI bits for this object file.
.section .note.gnu.property, "a"
.balign 8
.long 4
.long 0x10
.long 0x5
.asciz "GNU"
.long 0xc0000000
.long 4
.long 0x3
.long 0