/* * Copyright 2013, The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ .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