Home | History | Annotate | Download | only in CodeGen
      1 // REQUIRES: x86-registered-target
      2 
      3 // RUN: %clang -target i386-apple-darwin -S -o - %s | \
      4 // RUN:   FileCheck --check-prefix=DARWIN %s
      5 // DARWIN: f0:
      6 // DARWIN: pushl %ebp
      7 // DARWIN: ret
      8 // DARWIN: f1:
      9 // DARWIN: pushl %ebp
     10 // DARWIN: ret
     11 
     12 // RUN: %clang -target i386-pc-linux-gnu -S -o - %s | \
     13 // RUN:   FileCheck --check-prefix=LINUX %s
     14 // LINUX: f0:
     15 // LINUX-NOT: pushl %ebp
     16 // LINUX: ret
     17 // LINUX: f1:
     18 // LINUX: pushl %ebp
     19 // LINUX: ret
     20 
     21 // RUN: %clang -target i386-darwin -S -o - -fomit-frame-pointer %s | \
     22 // RUN:   FileCheck --check-prefix=OMIT_ALL %s
     23 // OMIT_ALL: f0:
     24 // OMIT_ALL-NOT: pushl %ebp
     25 // OMIT_ALL: ret
     26 // OMIT_ALL: f1:
     27 // OMIT_ALL-NOT: pushl %ebp
     28 // OMIT_ALL: ret
     29 
     30 // RUN: %clang -target i386-darwin -S -o - -momit-leaf-frame-pointer %s | \
     31 // RUN:   FileCheck --check-prefix=OMIT_LEAF %s
     32 // OMIT_LEAF: f0:
     33 // OMIT_LEAF-NOT: pushl %ebp
     34 // OMIT_LEAF: ret
     35 // OMIT_LEAF: f1:
     36 // OMIT_LEAF: pushl %ebp
     37 // OMIT_LEAF: ret
     38 
     39 void f0() {}
     40 void f1() { f0(); }
     41