brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.6 KiB · 124085c Raw
45 lines · plain
1; RUN: llc -mtriple=i386-linux < %s -o - | FileCheck --check-prefix=LINUX-I386 %s2; RUN: llc -mtriple=x86_64-linux < %s -o - | FileCheck --check-prefix=LINUX-X64 %s3; RUN: llc -mtriple=i386-linux-android < %s -o - | FileCheck --check-prefix=ANDROID-I386 %s4; RUN: llc -mtriple=x86_64-linux-android < %s -o - | FileCheck --check-prefix=ANDROID-X64 %s5; RUN: llc -mtriple=x86_64-fuchsia < %s -o - | FileCheck --check-prefix=FUCHSIA-X64 %s6 7; RUN: llc -mtriple=i386-linux -safestack-use-pointer-address < %s -o - | FileCheck --check-prefix=LINUX-I386-PA %s8 9define void @_Z1fv() safestack {10entry:11  %x = alloca i32, align 412  call void @_Z7CapturePi(ptr nonnull %x)13  ret void14}15 16declare void @_Z7CapturePi(ptr)17 18; LINUX-X64: movq __safestack_unsafe_stack_ptr@GOTTPOFF(%rip), %[[A:.*]]19; LINUX-X64: movq %fs:(%[[A]]), %[[B:.*]]20; LINUX-X64: leaq -16(%[[B]]), %[[C:.*]]21; LINUX-X64: movq %[[C]], %fs:(%[[A]])22 23; LINUX-I386: movl __safestack_unsafe_stack_ptr@INDNTPOFF, %[[A:.*]]24; LINUX-I386: movl %gs:(%[[A]]), %[[B:.*]]25; LINUX-I386: leal -16(%[[B]]), %[[C:.*]]26; LINUX-I386: movl %[[C]], %gs:(%[[A]])27 28; ANDROID-I386: movl %gs:36, %[[A:.*]]29; ANDROID-I386: leal -16(%[[A]]), %[[B:.*]]30; ANDROID-I386: movl %[[B]], %gs:3631 32; ANDROID-X64: movq %fs:72, %[[A:.*]]33; ANDROID-X64: leaq -16(%[[A]]), %[[B:.*]]34; ANDROID-X64: movq %[[B]], %fs:7235 36; FUCHSIA-X64: movq %fs:24, %[[A:.*]]37; FUCHSIA-X64: leaq -16(%[[A]]), %[[B:.*]]38; FUCHSIA-X64: movq %[[B]], %fs:2439 40; LINUX-I386-PA: calll __safestack_pointer_address41; LINUX-I386-PA: movl %eax, %[[A:.*]]42; LINUX-I386-PA: movl (%eax), %[[B:.*]]43; LINUX-I386-PA: leal -16(%[[B]]), %[[C:.*]]44; LINUX-I386-PA: movl %[[C]], (%[[A]])45