mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2025-02-01 05:01:59 +01:00
7f22528bef
Add a hidden option to the compiler to control a the PC Relative GOT indirect linker optimization. If this option is set to false the compiler will no loger produce the relocations required by the linker to perform the optimization. Reviewed By: nemanjai, NeHuang, #powerpc Differential Revision: https://reviews.llvm.org/D85377
40 lines
1.5 KiB
LLVM
40 lines
1.5 KiB
LLVM
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
|
|
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
|
|
; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
|
|
; RUN: < %s | FileCheck %s --check-prefix=DEFAULT
|
|
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
|
|
; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
|
|
; RUN: -ppc-pcrel-linker-opt=true < %s | FileCheck %s --check-prefix=ON
|
|
; RUN: llc -verify-machineinstrs -mtriple=powerpc64le-unknown-linux-gnu \
|
|
; RUN: -mcpu=pwr10 -ppc-asm-full-reg-names -ppc-vsr-nums-as-vr \
|
|
; RUN: -ppc-pcrel-linker-opt=false < %s | FileCheck %s --check-prefix=OFF
|
|
|
|
@input8 = external local_unnamed_addr global i8, align 1
|
|
|
|
define dso_local i8 @Read8() local_unnamed_addr {
|
|
; DEFAULT-LABEL: Read8:
|
|
; DEFAULT: # %bb.0: # %entry
|
|
; DEFAULT-NEXT: pld r3, input8@got@pcrel(0), 1
|
|
; DEFAULT-NEXT: .Lpcrel:
|
|
; DEFAULT-NEXT: .reloc .Lpcrel-8,R_PPC64_PCREL_OPT,.-(.Lpcrel-8)
|
|
; DEFAULT-NEXT: lbz r3, 0(r3)
|
|
; DEFAULT-NEXT: blr
|
|
;
|
|
; ON-LABEL: Read8:
|
|
; ON: # %bb.0: # %entry
|
|
; ON-NEXT: pld r3, input8@got@pcrel(0), 1
|
|
; ON-NEXT: .Lpcrel:
|
|
; ON-NEXT: .reloc .Lpcrel-8,R_PPC64_PCREL_OPT,.-(.Lpcrel-8)
|
|
; ON-NEXT: lbz r3, 0(r3)
|
|
; ON-NEXT: blr
|
|
;
|
|
; OFF-LABEL: Read8:
|
|
; OFF: # %bb.0: # %entry
|
|
; OFF-NEXT: pld r3, input8@got@pcrel(0), 1
|
|
; OFF-NEXT: lbz r3, 0(r3)
|
|
; OFF-NEXT: blr
|
|
entry:
|
|
%0 = load i8, i8* @input8, align 1
|
|
ret i8 %0
|
|
}
|