brintos

brintos / llvm-project-archived public Read only

0
0
Text · 6.1 KiB · 5be0641 Raw
126 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2;3; RUN: llc %s -o - -mtriple=thumbv8m.main -verify-machineinstrs \4; RUN:   -mattr=+fp-armv8d16sp,+fix-cmse-cve-2021-35465 | \5; RUN:   FileCheck %s --check-prefix=CHECK-8M-FP-CVE-2021-354656;7; RUN: llc %s -o - -mtriple=thumbv8m.main -mcpu=cortex-m33 -verify-machineinstrs | \8; RUN:   FileCheck %s --check-prefix=CHECK-8M-FP-CVE-2021-354659;10; RUN: llc %s -o - -mtriple=thumbv8m.main -mcpu=star-mc1 -verify-machineinstrs | \11; RUN:   FileCheck %s --check-prefix=CHECK-8M-FP-CVE-2021-3546512;13; RUN: llc %s -o - -mtriple=thumbv8m.main -mcpu=cortex-m35p -verify-machineinstrs | \14; RUN:   FileCheck %s --check-prefix=CHECK-8M-FP-CVE-2021-3546515;16; RUN: llc %s -o - -mtriple=thumbv8m.main -verify-machineinstrs \17; RUN:   -mattr=-fpregs,+fix-cmse-cve-2021-35465 | \18; RUN:   FileCheck %s --check-prefix=CHECK-8M-NOFP-CVE-2021-3546519;20; RUN: llc %s -o - -mtriple=thumbv8m.main -mcpu=cortex-m33 -mattr=-fpregs -verify-machineinstrs | \21; RUN:   FileCheck %s --check-prefix=CHECK-8M-NOFP-CVE-2021-3546522;23; RUN: llc %s -o - -mtriple=thumbv8m.main -mcpu=star-mc1 -mattr=-fpregs -verify-machineinstrs | \24; RUN:   FileCheck %s --check-prefix=CHECK-8M-NOFP-CVE-2021-3546525;26; RUN: llc %s -o - -mtriple=thumbv8m.main -mcpu=cortex-m35p -mattr=-fpregs -verify-machineinstrs | \27; RUN:   FileCheck %s --check-prefix=CHECK-8M-NOFP-CVE-2021-3546528;29; RUN: llc %s -o - -mtriple=thumbv8.1m.main -verify-machineinstrs \30; RUN:   -mattr=+fp-armv8d16sp,+fix-cmse-cve-2021-35465 | \31; RUN:   FileCheck %s --check-prefix=CHECK-81M-CVE-2021-3546532;33; RUN: llc %s -o - -mtriple=thumbv8.1m.main -mcpu=cortex-m55 -verify-machineinstrs | \34; RUN:   FileCheck %s --check-prefix=CHECK-81M-CVE-2021-3546535;36; RUN: llc %s -o - -mtriple=thumbv8.1m.main -verify-machineinstrs \37; RUN:   -mattr=-fpregs,+fix-cmse-cve-2021-35465 | \38; RUN:   FileCheck %s --check-prefix=CHECK-81M-CVE-2021-3546539;40; RUN: llc %s -o - -mtriple=thumbv8.1m.main -mcpu=cortex-m55 -mattr=-fpregs -verify-machineinstrs | \41; RUN:   FileCheck %s --check-prefix=CHECK-81M-CVE-2021-3546542;43 44define void @non_secure_call(ptr %fptr) {45; CHECK-8M-FP-CVE-2021-35465-LABEL: non_secure_call:46; CHECK-8M-FP-CVE-2021-35465:       @ %bb.0:47; CHECK-8M-FP-CVE-2021-35465-NEXT:    push {r7, lr}48; CHECK-8M-FP-CVE-2021-35465-NEXT:    push.w {r4, r5, r6, r7, r8, r9, r10, r11}49; CHECK-8M-FP-CVE-2021-35465-NEXT:    bic r0, r0, #150; CHECK-8M-FP-CVE-2021-35465-NEXT:    sub sp, #13651; CHECK-8M-FP-CVE-2021-35465-NEXT:    vlstm sp52; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r1, r053; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r2, r054; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r3, r055; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r4, r056; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r5, r057; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r6, r058; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r7, r059; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r8, r060; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r9, r061; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r10, r062; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r11, r063; CHECK-8M-FP-CVE-2021-35465-NEXT:    mov r12, r064; CHECK-8M-FP-CVE-2021-35465-NEXT:    msr apsr_nzcvq{{g?}}, r065; CHECK-8M-FP-CVE-2021-35465-NEXT:    blxns r066; CHECK-8M-FP-CVE-2021-35465-NEXT:    mrs r12, control67; CHECK-8M-FP-CVE-2021-35465-NEXT:    tst.w r12, #868; CHECK-8M-FP-CVE-2021-35465-NEXT:    it ne69; CHECK-8M-FP-CVE-2021-35465-NEXT:    vmovne.f32 s0, s070; CHECK-8M-FP-CVE-2021-35465-NEXT:    vlldm sp71; CHECK-8M-FP-CVE-2021-35465-NEXT:    add sp, #13672; CHECK-8M-FP-CVE-2021-35465-NEXT:    pop.w {r4, r5, r6, r7, r8, r9, r10, r11}73; CHECK-8M-FP-CVE-2021-35465-NEXT:    pop {r7, pc}74;75; CHECK-8M-NOFP-CVE-2021-35465-LABEL: non_secure_call:76; CHECK-8M-NOFP-CVE-2021-35465:       @ %bb.0:77; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    push {r7, lr}78; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    push.w {r4, r5, r6, r7, r8, r9, r10, r11}79; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    bic r0, r0, #180; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    sub sp, #13681; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    vlstm sp82; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r1, r083; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r2, r084; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r3, r085; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r4, r086; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r5, r087; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r6, r088; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r7, r089; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r8, r090; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r9, r091; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r10, r092; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r11, r093; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mov r12, r094; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    msr apsr_nzcvq{{g?}}, r095; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    blxns r096; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    mrs r12, control97; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    tst.w r12, #898; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    it ne99; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    @APP100; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    .inst.w 0xeeb00a40101; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    @NO_APP102; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    vlldm sp103; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    add sp, #136104; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    pop.w {r4, r5, r6, r7, r8, r9, r10, r11}105; CHECK-8M-NOFP-CVE-2021-35465-NEXT:    pop {r7, pc}106;107; CHECK-81M-CVE-2021-35465-LABEL: non_secure_call:108; CHECK-81M-CVE-2021-35465:       @ %bb.0:109; CHECK-81M-CVE-2021-35465-NEXT:    push {r7, lr}110; CHECK-81M-CVE-2021-35465-NEXT:    push.w {r4, r5, r6, r7, r8, r9, r10, r11}111; CHECK-81M-CVE-2021-35465-NEXT:    bic r0, r0, #1112; CHECK-81M-CVE-2021-35465-NEXT:    sub sp, #136113; CHECK-81M-CVE-2021-35465-NEXT:    vlstm sp114; CHECK-81M-CVE-2021-35465-NEXT:    clrm {r1, r2, r3, r4, r5, r6, r7, r8, r9, r10, r11, r12, apsr}115; CHECK-81M-CVE-2021-35465-NEXT:    blxns r0116; CHECK-81M-CVE-2021-35465-NEXT:    vscclrm {vpr}117; CHECK-81M-CVE-2021-35465-NEXT:    vlldm sp118; CHECK-81M-CVE-2021-35465-NEXT:    add sp, #136119; CHECK-81M-CVE-2021-35465-NEXT:    pop.w {r4, r5, r6, r7, r8, r9, r10, r11}120; CHECK-81M-CVE-2021-35465-NEXT:    pop {r7, pc}121  call void %fptr() #0122  ret void123}124 125attributes #0 = { "cmse_nonsecure_call" }126