mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-11-02 22:23:10 +00:00
Add saving and restoring of r30 to the prologue and epilogue, respectively
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
This commit is contained in:
@@ -12,12 +12,14 @@ entry:
|
||||
; LARGE-BSS: [[POFF:\.L[0-9]+\$poff]]:
|
||||
; LARGE-BSS-NEXT: .long .LTOC-[[PB:\.L[0-9]+\$pb]]
|
||||
; LARGE-BSS-NEXT: foo:
|
||||
; LARGE-BSS: stw 30, -8(1)
|
||||
; LARGE-BSS: bl [[PB]]
|
||||
; LARGE-BSS-NEXT: [[PB]]:
|
||||
; LARGE-BSS: mflr 30
|
||||
; LARGE-BSS: lwz [[REG:[0-9]+]], [[POFF]]-[[PB]](30)
|
||||
; LARGE-BSS-NEXT: add 30, [[REG]], 30
|
||||
; LARGE-BSS: lwz [[VREG:[0-9]+]], [[VREF:\.LC[0-9]+]]-.LTOC(30)
|
||||
; LARGE-BSS: lwz {{[0-9]+}}, 0([[VREG]])
|
||||
; LARGE-BSS-DAG: lwz {{[0-9]+}}, 0([[VREG]])
|
||||
; LARGE-BSS-DAG: lwz 30, -8(1)
|
||||
; LARGE-BSS: [[VREF]]:
|
||||
; LARGE-BSS-NEXT: .long bar
|
||||
|
||||
@@ -10,7 +10,9 @@ entry:
|
||||
!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: lwz {{[0-9]+}}, 0([[VREG]])
|
||||
; SMALL-BSS-DAG: lwz {{[0-9]+}}, 0([[VREG]])
|
||||
; SMALL-BSS-DAG: lwz 30, -8(1)
|
||||
|
||||
Reference in New Issue
Block a user