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