[mips][ias] Range check uimm5 operands and fix several bugs this revealed.
[oota-llvm.git] / test / MC / Mips / nooddspreg-cmdarg.s
1 # RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+fp64,+nooddspreg | \
2 # RUN:   FileCheck %s -check-prefix=CHECK-ASM
3 #
4 # RUN: llvm-mc %s -arch=mips -mcpu=mips32 -mattr=+fp64,+nooddspreg -filetype=obj -o - | \
5 # RUN:   llvm-readobj -sections -section-data -section-relocations - | \
6 # RUN:     FileCheck %s -check-prefix=CHECK-OBJ
7
8 # RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -target-abi n32 -mattr=+nooddspreg 2> %t0
9 # RUN: FileCheck %s -check-prefix=INVALID < %t0
10 #
11 # RUN: not llvm-mc %s -arch=mips -mcpu=mips64 -mattr=+nooddspreg 2> %t0
12 # RUN: FileCheck %s -check-prefix=INVALID < %t0
13 #
14 # CHECK-ASM-NOT: .module nooddspreg
15
16 # Checking if the Mips.abiflags were correctly emitted.
17 # CHECK-OBJ:       Section {
18 # CHECK-OBJ:         Index: 5
19 # CHECK-OBJ-LABEL:   Name: .MIPS.abiflags (12)
20 # CHECK-OBJ:         Type: SHT_MIPS_ABIFLAGS (0x7000002A)
21 # CHECK-OBJ:          Flags [ (0x2)
22 # CHECK-OBJ:           SHF_ALLOC (0x2)
23 # CHECK-OBJ:         ]
24 # CHECK-OBJ:         Address: 0x0
25 # CHECK-OBJ:         Size: 24
26 # CHECK-OBJ:         Link: 0
27 # CHECK-OBJ:         Info: 0
28 # CHECK-OBJ:         AddressAlignment: 8
29 # CHECK-OBJ:         EntrySize: 24
30 # CHECK-OBJ:         Relocations [
31 # CHECK-OBJ:         ]
32 # CHECK-OBJ:         SectionData (
33 # CHECK-OBJ:           0000: 00002001 01020007 00000000 00000000  |.. .............|
34 # CHECK-OBJ:           0010: 00000000 00000000                    |........|
35 # CHECK-OBJ:         )
36 # CHECK-OBJ-LABEL: }
37
38 # INVALID: ERROR: -mno-odd-spreg requires the O32 ABI
39
40 # FIXME: Test should include gnu_attributes directive when implemented.
41 #        An explicit .gnu_attribute must be checked against the effective
42 #        command line options and any inconsistencies reported via a warning.