cplocal.s 1.36 KB
# RUN: llvm-mc -triple=mips64-unknown-linux-gnuabin32 -position-independent %s \
# RUN:   | FileCheck -check-prefix=ASM-PIC32 %s
# RUN: llvm-mc -triple=mips64-unknown-linux-gnu -position-independent %s \
# RUN:   | FileCheck -check-prefix=ASM-PIC64 %s
# RUN: llvm-mc -triple=mips64-unknown-linux-gnuabin32 %s \
# RUN:   | FileCheck -check-prefix=ASM-NPIC %s
# RUN: llvm-mc -triple=mips64-unknown-linux-gnu %s \
# RUN:   | FileCheck -check-prefix=ASM-NPIC %s

# RUN: llvm-mc -triple=mips64-unknown-linux-gnuabin32 \
# RUN:         -position-independent -filetype=obj -o - %s \
# RUN:   | llvm-objdump -d -r - | FileCheck --check-prefix=OBJ32 %s
# RUN: llvm-mc -triple=mips64-unknown-linux-gnu \
# RUN:         -position-independent -filetype=obj -o - %s \
# RUN:   | llvm-objdump -d -r - | FileCheck --check-prefix=OBJ64 %s

# ASM-PIC32:  .text
# ASM-PIC32:  .cplocal $4
# ASM-PIC32:  lw $25, %call16(foo)($4)
# ASM-PIC32:  jalr $25

# ASM-PIC64:  .text
# ASM-PIC64:  .cplocal $4
# ASM-PIC64:  ld $25, %call16(foo)($4)
# ASM-PIC64:  jalr $25

# ASM-NPIC:  .text
# ASM-NPIC:  .cplocal $4
# ASM-NPIC:  jal foo

# OBJ32:   lw $25, 0($4)
# OBJ32: R_MIPS_CALL16 foo
# OBJ32:   jalr $25
# OBJ32: R_MIPS_JALR foo

# OBJ64:   ld $25, 0($4)
# OBJ64: R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE foo
# OBJ64:   jalr $25
# OBJ64: R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE foo

  .text
  .cplocal $4
  jal foo
foo:
  nop