zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

blob 40ef0a7c (5965B) - Raw


      1 # REQUIRES: mips
      2 # Check generation of MIPS specific ELF header flags.
      3 
      4 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
      5 # RUN:         %S/Inputs/mips-dynamic.s -o %t-so.o
      6 # RUN: ld.lld %t-so.o --gc-sections -shared -o %t.so
      7 # RUN: llvm-readobj -h --mips-abi-flags %t.so | FileCheck -check-prefix=SO %s
      8 
      9 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
     10 # RUN: ld.lld %t.o -o %t.exe
     11 # RUN: llvm-readobj -h --mips-abi-flags %t.exe | FileCheck -check-prefix=EXE %s
     12 
     13 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
     14 # RUN:         -mcpu=mips32r2 %s -o %t-r2.o
     15 # RUN: ld.lld %t-r2.o -o %t-r2.exe
     16 # RUN: llvm-readobj -h --mips-abi-flags %t-r2.exe \
     17 # RUN:   | FileCheck -check-prefix=EXE-R2 %s
     18 
     19 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
     20 # RUN:         -mcpu=mips32r2 %s -o %t-r2.o
     21 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
     22 # RUN:         -mcpu=mips32r5 %S/Inputs/mips-dynamic.s -o %t-r5.o
     23 # RUN: ld.lld %t-r2.o %t-r5.o -o %t-r5.exe
     24 # RUN: llvm-readobj -h --mips-abi-flags %t-r5.exe \
     25 # RUN:   | FileCheck -check-prefix=EXE-R5 %s
     26 
     27 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
     28 # RUN:         -mcpu=mips32r6 %s -o %t-r6.o
     29 # RUN: ld.lld %t-r6.o -o %t-r6.exe
     30 # RUN: llvm-readobj -h --mips-abi-flags %t-r6.exe \
     31 # RUN:   | FileCheck -check-prefix=EXE-R6 %s
     32 
     33 # RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux \
     34 # RUN:         -position-independent -mcpu=octeon %s -o %t.o
     35 # RUN: ld.lld %t.o -o %t.exe
     36 # RUN: llvm-readobj -h --mips-abi-flags %t.exe \
     37 # RUN:   | FileCheck -check-prefix=OCTEON %s
     38 
     39 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
     40 # RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux \
     41 # RUN:         -mattr=micromips %S/Inputs/mips-fpic.s -o %t-mm.o
     42 # RUN: ld.lld %t.o %t-mm.o -o %t.exe
     43 # RUN: llvm-readobj -h --mips-abi-flags %t.exe | FileCheck -check-prefix=MICRO %s
     44 
     45   .text
     46   .globl  __start
     47 __start:
     48   nop
     49 
     50 # SO:      Flags [
     51 # SO-NEXT:   EF_MIPS_ABI_O32
     52 # SO-NEXT:   EF_MIPS_ARCH_32
     53 # SO-NEXT:   EF_MIPS_CPIC
     54 # SO-NEXT:   EF_MIPS_PIC
     55 # SO-NEXT: ]
     56 # SO:      MIPS ABI Flags {
     57 # SO-NEXT:   Version: 0
     58 # SO-NEXT:   ISA: MIPS32
     59 # SO-NEXT:   ISA Extension: None
     60 # SO-NEXT:   ASEs [
     61 # SO-NEXT:   ]
     62 # SO-NEXT:   FP ABI: Hard float (double precision)
     63 # SO-NEXT:   GPR size: 32
     64 # SO-NEXT:   CPR1 size: 32
     65 # SO-NEXT:   CPR2 size: 0
     66 # SO-NEXT:   Flags 1 [
     67 # SO-NEXT:     ODDSPREG
     68 # SO-NEXT:   ]
     69 # SO-NEXT:   Flags 2: 0x0
     70 # SO-NEXT: }
     71 
     72 # EXE:      Flags [
     73 # EXE-NEXT:   EF_MIPS_ABI_O32
     74 # EXE-NEXT:   EF_MIPS_ARCH_32
     75 # EXE-NEXT:   EF_MIPS_CPIC
     76 # EXE-NEXT: ]
     77 # EXE:      MIPS ABI Flags {
     78 # EXE-NEXT:   Version: 0
     79 # EXE-NEXT:   ISA: MIPS32
     80 # EXE-NEXT:   ISA Extension: None
     81 # EXE-NEXT:   ASEs [
     82 # EXE-NEXT:   ]
     83 # EXE-NEXT:   FP ABI: Hard float (double precision)
     84 # EXE-NEXT:   GPR size: 32
     85 # EXE-NEXT:   CPR1 size: 32
     86 # EXE-NEXT:   CPR2 size: 0
     87 # EXE-NEXT:   Flags 1 [
     88 # EXE-NEXT:     ODDSPREG
     89 # EXE-NEXT:   ]
     90 # EXE-NEXT:   Flags 2: 0x0
     91 # EXE-NEXT: }
     92 
     93 # EXE-R2:      Flags [
     94 # EXE-R2-NEXT:   EF_MIPS_ABI_O32
     95 # EXE-R2-NEXT:   EF_MIPS_ARCH_32R2
     96 # EXE-R2-NEXT:   EF_MIPS_CPIC
     97 # EXE-R2-NEXT: ]
     98 # EXE-R2:      MIPS ABI Flags {
     99 # EXE-R2-NEXT:   Version: 0
    100 # EXE-R2-NEXT:   ISA: MIPS32r2
    101 # EXE-R2-NEXT:   ISA Extension: None
    102 # EXE-R2-NEXT:   ASEs [
    103 # EXE-R2-NEXT:   ]
    104 # EXE-R2-NEXT:   FP ABI: Hard float (double precision)
    105 # EXE-R2-NEXT:   GPR size: 32
    106 # EXE-R2-NEXT:   CPR1 size: 32
    107 # EXE-R2-NEXT:   CPR2 size: 0
    108 # EXE-R2-NEXT:   Flags 1 [
    109 # EXE-R2-NEXT:     ODDSPREG
    110 # EXE-R2-NEXT:   ]
    111 # EXE-R2-NEXT:   Flags 2: 0x0
    112 # EXE-R2-NEXT: }
    113 
    114 # EXE-R5:      Flags [
    115 # EXE-R5-NEXT:   EF_MIPS_ABI_O32
    116 # EXE-R5-NEXT:   EF_MIPS_ARCH_32R2
    117 # EXE-R5-NEXT:   EF_MIPS_CPIC
    118 # EXE-R5-NEXT: ]
    119 # EXE-R5:      MIPS ABI Flags {
    120 # EXE-R5-NEXT:   Version: 0
    121 # EXE-R5-NEXT:   ISA: MIPS32r5
    122 # EXE-R5-NEXT:   ISA Extension: None
    123 # EXE-R5-NEXT:   ASEs [
    124 # EXE-R5-NEXT:   ]
    125 # EXE-R5-NEXT:   FP ABI: Hard float (double precision)
    126 # EXE-R5-NEXT:   GPR size: 32
    127 # EXE-R5-NEXT:   CPR1 size: 32
    128 # EXE-R5-NEXT:   CPR2 size: 0
    129 # EXE-R5-NEXT:   Flags 1 [
    130 # EXE-R5-NEXT:     ODDSPREG
    131 # EXE-R5-NEXT:   ]
    132 # EXE-R5-NEXT:   Flags 2: 0x0
    133 # EXE-R5-NEXT: }
    134 
    135 # EXE-R6:      Flags [
    136 # EXE-R6-NEXT:   EF_MIPS_ABI_O32
    137 # EXE-R6-NEXT:   EF_MIPS_ARCH_32R6
    138 # EXE-R6-NEXT:   EF_MIPS_CPIC
    139 # EXE-R6-NEXT:   EF_MIPS_NAN2008
    140 # EXE-R6-NEXT: ]
    141 # EXE-R6:      MIPS ABI Flags {
    142 # EXE-R6-NEXT:   Version: 0
    143 # EXE-R6-NEXT:   ISA: MIPS32
    144 # EXE-R6-NEXT:   ISA Extension: None
    145 # EXE-R6-NEXT:   ASEs [
    146 # EXE-R6-NEXT:   ]
    147 # EXE-R6-NEXT:   FP ABI: Hard float (32-bit CPU, 64-bit FPU)
    148 # EXE-R6-NEXT:   GPR size: 32
    149 # EXE-R6-NEXT:   CPR1 size: 64
    150 # EXE-R6-NEXT:   CPR2 size: 0
    151 # EXE-R6-NEXT:   Flags 1 [
    152 # EXE-R6-NEXT:     ODDSPREG
    153 # EXE-R6-NEXT:   ]
    154 # EXE-R6-NEXT:   Flags 2: 0x0
    155 # EXE-R6-NEXT: }
    156 
    157 # OCTEON:      Flags [
    158 # OCTEON-NEXT:   EF_MIPS_ARCH_64R2
    159 # OCTEON-NEXT:   EF_MIPS_CPIC
    160 # OCTEON-NEXT:   EF_MIPS_MACH_OCTEON
    161 # OCTEON-NEXT:   EF_MIPS_PIC
    162 # OCTEON-NEXT: ]
    163 # OCTEON:      MIPS ABI Flags {
    164 # OCTEON-NEXT:   Version: 0
    165 # OCTEON-NEXT:   ISA: MIPS64r2
    166 # OCTEON-NEXT:   ISA Extension: Cavium Networks Octeon
    167 # OCTEON-NEXT:   ASEs [
    168 # OCTEON-NEXT:   ]
    169 # OCTEON-NEXT:   FP ABI: Hard float (double precision)
    170 # OCTEON-NEXT:   GPR size: 64
    171 # OCTEON-NEXT:   CPR1 size: 64
    172 # OCTEON-NEXT:   CPR2 size: 0
    173 # OCTEON-NEXT:   Flags 1 [
    174 # OCTEON-NEXT:     ODDSPREG
    175 # OCTEON-NEXT:   ]
    176 # OCTEON-NEXT:   Flags 2: 0x0
    177 # OCTEON-NEXT: }
    178 
    179 # MICRO:      Flags [
    180 # MICRO-NEXT:   EF_MIPS_ABI_O32
    181 # MICRO-NEXT:   EF_MIPS_ARCH_32
    182 # MICRO-NEXT:   EF_MIPS_CPIC
    183 # MICRO-NEXT:   EF_MIPS_MICROMIPS
    184 # MICRO-NEXT: ]
    185 # MICRO:      MIPS ABI Flags {
    186 # MICRO-NEXT:   Version: 0
    187 # MICRO-NEXT:   ISA: MIPS32
    188 # MICRO-NEXT:   ISA Extension: None
    189 # MICRO-NEXT:   ASEs [
    190 # MICRO-NEXT:     microMIPS
    191 # MICRO-NEXT:   ]
    192 # MICRO-NEXT:   FP ABI: Hard float (double precision)
    193 # MICRO-NEXT:   GPR size: 32
    194 # MICRO-NEXT:   CPR1 size: 32
    195 # MICRO-NEXT:   CPR2 size: 0
    196 # MICRO-NEXT:   Flags 1 [
    197 # MICRO-NEXT:     ODDSPREG
    198 # MICRO-NEXT:   ]
    199 # MICRO-NEXT:   Flags 2: 0x0
    200 # MICRO-NEXT: }