1b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding -mcpu=mips32r2 | FileCheck %s 2b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# Check that the assembler can handle the documented syntax 3b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# for relocations. 4b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: .section __TEXT,__text,regular,pure_instructions 5b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lui $2, %hi(_gp_disp) # encoding: [A,A,0x02,0x3c] 6b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: _gp_disp@ABS_HI, kind: fixup_Mips_HI16 7b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: addiu $2, $2, %lo(_gp_disp) # encoding: [A,A,0x42,0x24] 8b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: _gp_disp@ABS_LO, kind: fixup_Mips_LO16 9b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lw $25, %call16(strchr)($gp) # encoding: [A,A,0x99,0x8f] 10b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: strchr@GOT_CALL, kind: fixup_Mips_CALL16 11b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lw $3, %got(loop_1)($2) # encoding: [A,A,0x43,0x8c] 12b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: loop_1@GOT, kind: fixup_Mips_GOT_Local 13b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lui $2, %dtprel_hi(_gp_disp) # encoding: [A,A,0x02,0x3c] 14b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: _gp_disp@DTPREL_HI, kind: fixup_Mips_DTPREL_HI 15b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: addiu $2, $2, %dtprel_hi(_gp_disp) # encoding: [A,A,0x42,0x24] 16b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: _gp_disp@DTPREL_HI, kind: fixup_Mips_DTPREL_HI 17b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lw $3, %got(loop_1)($2) # encoding: [A,A,0x43,0x8c] 18b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: loop_1@GOT, kind: fixup_Mips_GOT_Local 19b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lw $4, %got_disp(loop_2)($3) # encoding: [A,A,0x64,0x8c] 20b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: loop_2@GOT_DISP, kind: fixup_Mips_GOT_DISP 21b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lw $5, %got_page(loop_3)($4) # encoding: [A,A,0x85,0x8c] 22b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: loop_3@GOT_PAGE, kind: fixup_Mips_GOT_PAGE 23b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lw $6, %got_ofst(loop_4)($5) # encoding: [A,A,0xa6,0x8c] 24b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: loop_4@GOT_OFST, kind: fixup_Mips_GOT_OFST 25b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: lui $2, %tprel_hi(_gp_disp) # encoding: [A,A,0x02,0x3c] 26b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: _gp_disp@TPREL_HI, kind: fixup_Mips_TPREL_HI 27b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: addiu $2, $2, %tprel_lo(_gp_disp) # encoding: [A,A,0x42,0x24] 28b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter# CHECK: # fixup A - offset: 0, value: _gp_disp@TPREL_LO, kind: fixup_Mips_TPREL_LO 29b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter 30b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lui $2, %hi(_gp_disp) 31b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter addiu $2, $2, %lo(_gp_disp) 32b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lw $25, %call16(strchr)($gp) 33b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lw $3, %got(loop_1)($2) 34b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lui $2, %dtprel_hi(_gp_disp) 35b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter addiu $2, $2, %dtprel_hi(_gp_disp) 36b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lw $3, %got(loop_1)($2) 37b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lw $4, %got_disp(loop_2)($3) 38b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lw $5, %got_page(loop_3)($4) 39b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lw $6, %got_ofst(loop_4)($5) 40b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter lui $2, %tprel_hi(_gp_disp) 41b72a90e05b296d13b6fb4efc54eee9f6f5c0ea7bJack Carter addiu $2, $2, %tprel_lo(_gp_disp) 42