1*c23a780cSMin-Yih Hsu; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2*c23a780cSMin-Yih Hsu; RUN: llc < %s -O0 -mtriple=m68k-linux-gnu -verify-machineinstrs \ 3*c23a780cSMin-Yih Hsu; RUN: -code-model=medium -relocation-model=pic \ 4*c23a780cSMin-Yih Hsu; RUN: | FileCheck %s 5*c23a780cSMin-Yih Hsu 6*c23a780cSMin-Yih Hsudefine weak void @weak_foo() { 7*c23a780cSMin-Yih Hsu; CHECK-LABEL: weak_foo: 8*c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 9*c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 10*c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 11*c23a780cSMin-Yih Hsu ret void 12*c23a780cSMin-Yih Hsu} 13*c23a780cSMin-Yih Hsu 14*c23a780cSMin-Yih Hsudefine weak_odr void @weak_odr_foo() { 15*c23a780cSMin-Yih Hsu; CHECK-LABEL: weak_odr_foo: 16*c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 17*c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 18*c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 19*c23a780cSMin-Yih Hsu ret void 20*c23a780cSMin-Yih Hsu} 21*c23a780cSMin-Yih Hsu 22*c23a780cSMin-Yih Hsudefine internal void @internal_foo() { 23*c23a780cSMin-Yih Hsu; CHECK-LABEL: internal_foo: 24*c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 25*c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 26*c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 27*c23a780cSMin-Yih Hsu ret void 28*c23a780cSMin-Yih Hsu} 29*c23a780cSMin-Yih Hsu 30*c23a780cSMin-Yih Hsudeclare i32 @ext_baz() 31*c23a780cSMin-Yih Hsu 32*c23a780cSMin-Yih Hsudefine void @foo() { 33*c23a780cSMin-Yih Hsu; CHECK-LABEL: foo: 34*c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 35*c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: 36*c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 37*c23a780cSMin-Yih Hsu ret void 38*c23a780cSMin-Yih Hsu} 39*c23a780cSMin-Yih Hsu 40*c23a780cSMin-Yih Hsudefine void @bar() { 41*c23a780cSMin-Yih Hsu; CHECK-LABEL: bar: 42*c23a780cSMin-Yih Hsu; CHECK: .cfi_startproc 43*c23a780cSMin-Yih Hsu; CHECK-NEXT: ; %bb.0: ; %entry 44*c23a780cSMin-Yih Hsu; CHECK-NEXT: sub.l #4, %sp 45*c23a780cSMin-Yih Hsu; CHECK-NEXT: .cfi_def_cfa_offset -8 46*c23a780cSMin-Yih Hsu; CHECK-NEXT: jsr (foo@PLT,%pc) 47*c23a780cSMin-Yih Hsu; CHECK-NEXT: jsr (weak_odr_foo@PLT,%pc) 48*c23a780cSMin-Yih Hsu; CHECK-NEXT: jsr (weak_foo@PLT,%pc) 49*c23a780cSMin-Yih Hsu; CHECK-NEXT: jsr (internal_foo,%pc) 50*c23a780cSMin-Yih Hsu; CHECK-NEXT: jsr (ext_baz@PLT,%pc) 51*c23a780cSMin-Yih Hsu; CHECK-NEXT: add.l #4, %sp 52*c23a780cSMin-Yih Hsu; CHECK-NEXT: rts 53*c23a780cSMin-Yih Hsuentry: 54*c23a780cSMin-Yih Hsu call void @foo() 55*c23a780cSMin-Yih Hsu call void @weak_odr_foo() 56*c23a780cSMin-Yih Hsu call void @weak_foo() 57*c23a780cSMin-Yih Hsu call void @internal_foo() 58*c23a780cSMin-Yih Hsu call i32 @ext_baz() 59*c23a780cSMin-Yih Hsu ret void 60*c23a780cSMin-Yih Hsu} 61*c23a780cSMin-Yih Hsu 62*c23a780cSMin-Yih Hsu; -fpie for local global data tests should be added here 63*c23a780cSMin-Yih Hsu 64*c23a780cSMin-Yih Hsu!llvm.module.flags = !{!0, !1} 65*c23a780cSMin-Yih Hsu!0 = !{i32 1, !"PIC Level", i32 1} 66*c23a780cSMin-Yih Hsu!1 = !{i32 1, !"PIE Level", i32 1} 67