mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-01-01 15:33:33 +00:00
77e85a150c
Summary: The PIC additions didn't update the prologue and epilogue code to save and restore r30 (PIC base register). This does that. Test Plan: Tests updated. Reviewers: hfinkel Reviewed By: hfinkel Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D6876 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@225450 91177308-0d34-0410-b5e6-96231b3b80d8
19 lines
564 B
LLVM
19 lines
564 B
LLVM
; RUN: llc < %s -mtriple=powerpc-unknown-linux-gnu -relocation-model=pic | FileCheck -check-prefix=SMALL-BSS %s
|
|
@bar = common global i32 0, align 4
|
|
|
|
define i32 @foo() {
|
|
entry:
|
|
%0 = load i32* @bar, align 4
|
|
ret i32 %0
|
|
}
|
|
|
|
!llvm.module.flags = !{!0}
|
|
!0 = !{i32 1, !"PIC Level", i32 1}
|
|
; SMALL-BSS-LABEL:foo:
|
|
; SMALL-BSS: stw 30, -8(1)
|
|
; SMALL-BSS: bl _GLOBAL_OFFSET_TABLE_@local-4
|
|
; SMALL-BSS: mflr 30
|
|
; SMALL-BSS: lwz [[VREG:[0-9]+]], bar@GOT(30)
|
|
; SMALL-BSS-DAG: lwz {{[0-9]+}}, 0([[VREG]])
|
|
; SMALL-BSS-DAG: lwz 30, -8(1)
|