1# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -mattr=+fp64 | \
2# RUN:   FileCheck %s -check-prefix=CHECK-ASM
3#
4# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -mattr=+fp64 -filetype=obj -o - | \
5# RUN:   llvm-readobj --sections --section-data --section-relocations - | \
6# RUN:     FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-O32
7#
8# RUN: llvm-mc %s -triple mips64-unknown-linux-gnuabin32 | \
9# RUN:   FileCheck %s -check-prefix=CHECK-ASM
10#
11# RUN: llvm-mc %s -triple mips64-unknown-linux-gnuabin32 -filetype=obj -o - | \
12# RUN:   llvm-readobj --sections --section-data --section-relocations - | \
13# RUN:     FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N32
14
15# RUN: llvm-mc %s -triple mips64-unknown-linux-gnu | \
16# RUN:   FileCheck %s -check-prefix=CHECK-ASM
17#
18# Repeat the -filetype=obj tests but this time use an empty assembly file. The
19# output should be unchanged.
20# RUN: llvm-mc /dev/null -triple mips64-unknown-linux-gnu -filetype=obj -o - | \
21# RUN:   llvm-readobj --sections --section-data --section-relocations - | \
22# RUN:     FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N64
23
24# RUN: llvm-mc /dev/null -triple mips-unknown-linux-gnu -mattr=+fp64 -filetype=obj -o - | \
25# RUN:   llvm-readobj --sections --section-data --section-relocations - | \
26# RUN:     FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-O32
27#
28# RUN: llvm-mc /dev/null -triple mips64-unknown-linux-gnuabin32 -filetype=obj -o - | \
29# RUN:   llvm-readobj --sections --section-data --section-relocations - | \
30# RUN:     FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N32
31
32# RUN: llvm-mc /dev/null -triple mips64-unknown-linux-gnu -filetype=obj -o - | \
33# RUN:   llvm-readobj --sections --section-data --section-relocations - | \
34# RUN:     FileCheck %s -check-prefixes=CHECK-OBJ-ALL,CHECK-OBJ-N64
35
36# CHECK-ASM: .module oddspreg
37
38# Checking if the Mips.abiflags were correctly emitted.
39# CHECK-OBJ-ALL:       Section {
40# CHECK-OBJ-ALL:         Index: 5
41# CHECK-OBJ-ALL-LABEL:   Name: .MIPS.abiflags ({{[0-9]+}})
42# CHECK-OBJ-ALL:         Type: SHT_MIPS_ABIFLAGS (0x7000002A)
43# CHECK-OBJ-ALL:          Flags [ (0x2)
44# CHECK-OBJ-ALL:           SHF_ALLOC (0x2)
45# CHECK-OBJ-ALL:         ]
46# CHECK-OBJ-ALL:         Address: 0x0
47# CHECK-OBJ-ALL:         Size: 24
48# CHECK-OBJ-ALL:         Link: 0
49# CHECK-OBJ-ALL:         Info: 0
50# CHECK-OBJ-ALL:         AddressAlignment: 8
51# CHECK-OBJ-ALL:         EntrySize: 24
52# CHECK-OBJ-ALL:         Relocations [
53# CHECK-OBJ-ALL:         ]
54# CHECK-OBJ-ALL:         SectionData (
55# CHECK-OBJ-O32:           0000: 00002001 01020006 00000000 00000000  |.. .............|
56# CHECK-OBJ-O32:           0010: 00000001 00000000                    |........|
57# CHECK-OBJ-N32:           0000: 00004001 02020001 00000000 00000000  |..@.............|
58# CHECK-OBJ-N32:           0010: 00000001 00000000                    |........|
59# CHECK-OBJ-N64:           0000: 00004001 02020001 00000000 00000000  |..@.............|
60# CHECK-OBJ-N64:           0010: 00000001 00000000                    |........|
61# CHECK-OBJ-ALL:         )
62# CHECK-OBJ-ALL-LABEL: }
63
64        .module oddspreg
65        add.s $f3, $f1, $f5
66
67# FIXME: Test should include gnu_attributes directive when implemented.
68#        An explicit .gnu_attribute must be checked against the effective
69#        command line options and any inconsistencies reported via a warning.
70