1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-26 04:32:44 +01:00
llvm-mirror/test/MC/Mips/cprestore-bad.s
Daniel Sanders 76a0f98726 [mips] Add assembler support for the .cprestore directive.
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
2015-09-17 16:08:39 +00:00

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