brintos

brintos / llvm-project-archived public Read only

0
0
Text · 801 B · 62dd6c3 Raw
36 lines · plain
1; RUN: llc -O2 --mtriple=bpfel %s -o - | FileCheck %s2 3; Generated from the following C code:4;5;   extern int foo(void) __attribute__((bpf_fastcall));6;7;   int bar(int a, int b, int c, int d, int e) {8;     foo();9;     return e;10;   }11;12; Using the following command:13;14;   clang --target=bpf -emit-llvm -O2 -S -o - t.c15;16; (unnecessary attrs removed maually)17 18; Check that function marked with bpf_fastcall does not clobber W1-W5.19 20define dso_local i32 @bar(i32 %a, i32 %b, i32 %c, i32 %d, i32 %e) {21entry:22  %call = tail call i32 @foo() #023  ret i32 %e24}25 26; CHECK:      # %bb.0:27; CHECK-NEXT:   *(u64 *)(r10 - 8) = r528; CHECK-NEXT:   call foo29; CHECK-NEXT:   r5 = *(u64 *)(r10 - 8)30; CHECK-NEXT:   w0 = w531; CHECK-NEXT:   exit32 33declare dso_local i32 @foo() #034 35attributes #0 = { "bpf_fastcall" }36