mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-26 04:32:44 +01:00
76a0f98726
Summary: This assembler directive is used in O32 PIC to restore the current function's $gp after executing JAL's. The $gp is first stored on the stack at a user-specified offset. It has the following format: ".cprestore 8" (where 8 is the offset). This fixes llvm.org/PR20967. Patch by Toma Tabacu. Reviewers: seanbruno, tomatabacu Subscribers: brooks, seanbruno, emaste, llvm-commits Differential Revision: http://reviews.llvm.org/D6267 llvm-svn: 247897
24 lines
636 B
ArmAsm
24 lines
636 B
ArmAsm
# RUN: not llvm-mc %s -arch=mips -mcpu=mips32 -relocation-model=pic 2>%t1
|
|
# RUN: FileCheck %s < %t1
|
|
|
|
.text
|
|
.set noreorder
|
|
.cpload $25
|
|
|
|
.set mips16
|
|
.cprestore 8
|
|
# CHECK: :[[@LINE-1]]:14: error: .cprestore is not supported in Mips16 mode
|
|
.set nomips16
|
|
|
|
.cprestore
|
|
# CHECK: :[[@LINE-1]]:13: error: expected stack offset value
|
|
|
|
.cprestore foo
|
|
# CHECK: :[[@LINE-1]]:17: error: stack offset is not an absolute expression
|
|
|
|
.cprestore -8
|
|
# CHECK: :[[@LINE-1]]:3: warning: .cprestore with negative stack offset has no effect
|
|
|
|
.cprestore 8, 35, bar
|
|
# CHECK: :[[@LINE-1]]:15: error: unexpected token, expected end of statement
|