brintos

brintos / llvm-project-archived public Read only

0
0
Text · 10.0 KiB · 9306dbc Raw
381 lines · yaml
1## Check obj2yaml is able to decode all possible MIPS e_flags field values.2 3## e_flags might keep both flags and regular values in a different bits.4## Here we test all flags at once.5 6# RUN: yaml2obj --docnum=1 %s -o %t-non-flags7# RUN: obj2yaml %t-non-flags | FileCheck %s --check-prefix=FLAGS8 9# FLAGS: Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE, EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX, EF_MIPS_ARCH_1 ]10 11--- !ELF12FileHeader:13  Class:   ELFCLASS3214  Data:    ELFDATA2LSB15  Type:    ET_REL16  Machine: EM_MIPS17  Flags: [ EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_ABI2, EF_MIPS_32BITMODE,18    EF_MIPS_FP64, EF_MIPS_NAN2008, EF_MIPS_MICROMIPS, EF_MIPS_ARCH_ASE_M16, EF_MIPS_ARCH_ASE_MDMX]19 20## Test EF_MIPS_ABI values.21 22# RUN: yaml2obj --docnum=2 %s -o %t-abi-o32 23# RUN: obj2yaml %t-abi-o32 | FileCheck %s -DABI=EF_MIPS_ABI_O32 --check-prefix=ABI24# RUN: yaml2obj --docnum=3 %s -o %t-abi-o64 25# RUN: obj2yaml %t-abi-o64 | FileCheck -DABI=EF_MIPS_ABI_O64 %s --check-prefix=ABI26# RUN: yaml2obj --docnum=4 %s -o %t-eabi3227# RUN: obj2yaml %t-eabi32 | FileCheck -DABI=EF_MIPS_ABI_EABI32 %s --check-prefix=ABI28# RUN: yaml2obj --docnum=5 %s -o %t-eabi6429# RUN: obj2yaml %t-eabi64 | FileCheck -DABI=EF_MIPS_ABI_EABI64 %s --check-prefix=ABI30 31# ABI: Flags: [ [[ABI]], EF_MIPS_ARCH_1 ]32 33--- !ELF34FileHeader:35  Class:   ELFCLASS3236  Data:    ELFDATA2LSB37  Type:    ET_REL38  Machine: EM_MIPS39  Flags: [ EF_MIPS_ABI_O32 ]40 41--- !ELF42FileHeader:43  Class:   ELFCLASS3244  Data:    ELFDATA2LSB45  Type:    ET_REL46  Machine: EM_MIPS47  Flags: [ EF_MIPS_ABI_O64 ]48 49--- !ELF50FileHeader:51  Class:   ELFCLASS3252  Data:    ELFDATA2LSB53  Type:    ET_REL54  Machine: EM_MIPS55  Flags: [ EF_MIPS_ABI_EABI32 ]56 57--- !ELF58FileHeader:59  Class:   ELFCLASS3260  Data:    ELFDATA2LSB61  Type:    ET_REL62  Machine: EM_MIPS63  Flags: [ EF_MIPS_ABI_EABI64 ]64 65## Test EF_MIPS_MACH values.66 67# RUN: yaml2obj --docnum=6 %s -o %t-mach-390068# RUN: obj2yaml %t-mach-3900 | FileCheck %s -DMACH=EF_MIPS_MACH_3900 --check-prefix=MACH69# RUN: yaml2obj --docnum=7 %s -o %t-mach-401070# RUN: obj2yaml %t-mach-4010 | FileCheck %s -DMACH=EF_MIPS_MACH_4010 --check-prefix=MACH71# RUN: yaml2obj --docnum=8 %s -o %t-mach-410072# RUN: obj2yaml %t-mach-4100 | FileCheck %s -DMACH=EF_MIPS_MACH_4100 --check-prefix=MACH73# RUN: yaml2obj --docnum=9 %s -o %t-mach-465074# RUN: obj2yaml %t-mach-4650 | FileCheck %s -DMACH=EF_MIPS_MACH_4650 --check-prefix=MACH75# RUN: yaml2obj --docnum=10 %s -o %t-mach-412076# RUN: obj2yaml %t-mach-4120 | FileCheck %s -DMACH=EF_MIPS_MACH_4120 --check-prefix=MACH77# RUN: yaml2obj --docnum=11 %s -o %t-mach-411178# RUN: obj2yaml %t-mach-4111 | FileCheck %s -DMACH=EF_MIPS_MACH_4111 --check-prefix=MACH79# RUN: yaml2obj --docnum=12 %s -o %t-mach-sb180# RUN: obj2yaml %t-mach-sb1 | FileCheck %s -DMACH=EF_MIPS_MACH_SB1 --check-prefix=MACH81# RUN: yaml2obj --docnum=13 %s -o %t-mach-octeon82# RUN: obj2yaml %t-mach-octeon | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON --check-prefix=MACH83# RUN: yaml2obj --docnum=14 %s -o %t-mach-xlr84# RUN: obj2yaml %t-mach-xlr | FileCheck %s -DMACH=EF_MIPS_MACH_XLR --check-prefix=MACH85# RUN: yaml2obj --docnum=15 %s -o %t-mach-octeon286# RUN: obj2yaml %t-mach-octeon2 | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON2 --check-prefix=MACH87# RUN: yaml2obj --docnum=16 %s -o %t-mach-octeon388# RUN: obj2yaml %t-mach-octeon3 | FileCheck %s -DMACH=EF_MIPS_MACH_OCTEON3 --check-prefix=MACH89# RUN: yaml2obj --docnum=17 %s -o %t-mach-540090# RUN: obj2yaml %t-mach-5400 | FileCheck %s -DMACH=EF_MIPS_MACH_5400 --check-prefix=MACH91# RUN: yaml2obj --docnum=18 %s -o %t-mach-590092# RUN: obj2yaml %t-mach-5900 | FileCheck %s -DMACH=EF_MIPS_MACH_5900 --check-prefix=MACH93# RUN: yaml2obj --docnum=19 %s -o %t-mach-550094# RUN: obj2yaml %t-mach-5500 | FileCheck %s -DMACH=EF_MIPS_MACH_5500 --check-prefix=MACH95# RUN: yaml2obj --docnum=20 %s -o %t-mach-900096# RUN: obj2yaml %t-mach-9000 | FileCheck %s -DMACH=EF_MIPS_MACH_9000 --check-prefix=MACH97# RUN: yaml2obj --docnum=21 %s -o %t-mach-ls2e98# RUN: obj2yaml %t-mach-ls2e | FileCheck %s -DMACH=EF_MIPS_MACH_LS2E --check-prefix=MACH99# RUN: yaml2obj --docnum=22 %s -o %t-mach-ls2f100# RUN: obj2yaml %t-mach-ls2f | FileCheck %s -DMACH=EF_MIPS_MACH_LS2F --check-prefix=MACH101# RUN: yaml2obj --docnum=23 %s -o %t-mach-ls3a102# RUN: obj2yaml %t-mach-ls3a | FileCheck %s -DMACH=EF_MIPS_MACH_LS3A --check-prefix=MACH103 104# MACH: Flags: [ [[MACH]], EF_MIPS_ARCH_1 ]105 106--- !ELF107FileHeader:108  Class:   ELFCLASS32109  Data:    ELFDATA2LSB110  Type:    ET_REL111  Machine: EM_MIPS112  Flags:   [ EF_MIPS_MACH_3900 ]113 114--- !ELF115FileHeader:116  Class:   ELFCLASS32117  Data:    ELFDATA2LSB118  Type:    ET_REL119  Machine: EM_MIPS120  Flags:   [ EF_MIPS_MACH_4010 ]121 122--- !ELF123FileHeader:124  Class:   ELFCLASS32125  Data:    ELFDATA2LSB126  Type:    ET_REL127  Machine: EM_MIPS128  Flags:   [ EF_MIPS_MACH_4100 ]129 130--- !ELF131FileHeader:132  Class:   ELFCLASS32133  Data:    ELFDATA2LSB134  Type:    ET_REL135  Machine: EM_MIPS136  Flags:   [ EF_MIPS_MACH_4650 ]137 138--- !ELF139FileHeader:140  Class:   ELFCLASS32141  Data:    ELFDATA2LSB142  Type:    ET_REL143  Machine: EM_MIPS144  Flags:   [ EF_MIPS_MACH_4120 ]145 146--- !ELF147FileHeader:148  Class:   ELFCLASS32149  Data:    ELFDATA2LSB150  Type:    ET_REL151  Machine: EM_MIPS152  Flags:   [ EF_MIPS_MACH_4111 ]153 154--- !ELF155FileHeader:156  Class:   ELFCLASS32157  Data:    ELFDATA2LSB158  Type:    ET_REL159  Machine: EM_MIPS160  Flags:   [ EF_MIPS_MACH_SB1 ]161 162--- !ELF163FileHeader:164  Class:   ELFCLASS32165  Data:    ELFDATA2LSB166  Type:    ET_REL167  Machine: EM_MIPS168  Flags:   [ EF_MIPS_MACH_OCTEON ]169 170--- !ELF171FileHeader:172  Class:   ELFCLASS32173  Data:    ELFDATA2LSB174  Type:    ET_REL175  Machine: EM_MIPS176  Flags:   [ EF_MIPS_MACH_XLR ]177 178--- !ELF179FileHeader:180  Class:   ELFCLASS32181  Data:    ELFDATA2LSB182  Type:    ET_REL183  Machine: EM_MIPS184  Flags:   [ EF_MIPS_MACH_OCTEON2 ]185 186--- !ELF187FileHeader:188  Class:   ELFCLASS32189  Data:    ELFDATA2LSB190  Type:    ET_REL191  Machine: EM_MIPS192  Flags:   [ EF_MIPS_MACH_OCTEON3 ]193 194--- !ELF195FileHeader:196  Class:   ELFCLASS32197  Data:    ELFDATA2LSB198  Type:    ET_REL199  Machine: EM_MIPS200  Flags:   [ EF_MIPS_MACH_5400 ]201 202--- !ELF203FileHeader:204  Class:   ELFCLASS32205  Data:    ELFDATA2LSB206  Type:    ET_REL207  Machine: EM_MIPS208  Flags:   [ EF_MIPS_MACH_5900 ]209 210--- !ELF211FileHeader:212  Class:   ELFCLASS32213  Data:    ELFDATA2LSB214  Type:    ET_REL215  Machine: EM_MIPS216  Flags:   [ EF_MIPS_MACH_5500 ]217 218 219--- !ELF220FileHeader:221  Class:   ELFCLASS32222  Data:    ELFDATA2LSB223  Type:    ET_REL224  Machine: EM_MIPS225  Flags:   [ EF_MIPS_MACH_9000 ]226 227--- !ELF228FileHeader:229  Class:   ELFCLASS32230  Data:    ELFDATA2LSB231  Type:    ET_REL232  Machine: EM_MIPS233  Flags:   [ EF_MIPS_MACH_LS2E ]234 235--- !ELF236FileHeader:237  Class:   ELFCLASS32238  Data:    ELFDATA2LSB239  Type:    ET_REL240  Machine: EM_MIPS241  Flags:   [ EF_MIPS_MACH_LS2F ]242 243--- !ELF244FileHeader:245  Class:   ELFCLASS32246  Data:    ELFDATA2LSB247  Type:    ET_REL248  Machine: EM_MIPS249  Flags:   [ EF_MIPS_MACH_LS3A ]250 251## Test EF_MIPS_ARCH values.252 253## EF_MIPS_ARCH_1 has value = 0x0, so it does not show up in obj2yaml output,254## when there are no other flags.255 256# RUN: yaml2obj --docnum=24 %s -o %t-arch-1a257# RUN: obj2yaml %t-arch-1a | FileCheck %s --check-prefix=ARCH-1258# RUN: yaml2obj --docnum=25 %s -o %t-arch-1b259# RUN: obj2yaml %t-arch-1b | FileCheck %s --check-prefix=ARCH-1260 261# ARCH-1-NOT: Flags:262 263--- !ELF264FileHeader:265  Class:   ELFCLASS32266  Data:    ELFDATA2LSB267  Type:    ET_REL268  Machine: EM_MIPS269  Flags:   [ EF_MIPS_ARCH_1 ]270 271--- !ELF272FileHeader:273  Class:   ELFCLASS32274  Data:    ELFDATA2LSB275  Type:    ET_REL276  Machine: EM_MIPS277  Flags:   [ ]278 279# RUN: yaml2obj --docnum=26 %s -o %t-arch-2280# RUN: obj2yaml %t-arch-2 | FileCheck %s -DARCH=EF_MIPS_ARCH_2 --check-prefix=ARCH281# RUN: yaml2obj --docnum=27 %s -o %t-arch-3282# RUN: obj2yaml %t-arch-3 | FileCheck %s -DARCH=EF_MIPS_ARCH_3 --check-prefix=ARCH283# RUN: yaml2obj --docnum=28 %s -o %t-arch-4284# RUN: obj2yaml %t-arch-4 | FileCheck %s -DARCH=EF_MIPS_ARCH_4 --check-prefix=ARCH285# RUN: yaml2obj --docnum=29 %s -o %t-arch-5286# RUN: obj2yaml %t-arch-5 | FileCheck %s -DARCH=EF_MIPS_ARCH_5 --check-prefix=ARCH287# RUN: yaml2obj --docnum=30 %s -o %t-arch-32288# RUN: obj2yaml %t-arch-32 | FileCheck %s -DARCH=EF_MIPS_ARCH_32 --check-prefix=ARCH289# RUN: yaml2obj --docnum=31 %s -o %t-arch-64290# RUN: obj2yaml %t-arch-64 | FileCheck %s -DARCH=EF_MIPS_ARCH_64 --check-prefix=ARCH291# RUN: yaml2obj --docnum=32 %s -o %t-arch-32r2292# RUN: obj2yaml %t-arch-32r2 | FileCheck %s -DARCH=EF_MIPS_ARCH_32R2 --check-prefix=ARCH293# RUN: yaml2obj --docnum=33 %s -o %t-arch-64r2294# RUN: obj2yaml %t-arch-64r2 | FileCheck %s -DARCH=EF_MIPS_ARCH_64R2 --check-prefix=ARCH295# RUN: yaml2obj --docnum=34 %s -o %t-arch-32r6296# RUN: obj2yaml %t-arch-32r6 | FileCheck %s -DARCH=EF_MIPS_ARCH_32R6 --check-prefix=ARCH297# RUN: yaml2obj --docnum=35 %s -o %t-arch-64r6298# RUN: obj2yaml %t-arch-64r6 | FileCheck %s -DARCH=EF_MIPS_ARCH_64R6 --check-prefix=ARCH299 300# ARCH: Flags: [ [[ARCH]] ]301 302--- !ELF303FileHeader:304  Class:   ELFCLASS32305  Data:    ELFDATA2LSB306  Type:    ET_REL307  Machine: EM_MIPS308  Flags:   [ EF_MIPS_ARCH_2 ]309 310--- !ELF311FileHeader:312  Class:   ELFCLASS32313  Data:    ELFDATA2LSB314  Type:    ET_REL315  Machine: EM_MIPS316  Flags:   [ EF_MIPS_ARCH_3 ]317 318--- !ELF319FileHeader:320  Class:   ELFCLASS32321  Data:    ELFDATA2LSB322  Type:    ET_REL323  Machine: EM_MIPS324  Flags:   [ EF_MIPS_ARCH_4 ]325 326--- !ELF327FileHeader:328  Class:   ELFCLASS32329  Data:    ELFDATA2LSB330  Type:    ET_REL331  Machine: EM_MIPS332  Flags:   [ EF_MIPS_ARCH_5 ]333 334--- !ELF335FileHeader:336  Class:   ELFCLASS32337  Data:    ELFDATA2LSB338  Type:    ET_REL339  Machine: EM_MIPS340  Flags:   [ EF_MIPS_ARCH_32 ]341  342--- !ELF343FileHeader:344  Class:   ELFCLASS32345  Data:    ELFDATA2LSB346  Type:    ET_REL347  Machine: EM_MIPS348  Flags:   [ EF_MIPS_ARCH_64 ]349 350--- !ELF351FileHeader:352  Class:   ELFCLASS32353  Data:    ELFDATA2LSB354  Type:    ET_REL355  Machine: EM_MIPS356  Flags:   [ EF_MIPS_ARCH_32R2 ]357 358--- !ELF359FileHeader:360  Class:   ELFCLASS32361  Data:    ELFDATA2LSB362  Type:    ET_REL363  Machine: EM_MIPS364  Flags:   [ EF_MIPS_ARCH_64R2 ]365 366--- !ELF367FileHeader:368  Class:   ELFCLASS32369  Data:    ELFDATA2LSB370  Type:    ET_REL371  Machine: EM_MIPS372  Flags:   [ EF_MIPS_ARCH_32R6 ]373 374--- !ELF375FileHeader:376  Class:   ELFCLASS32377  Data:    ELFDATA2LSB378  Type:    ET_REL379  Machine: EM_MIPS380  Flags:   [ EF_MIPS_ARCH_64R6 ]381