llvm-6502/test/MC/Mips/set-mips-directives-bad.s
Daniel Sanders 98b419bff7 [mips] Add assembler support for '.set mipsX'.
Summary:
This patch also fixes an issue with the way the Mips assembler enables/disables architecture
features. Before this patch, the assembler never disabled feature bits. For example,
.set mips64
.set mips32r2

would result in the 'OR' of mips64 with mips32r2 feature bits which isn't right.
Unfortunately this isn't trivial to fix because there's not an easy way to clear
feature bits as the algorithm in MCSubtargetInfo (ToggleFeature) only clears the bits
that imply the feature being cleared and not the implied bits by the feature (there's a
better explanation to the code I added).

Patch by Matheus Almeida and updated by Toma Tabacu

Reviewers: vmedic, matheusalmeida, dsanders

Reviewed By: dsanders

Subscribers: tomatabacu, llvm-commits

Differential Revision: http://reviews.llvm.org/D4123


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@214709 91177308-0d34-0410-b5e6-96231b3b80d8
2014-08-04 12:20:00 +00:00

31 lines
1.4 KiB
ArmAsm

# RUN: not llvm-mc %s -triple=mipsel-unknown-linux -mcpu=mips1 2>%t1
# RUN: FileCheck %s < %t1
# FIXME: At the moment we emit the wrong error message if we try to assemble the
# ll instruction using an unsupported architecture so we just check for "error"
# and ignore the rest of the message.
.text
.set noreorder
.set mips1
ll $2,-2($2) # CHECK: error:
.set mips2
dadd $2,$2,$2 # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips3
ldxc1 $f8,$2($4) # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips4
luxc1 $f19,$2($4) # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips5
clo $2,$2 # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips32
rotr $2,15 # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips32r2
mod $2, $4, $6 # CHECK: error:instruction requires a CPU feature not currently enabled
.set mips32r6
daddi $2, $2, 10 # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips64
drotr32 $1,$14,15 # CHECK: error: instruction requires a CPU feature not currently enabled
.set mips64r2
mod $2, $4, $6 # CHECK: error: instruction requires a CPU feature not currently enabled