brintos

brintos / llvm-project-archived public Read only

0
0
Text · 3.7 KiB · f82b961 Raw
140 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc < %s -O2 -mtriple=m68k -verify-machineinstrs \3; RUN:              -code-model=large -relocation-model=pic \4; RUN:   | FileCheck %s5 6; External Linkage7@a = global i32 0, align 48 9define i32 @my_access_global_a() #0 {10; CHECK-LABEL: my_access_global_a:11; CHECK:         .cfi_startproc12; CHECK-NEXT:  ; %bb.0: ; %entry13; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a014; CHECK-NEXT:    move.l #a@GOTOFF, %d015; CHECK-NEXT:    move.l (0,%a0,%d0), %d016; CHECK-NEXT:    rts17entry:18  %0 = load i32, ptr @a, align 419  ret i32 %020}21 22; WeakAny Linkage23@b = weak global i32 0, align 424 25define i32 @my_access_global_b() #0 {26; CHECK-LABEL: my_access_global_b:27; CHECK:         .cfi_startproc28; CHECK-NEXT:  ; %bb.0: ; %entry29; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a030; CHECK-NEXT:    move.l #b@GOTOFF, %d031; CHECK-NEXT:    move.l (0,%a0,%d0), %d032; CHECK-NEXT:    rts33entry:34 %0 = load i32, ptr @b, align 435 ret i32 %036}37 38; Internal Linkage39@c = internal global i32 0, align 440 41define i32 @my_access_global_c() #0 {42; CHECK-LABEL: my_access_global_c:43; CHECK:         .cfi_startproc44; CHECK-NEXT:  ; %bb.0: ; %entry45; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a046; CHECK-NEXT:    move.l #c@GOTOFF, %d047; CHECK-NEXT:    move.l (0,%a0,%d0), %d048; CHECK-NEXT:    rts49entry:50 %0 = load i32, ptr @c, align 451 ret i32 %052}53 54; External Linkage, only declaration.55@d = external global i32, align 456 57define i32 @my_access_global_load_d() #0 {58; CHECK-LABEL: my_access_global_load_d:59; CHECK:         .cfi_startproc60; CHECK-NEXT:  ; %bb.0: ; %entry61; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a062; CHECK-NEXT:    move.l #d@GOTOFF, %d063; CHECK-NEXT:    move.l (0,%a0,%d0), %d064; CHECK-NEXT:    rts65entry:66 %0 = load i32, ptr @d, align 467 ret i32 %068}69 70; External Linkage, only declaration, store a value.71define i32 @my_access_global_store_d() #0 {72; CHECK-LABEL: my_access_global_store_d:73; CHECK:         .cfi_startproc74; CHECK-NEXT:  ; %bb.0: ; %entry75; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a076; CHECK-NEXT:    move.l #d@GOTOFF, %d077; CHECK-NEXT:    move.l #2, (0,%a0,%d0)78; CHECK-NEXT:    moveq #0, %d079; CHECK-NEXT:    rts80entry:81 store i32 2, ptr @d, align 482 ret i32 083}84 85; External Linkage, function pointer access.86declare i32 @access_fp(ptr)87declare i32 @foo()88 89define i32 @my_access_fp_foo() #0 {90; CHECK-LABEL: my_access_fp_foo:91; CHECK:         .cfi_startproc92; CHECK-NEXT:  ; %bb.0: ; %entry93; CHECK-NEXT:    suba.l #4, %sp94; CHECK-NEXT:    .cfi_def_cfa_offset -895; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a096; CHECK-NEXT:    adda.l #foo@GOTOFF, %a097; CHECK-NEXT:    move.l %a0, (%sp)98; CHECK-NEXT:    jsr (access_fp@PLT,%pc)99; CHECK-NEXT:    adda.l #4, %sp100; CHECK-NEXT:    rts101entry:102 %call = call i32 @access_fp(ptr @foo)103 ret i32 %call104}105 106; LinkOnceODR Linkage, function pointer access.107 108$bar = comdat any109 110define linkonce_odr i32 @bar() comdat {111; CHECK-LABEL: bar:112; CHECK:         .cfi_startproc113; CHECK-NEXT:  ; %bb.0: ; %entry114; CHECK-NEXT:    moveq #0, %d0115; CHECK-NEXT:    rts116entry:117 ret i32 0118}119 120define i32 @my_access_fp_bar() #0 {121; CHECK-LABEL: my_access_fp_bar:122; CHECK:         .cfi_startproc123; CHECK-NEXT:  ; %bb.0: ; %entry124; CHECK-NEXT:    suba.l #4, %sp125; CHECK-NEXT:    .cfi_def_cfa_offset -8126; CHECK-NEXT:    lea (_GLOBAL_OFFSET_TABLE_@GOTPCREL,%pc), %a0127; CHECK-NEXT:    adda.l #bar@GOTOFF, %a0128; CHECK-NEXT:    move.l %a0, (%sp)129; CHECK-NEXT:    jsr (access_fp@PLT,%pc)130; CHECK-NEXT:    adda.l #4, %sp131; CHECK-NEXT:    rts132entry:133 %call = call i32 @access_fp(ptr @bar)134 ret i32 %call135}136 137!llvm.module.flags = !{!0, !1}138!0 = !{i32 1, !"PIC Level", i32 1}139!1 = !{i32 1, !"PIE Level", i32 1}140