1# RUN: llvm-mc -triple=mips64-unknown-linux-gnuabin32 -position-independent %s \
2# RUN:   | FileCheck -check-prefix=ASM-PIC32 %s
3# RUN: llvm-mc -triple=mips64-unknown-linux-gnu -position-independent %s \
4# RUN:   | FileCheck -check-prefix=ASM-PIC64 %s
5# RUN: llvm-mc -triple=mips64-unknown-linux-gnuabin32 %s \
6# RUN:   | FileCheck -check-prefix=ASM-NPIC %s
7# RUN: llvm-mc -triple=mips64-unknown-linux-gnu %s \
8# RUN:   | FileCheck -check-prefix=ASM-NPIC %s
9
10# RUN: llvm-mc -triple=mips64-unknown-linux-gnuabin32 \
11# RUN:         -position-independent -filetype=obj -o - %s \
12# RUN:   | llvm-objdump -d -r - | FileCheck --check-prefix=OBJ32 %s
13# RUN: llvm-mc -triple=mips64-unknown-linux-gnu \
14# RUN:         -position-independent -filetype=obj -o - %s \
15# RUN:   | llvm-objdump -d -r - | FileCheck --check-prefix=OBJ64 %s
16
17# ASM-PIC32:  .text
18# ASM-PIC32:  .cplocal $4
19# ASM-PIC32:  lw $25, %call16(foo)($4)
20# ASM-PIC32:  jalr $25
21
22# ASM-PIC64:  .text
23# ASM-PIC64:  .cplocal $4
24# ASM-PIC64:  ld $25, %call16(foo)($4)
25# ASM-PIC64:  jalr $25
26
27# ASM-NPIC:  .text
28# ASM-NPIC:  .cplocal $4
29# ASM-NPIC:  jal foo
30
31# OBJ32:   lw $25, 0($4)
32# OBJ32: R_MIPS_CALL16 foo
33# OBJ32:   jalr $25
34# OBJ32: R_MIPS_JALR foo
35
36# OBJ64:   ld $25, 0($4)
37# OBJ64: R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE foo
38# OBJ64:   jalr $25
39# OBJ64: R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE foo
40
41  .text
42  .cplocal $4
43  jal foo
44foo:
45  nop
46