1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-31 07:52:55 +01:00
llvm-mirror/test/CodeGen/Mips/global-pointer-reg.ll
Akira Hatanaka 431ee824c6 Make the following changes in MipsAsmPrinter.cpp:
- Remove code which lowers pseudo SETGP01.
- Fix LowerSETGP01. The first two of the three instructions that are emitted to
  initialize the global pointer register now use register $2.
- Stop emitting .cpload directive.

llvm-svn: 156689
2012-05-12 00:48:43 +00:00

25 lines
640 B
LLVM

; DISABLED: llc < %s -march=mipsel -mips-fix-global-base-reg=false | FileCheck %s
; RUN: false
; XFAIL: *
@g0 = external global i32
@g1 = external global i32
@g2 = external global i32
define void @foo1() nounwind {
entry:
; CHECK-NOT: .cpload
; CHECK-NOT: .cprestore
; CHECK: lui $[[R0:[0-9]+]], %hi(_gp_disp)
; CHECK: addiu $[[R1:[0-9]+]], $[[R0]], %lo(_gp_disp)
; CHECK: addu $[[GP:[0-9]+]], $[[R1]], $25
; CHECK: lw ${{[0-9]+}}, %call16(foo2)($[[GP]])
tail call void @foo2(i32* @g0) nounwind
tail call void @foo2(i32* @g1) nounwind
tail call void @foo2(i32* @g2) nounwind
ret void
}
declare void @foo2(i32*)