1# RUN: rm -rf %t && mkdir -p %t 2# RUN: llvm-mc -triple=mipsel-unknown-linux -mcpu=mips32r6 -filetype=obj -o %t/test_ELF_O32R6.o %s 3# RUN: llc -mtriple=mipsel-unknown-linux -mcpu=mips32r6 -filetype=obj -o %t/test_ELF_ExternalFunction_O32R6.o %S/Inputs/ExternalFunction.ll 4# RUN: llvm-rtdyld -triple=mipsel-unknown-linux -mcpu=mips32r6 -verify -map-section test_ELF_O32R6.o,.text=0x1000 -map-section test_ELF_ExternalFunction_O32R6.o,.text=0x10000 -check=%s %t/test_ELF_O32R6.o %t/test_ELF_ExternalFunction_O32R6.o 5 6# RUN: llvm-mc -triple=mips-unknown-linux -mcpu=mips32r6 -filetype=obj -o %t/test_ELF_O32R6.o %s 7# RUN: llc -mtriple=mips-unknown-linux -mcpu=mips32r6 -filetype=obj -o %t/test_ELF_ExternalFunction_O32R6.o %S/Inputs/ExternalFunction.ll 8# RUN: llvm-rtdyld -triple=mips-unknown-linux -mcpu=mips32r6 -verify -map-section test_ELF_O32R6.o,.text=0x1000 -map-section test_ELF_ExternalFunction_O32R6.o,.text=0x10000 -check=%s %t/test_ELF_O32R6.o %t/test_ELF_ExternalFunction_O32R6.o 9 10 .text 11 .abicalls 12 .nan 2008 13 .text 14 .set nomicromips 15 .set nomips16 16 .set noreorder 17 .set nomacro 18 .set noat 19 20 .align 3 21 .globl bar 22 .type bar,@function 23 24bar: 25# Test R_MIPS_PC19_S2 relocation. 26# rtdyld-check: decode_operand(R_MIPS_PC19_S2, 1)[20:0] = (foo - R_MIPS_PC19_S2)[20:0] 27R_MIPS_PC19_S2: 28 lwpc $6,foo 29 30# Test R_MIPS_PC21_S2 relocation. 31# rtdyld-check: decode_operand(R_MIPS_PC21_S2, 1)[22:0] = (foo - next_pc(R_MIPS_PC21_S2) + 0x04)[22:0] 32R_MIPS_PC21_S2: 33 bnezc $5,foo 34 35# Test R_MIPS_PC26_S2 relocation. 36# rtdyld-check: decode_operand(R_MIPS_PC26_S2, 0)[27:0] = (foo - next_pc(R_MIPS_PC26_S2) + 0x04)[27:0] 37R_MIPS_PC26_S2: 38 balc foo 39 40# Test R_MIPS_PCHI16 relocation. 41# rtdyld-check: decode_operand(R_MIPS_PCHI16, 1)[15:0] = (foo - R_MIPS_PCHI16 + 0x8000)[31:16] 42R_MIPS_PCHI16: 43 aluipc $5, %pcrel_hi(foo) 44 45# Test R_MIPS_PCLO16 relocation. 46# rtdyld-check: decode_operand(R_MIPS_PCLO16, 2)[15:0] = (foo - R_MIPS_PCLO16)[15:0] 47R_MIPS_PCLO16: 48 addiu $5, $5, %pcrel_lo(foo) 49 50 .size bar, .-bar 51