[mips] Add MipsOptionRecord abstraction and use it to implement .reginfo/.MIPS.options
[oota-llvm.git] / test / MC / Mips / mips-reginfo-fp64.s
1 # RUN: llvm-mc %s -arch=mips -mcpu=mips32r2 -mattr=+msa,+fp64 -filetype=obj -o - | \
2 # RUN:   llvm-readobj -s -section-data | \
3 # RUN:     FileCheck %s -check-prefix=ELF32
4
5 # RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 -mattr=+msa,+fp64,-n64,+n32 -filetype=obj -o - | \
6 # RUN:   llvm-readobj -s -section-data | \
7 # RUN:     FileCheck %s -check-prefix=ELF32
8
9 # RUN: llvm-mc %s -arch=mips64 -mcpu=mips64r2 -mattr=+msa,+fp64,+n64 -filetype=obj -o - | \
10 # RUN:   llvm-readobj -s -section-data | \
11 # RUN:     FileCheck %s -check-prefix=ELF64
12
13 # ELF32:   Section {
14 # ELF32:    Name: .reginfo
15 # ELF32:    Type: SHT_MIPS_REGINFO (0x70000006)
16 # ELF32:    Flags [ (0x2)
17 # ELF32:      SHF_ALLOC (0x2)
18 # ELF32:    ]
19 # ELF32:    Size: 24
20 # ELF32:    SectionData (
21 # ELF32:      0000: 01010101 00000000 4C005515 00000000
22 # ELF32:      0010: 00000000 00000000
23 # ELF32:    )
24 # ELF32:  }
25
26 # ELF64:   Section {
27 # ELF64:    Name: .MIPS.options
28 # ELF64:    Type: SHT_MIPS_OPTIONS (0x7000000D)
29 # ELF64:    Flags [ (0x8000002)
30 # ELF64:      SHF_ALLOC (0x2)
31 # ELF64:      SHF_MIPS_NOSTRIP (0x8000000)
32 # ELF64:    ]
33 # ELF64:    Size: 40
34 # ELF64:    SectionData (
35 # ELF64:      0000: 01280000 00000000 01010101 00000000
36 # ELF64:      0010: 00000000 4C005515 00000000 00000000
37 # ELF64:      0020: 00000000 00000000
38 # ELF64:    )
39 # ELF64:  }
40
41 .text
42         add $0,$0,$0
43         add $8,$0,$0
44         add $16,$0,$0
45         add $24,$0,$0
46
47 # abs.s - Reads and writes from/to $f0.
48         abs.s $f0,$f0
49 # round.w.d - Reads $f4 and writes to $f2.
50         round.w.d $f2,$f4
51 # ceil.w.s - Reads $f8 and writes to $f10.
52         ceil.w.s $f10, $f8
53 # cvt.s.d - Reads from $f12 and writes to $f14.
54         cvt.s.d $f14, $f12
55 # abs.d - Reads from $f30 and writes to $f30.
56         abs.d $f30,$f30
57
58 # Read and write from/to $f26 and $f27
59         add_a.b $w26,$w26,$w26
60         add_a.b $w27,$w27,$w27