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