brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.4 KiB · 4f3afe9 Raw
112 lines · plain
1# RUN: llvm-mc %s -triple=mipsel-unknown-linux -show-encoding \2# RUN: -mattr=micromips | FileCheck %s -check-prefix=CHECK-FIXUP3# RUN: llvm-mc %s -filetype=obj -triple=mipsel-unknown-linux \4# RUN: -mattr=micromips | llvm-readobj -r - \5# RUN: | FileCheck %s -check-prefix=CHECK-ELF6#------------------------------------------------------------------------------7# Check that the assembler can handle the documented syntax8# for relocations.9#------------------------------------------------------------------------------10# CHECK-FIXUP: lui $2, %hi(_gp_disp)11# CHECK-FIXUP:        # encoding: [0xa2'A',0x41'A',0x00,0x00]12# CHECK-FIXUP:        # fixup A - offset: 0,13# CHECK-FIXUP:          value: %hi(_gp_disp),14# CHECK-FIXUP:          kind: fixup_MICROMIPS_HI1615# CHECK-FIXUP: addiu $2, $2, %lo(_gp_disp)16# CHECK-FIXUP:        # encoding: [0x42'A',0x30'A',0x00,0x00]17# CHECK-FIXUP:        # fixup A - offset: 0,18# CHECK-FIXUP:          value: %lo(_gp_disp),19# CHECK-FIXUP:          kind: fixup_MICROMIPS_LO1620# CHECK-FIXUP: lw $25, %call16(strchr)($gp)21# CHECK-FIXUP:        # encoding: [0x3c'A',0xff'A',0x00,0x00]22# CHECK-FIXUP:        # fixup A - offset: 0,23# CHECK-FIXUP:          value: %call16(strchr),24# CHECK-FIXUP:          kind: fixup_MICROMIPS_CALL1625# CHECK-FIXUP: lw $3, %got(loop_1)($2)26# CHECK-FIXUP:        # encoding: [0x62'A',0xfc'A',0x00,0x00]27# CHECK-FIXUP:        # fixup A - offset: 0,28# CHECK-FIXUP:          value: %got(loop_1),29# CHECK-FIXUP:          kind: fixup_MICROMIPS_GOT1630# CHECK-FIXUP: lui $2, %dtprel_hi(_gp_disp)31# CHECK-FIXUP:        # encoding: [0xa2'A',0x41'A',0x00,0x00]32# CHECK-FIXUP:        # fixup A - offset: 0,33# CHECK-FIXUP:          value: %dtprel_hi(_gp_disp),34# CHECK-FIXUP:          kind: fixup_MICROMIPS_TLS_DTPREL_HI1635# CHECK-FIXUP: addiu $2, $2, %dtprel_lo(_gp_disp)36# CHECK-FIXUP:        # encoding: [0x42'A',0x30'A',0x00,0x00]37# CHECK-FIXUP:        # fixup A - offset: 0,38# CHECK-FIXUP:          value: %dtprel_lo(_gp_disp),39# CHECK-FIXUP:          kind: fixup_MICROMIPS_TLS_DTPREL_LO1640# CHECK-FIXUP: lw $3, %got(loop_1)($2)41# CHECK-FIXUP:        # encoding: [0x62'A',0xfc'A',0x00,0x00]42# CHECK-FIXUP:        # fixup A - offset: 0,43# CHECK-FIXUP:          value: %got(loop_1),44# CHECK-FIXUP:          kind: fixup_MICROMIPS_GOT1645# CHECK-FIXUP: lw $4, %got_disp(loop_2)($3)46# CHECK-FIXUP:        # encoding: [0x83'A',0xfc'A',0x00,0x00]47# CHECK-FIXUP:        # fixup A - offset: 0,48# CHECK-FIXUP:          value: %got_disp(loop_2),49# CHECK-FIXUP:          kind: fixup_MICROMIPS_GOT_DISP50# CHECK-FIXUP: lw $5, %got_page(loop_3)($4)51# CHECK-FIXUP:        # encoding: [0xa4'A',0xfc'A',0x00,0x00]52# CHECK-FIXUP:        # fixup A - offset: 0,53# CHECK-FIXUP:          value: %got_page(loop_3),54# CHECK-FIXUP:          kind: fixup_MICROMIPS_GOT_PAGE55# CHECK-FIXUP: lw $6, %got_ofst(loop_4)($5)56# CHECK-FIXUP:        # encoding: [0xc5'A',0xfc'A',0x00,0x00]57# CHECK-FIXUP:        # fixup A - offset: 0,58# CHECK-FIXUP:          value: %got_ofst(loop_4),59# CHECK-FIXUP:          kind: fixup_MICROMIPS_GOT_OFST60# CHECK-FIXUP: lui $2, %tprel_hi(_gp_disp)61# CHECK-FIXUP:        # encoding: [0xa2'A',0x41'A',0x00,0x00]62# CHECK-FIXUP:        # fixup A - offset: 0,63# CHECK-FIXUP:          value: %tprel_hi(_gp_disp),64# CHECK-FIXUP:          kind: fixup_MICROMIPS_TLS_TPREL_HI1665# CHECK-FIXUP: addiu $2, $2, %tprel_lo(_gp_disp)66# CHECK-FIXUP:        # encoding: [0x42'A',0x30'A',0x00,0x00]67# CHECK-FIXUP:        # fixup A - offset: 0,68# CHECK-FIXUP:          value: %tprel_lo(_gp_disp),69# CHECK-FIXUP:          kind: fixup_MICROMIPS_TLS_TPREL_LO1670# CHECK-FIXUP: addiu $4, $gp, %tlsgd(a)71# CHECK-FIXUP:        # encoding: [0x9c'A',0x30'A',0x00,0x00]72# CHECK-FIXUP:        # fixup A - offset: 0,73# CHECK-FIXUP:          value: %tlsgd(a), kind: fixup_MICROMIPS_TLS_GD74# CHECK-FIXUP: addiu $4, $gp, %tlsldm(f.i)75# CHECK-FIXUP:        # encoding: [0x9c'A',0x30'A',0x00,0x00]76# CHECK-FIXUP:        # fixup A - offset: 0,77# CHECK-FIXUP:          value: %tlsldm(f.i), kind: fixup_MICROMIPS_TLS_LDM78#------------------------------------------------------------------------------79# Check that the appropriate relocations were created.80#------------------------------------------------------------------------------81# CHECK-ELF: Relocations [82# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_HI1683# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_LO1684# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_CALL1685# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_GOT1686# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_TLS_DTPREL_HI1687# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_TLS_DTPREL_LO1688# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_GOT1689# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_GOT_DISP90# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_GOT_PAGE91# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_GOT_OFST92# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_TLS_TPREL_HI1693# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_TLS_TPREL_LO1694# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_TLS_GD95# CHECK-ELF:     0x{{[0-9,A-F]+}} R_MICROMIPS_TLS_LDM96# CHECK-ELF: ]97 98    lui    $2, %hi(_gp_disp)99    addiu  $2, $2, %lo(_gp_disp)100    lw     $25, %call16(strchr)($gp)101    lw     $3, %got(loop_1)($2)102    lui    $2, %dtprel_hi(_gp_disp)103    addiu  $2, $2, %dtprel_lo(_gp_disp)104    lw     $3, %got(loop_1)($2)105    lw     $4, %got_disp(loop_2)($3)106    lw     $5, %got_page(loop_3)($4)107    lw     $6, %got_ofst(loop_4)($5)108    lui    $2, %tprel_hi(_gp_disp)109    addiu  $2, $2, %tprel_lo(_gp_disp)110    addiu  $4, $gp, %tlsgd(a)111    addiu  $4, $gp, %tlsldm(f.i)112