brintos

brintos / llvm-project-archived public Read only

0
0
Text · 48.0 KiB · 6f1b7c9 Raw
928 lines · plain
1# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -show-encoding |\2# RUN:   FileCheck %s -check-prefixes=ALL,MIPS,O323 4# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -mattr=+xgot -show-encoding |\5# RUN:   FileCheck %s -check-prefixes=ALL,MIPS,XO326 7# RUN: llvm-mc %s -triple mips64-unknown-linux-gnuabin32 -show-encoding |\8# RUN:   FileCheck %s -check-prefixes=ALL,MIPS,N329 10# RUN: llvm-mc %s -triple mips64-unknown-linux-gnuabin32 -mattr=+xgot -show-encoding |\11# RUN:   FileCheck %s -check-prefixes=ALL,MIPS,XN3212 13# RUN: llvm-mc %s -triple mips64-unknown-linux-gnu -show-encoding |\14# RUN:   FileCheck %s -check-prefixes=ALL,MIPS,N6415 16# RUN: llvm-mc %s -triple mips64-unknown-linux-gnu -mattr=+xgot -show-encoding |\17# RUN:   FileCheck %s -check-prefixes=ALL,MIPS,XN6418 19# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -mattr=micromips -show-encoding |\20# RUN:   FileCheck %s -check-prefixes=ALL,MM,O32-MM21 22# Repeat the tests but using ELF output. An initial version of this patch did23# this as the output different depending on whether it went through24# MCAsmStreamer or MCELFStreamer. This ensures that the assembly expansion and25# direct objection emission match.26 27# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -filetype=obj | \28# RUN:   llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefixes=ELF-O3229# RUN: llvm-mc %s -triple mips-unknown-linux-gnu -mattr=+xgot -filetype=obj | \30# RUN:   llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefixes=ELF-XO3231# RUN: llvm-mc %s -triple mips64-unknown-linux-gnuabin32 -filetype=obj | \32# RUN:   llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefixes=ELF-N3233# RUN: llvm-mc %s -triple mips64-unknown-linux-gnuabin32 -mattr=+xgot -filetype=obj | \34# RUN:   llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefixes=ELF-XN3235# RUN: llvm-mc %s -triple mips64-unknown-linux-gnu -filetype=obj | \36# RUN:   llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefixes=ELF-N6437# RUN: llvm-mc %s -triple mips64-unknown-linux-gnu -mattr=+xgot -filetype=obj | \38# RUN:   llvm-objdump --no-print-imm-hex -d -r - | FileCheck %s --check-prefixes=ELF-XN6439 40  .weak weak_label41 42  .text43  .option pic244 45  .ent local_label46local_label:47  .frame  $sp, 0, $ra48  .set noreorder49 50  jal local_label51  nop52 53# Expanding "jal local_label":54# O32: lw     $25, %got(local_label)($gp)   # encoding: [0x8f,0x99,A,A]55# O32:                                      #   fixup A - offset: 0, value: %got(local_label), kind:   fixup_Mips_GOT56# O32: addiu  $25, $25, %lo(local_label)    # encoding: [0x27,0x39,A,A]57# O32:                                      #   fixup A - offset: 0, value: %lo(local_label), kind:   fixup_Mips_LO1658# O32-NEXT: .reloc $tmp0, R_MIPS_JALR, local_label59 60# ELF-O32:      8f 99 00 00 lw $25, 0($gp)61# ELF-O32-NEXT:                 R_MIPS_GOT16 .text62# ELF-O32-NEXT: 27 39 00 00 addiu $25, $25, 063# ELF-O32-NEXT:                 R_MIPS_LO16 .text64# ELF-O32-NEXT: 03 20 f8 09 jalr $2565# ELF-O32-NEXT:                 R_MIPS_JALR local_label66 67# XO32:      lw    $25, %got(local_label)($gp)  # encoding: [0x8f,0x99,A,A]68# XO32-NEXT:                                    #   fixup A - offset: 0, value: %got(local_label), kind:   fixup_Mips_GOT69# XO32-NEXT: addiu $25, $25, %lo(local_label)   # encoding: [0x27,0x39,A,A]70# XO32-NEXT:                                    #   fixup A - offset: 0, value: %lo(local_label), kind:   fixup_Mips_LO1671# XO32-NEXT: .reloc $tmp0, R_MIPS_JALR, local_label72 73# ELF-XO32:      8f 99 00 00 lw $25, 0($gp)74# ELF-XO32-NEXT:                 R_MIPS_GOT16 .text75# ELF-XO32-NEXT: 27 39 00 00 addiu $25, $25, 076# ELF-XO32-NEXT:                 R_MIPS_LO16  .text77# ELF-XO32-NEXT: 03 20 f8 09 jalr    $2578# ELF-XO32-NEXT:                 R_MIPS_JALR local_label79 80# N32: lw  $25, %got_disp(local_label)($gp) # encoding: [0x8f,0x99,A,A]81# N32:                                      #   fixup A - offset: 0, value: %got_disp(local_label), kind:   fixup_Mips_GOT_DISP82# N32-NEXT: .reloc .Ltmp0, R_MIPS_JALR, local_label83 84# ELF-N32:      8f 99 00 00 lw $25, 0($gp)85# ELF-N32-NEXT:                 R_MIPS_GOT_DISP local_label86# ELF-N32-NEXT: 03 20 f8 09 jalr $2587# ELF-N32-NEXT:                 R_MIPS_JALR local_label88 89# XN32:      lw $25, %got_disp(local_label)($gp)  # encoding: [0x8f,0x99,A,A]90# XN32-NEXT:                                      #   fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP91# XN32-NEXT: .reloc .Ltmp0, R_MIPS_JALR, local_label92 93# ELF-XN32:      8f 99 00 00 lw $25, 0($gp)94# ELF-XN32-NEXT:                 R_MIPS_GOT_DISP local_label95# ELF-XN32-NEXT: 03 20 f8 09 jalr    $2596# ELF-XN32-NEXT:                 R_MIPS_JALR local_label97 98# N64: ld  $25, %got_disp(local_label)($gp) # encoding: [0xdf,0x99,A,A]99# N64:                                      #   fixup A - offset: 0, value: %got_disp(local_label), kind:   fixup_Mips_GOT_DISP100# N64-NEXT: .reloc .Ltmp0, R_MIPS_JALR, local_label101 102# ELF-N64:      df 99 00 00 ld $25, 0($gp)103# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE local_label104# ELF-N64-NEXT: 03 20 f8 09 jalr $25105# ELF-N64-NEXT: R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE local_label106 107# XN64:      ld $25, %got_disp(local_label)($gp)  # encoding: [0xdf,0x99,A,A]108# XN64-NEXT:                                      #   fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP109# XN64-NEXT: .reloc .Ltmp0, R_MIPS_JALR, local_label110 111# ELF-XN64:      df 99 00 00 ld $25, 0($gp)112# ELF-XN64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE local_label113# ELF-XN64-NEXT: 03 20 f8 09 jalr $25114# ELF-XN64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE local_label115 116# O32-MM: lw    $25, %got(local_label)($gp)      # encoding: [0xff,0x3c,A,A]117# O32-MM:                                        #   fixup A - offset: 0, value: %got(local_label), kind:   fixup_MICROMIPS_GOT16118# O32-MM: addiu $25, $25, %lo(local_label)       # encoding: [0x33,0x39,A,A]119# O32-MM:                                        #   fixup A - offset: 0, value: %lo(local_label), kind:   fixup_MICROMIPS_LO16120# O32-MM-NEXT: .reloc $tmp0, R_MICROMIPS_JALR, local_label121 122# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]123# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]124# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]125 126  jal local_label+8127  nop128 129# O32:      lw $25, %got(local_label+8)($gp)    # encoding: [0x8f,0x99,A,A]130# O32-NEXT:                                     #   fixup A - offset: 0, value: %got(local_label+8), kind: fixup_Mips_GOT131# O32-NEXT: addiu $25, $25, %lo(local_label+8)  # encoding: [0x27,0x39,A,A]132# O32-NEXT:                                     #   fixup A - offset: 0, value: %lo(local_label+8), kind: fixup_Mips_LO16133# O32-NOT:  .reloc134 135# ELF-O32:      8f 99 00 00 lw $25, 0($gp)136# ELF-O32-NEXT:                 R_MIPS_GOT16 .text137# ELF-O32-NEXT: 27 39 00 08 addiu $25, $25, 8138# ELF-O32-NEXT:                 R_MIPS_LO16 .text139# ELF-O32-NEXT: 03 20 f8 09 jalr $25140# ELF-O32-NEXT: 00 00 00 00 nop141 142# XO32:      lw $25, %got(local_label+8)($gp)     # encoding: [0x8f,0x99,A,A]143# XO32-NEXT:                                      #   fixup A - offset: 0, value: %got(local_label+8), kind: fixup_Mips_GOT144# XO32-NEXT: addiu $25, $25, %lo(local_label+8)   # encoding: [0x27,0x39,A,A]145# XO32-NEXT:                                      #   fixup A - offset: 0, value: %lo(local_label+8), kind: fixup_Mips_LO16146# XO32-NOT:  .reloc147 148# ELF-XO32:      8f 99 00 00 lw $25, 0($gp)149# ELF-XO32-NEXT:                 R_MIPS_GOT16 .text150# ELF-XO32-NEXT: 27 39 00 08 addiu $25, $25, 8151# ELF-XO32-NEXT:                 R_MIPS_LO16  .text152# ELF-XO32-NEXT: 03 20 f8 09 jalr    $25153# ELF-XO32-NEXT: 00 00 00 00 nop154 155# N32:      lw $25, %got_disp(local_label)($gp)   # encoding: [0x8f,0x99,A,A]156# N32-NEXT:                                       #   fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP157# N32-NEXT: addiu $25, $25, 8                     # encoding: [0x27,0x39,0x00,0x08]158# N32-NEXT: .reloc .Ltmp1, R_MIPS_JALR, local_label159 160# ELF-N32:      8f 99 00 00 lw $25, 0($gp)161# ELF-N32-NEXT:                 R_MIPS_GOT_DISP local_label162# ELF-N32-NEXT: 27 39 00 08 addiu $25, $25, 8163# ELF-N32-NEXT: 03 20 f8 09 jalr $25164# ELF-N32-NEXT:                 R_MIPS_JALR local_label165 166# XN32:      lw $25, %got_disp(local_label)($gp)  # encoding: [0x8f,0x99,A,A]167# XN32-NEXT:                                      #   fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP168# XN32-NEXT: addiu $25, $25, 8                    # encoding: [0x27,0x39,0x00,0x08]169# XN32-NEXT: .reloc .Ltmp1, R_MIPS_JALR, local_label170 171# ELF-XN32:      8f 99 00 00 lw $25, 0($gp)172# ELF-XN32-NEXT:                 R_MIPS_GOT_DISP local_label173# ELF-XN32-NEXT: 27 39 00 08 addiu $25, $25, 8174# ELF-XN32-NEXT: 03 20 f8 09 jalr $25175# ELF-XN32-NEXT:                 R_MIPS_JALR local_label176 177# N64:      ld $25, %got_disp(local_label)($gp)   # encoding: [0xdf,0x99,A,A]178# N64-NEXT:                                       #   fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP179# N64-NEXT: daddiu $25, $25, 8                    # encoding: [0x67,0x39,0x00,0x08]180# N64-NEXT: .reloc .Ltmp1, R_MIPS_JALR, local_label181 182# ELF-N64:      df 99 00 00 ld $25, 0($gp)183# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE local_label184# ELF-N64-NEXT: 67 39 00 08 daddiu $25, $25, 8185# ELF-N64-NEXT: 03 20 f8 09 jalr $25186# ELF-N64-NEXT: R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE local_label187 188# XN64:      ld $25, %got_disp(local_label)($gp)  # encoding: [0xdf,0x99,A,A]189# XN64-NEXT:                                      #   fixup A - offset: 0, value: %got_disp(local_label), kind: fixup_Mips_GOT_DISP190# XN64-NEXT: daddiu $25, $25, 8                   # encoding: [0x67,0x39,0x00,0x08]191# XN64-NEXT: .reloc .Ltmp1, R_MIPS_JALR, local_label192 193# ELF-XN64:      df 99 00 00 ld $25, 0($gp)194# ELF-XN64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE local_label195# ELF-XN64-NEXT: 67 39 00 08 daddiu  $25, $25, 8196# ELF-XN64-NEXT: 03 20 f8 09 jalr $25197# ELF-XN64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE local_label198 199# O32-MM:      lw $25, %got(local_label+8)($gp)   # encoding: [0xff,0x3c,A,A]200# O32-MM-NEXT:                                    #   fixup A - offset: 0, value: %got(local_label+8), kind: fixup_MICROMIPS_GOT16201# O32-MM-NEXT: addiu $25, $25, %lo(local_label+8) # encoding: [0x33,0x39,A,A]202# O32-MM-NEXT:                                    #   fixup A - offset: 0, value: %lo(local_label+8), kind: fixup_MICROMIPS_LO16203# O32-MM-NOT:  .reloc204 205# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]206# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]207# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]208 209  jal weak_label210  nop211 212# Expanding "jal weak_label":213# O32: lw  $25, %call16(weak_label)($gp) # encoding: [0x8f,0x99,A,A]214# O32:                                   #   fixup A - offset: 0, value: %call16(weak_label), kind:   fixup_Mips_CALL16215# O32-NEXT: .reloc $tmp1, R_MIPS_JALR, weak_label216 217# ELF-O32:      8f 99 00 00 lw $25, 0($gp)218# ELF-O32-NEXT:                 R_MIPS_CALL16 weak_label219# ELF-O32-NEXT: 03 20 f8 09 jalr $25220# ELF-O32-NEXT:                 R_MIPS_JALR weak_label221 222# XO32:      lui  $25, %call_hi(weak_label)       # encoding: [0x3c,0x19,A,A]223# XO32-NEXT:                                      #   fixup A - offset: 0, value: %call_hi(weak_label), kind: fixup_Mips_CALL_HI16224# XO32-NEXT: addu $25, $25, $gp                   # encoding: [0x03,0x3c,0xc8,0x21]225# XO32-NEXT: lw   $25, %call_lo(weak_label)($25)  # encoding: [0x8f,0x39,A,A]226# XO32-NEXT:                                      #   fixup A - offset: 0, value: %call_lo(weak_label), kind: fixup_Mips_CALL_LO16227# XO32-NEXT: .reloc $tmp1, R_MIPS_JALR, weak_label228 229# ELF-XO32:      3c 19 00 00 lui $25, 0230# ELF-XO32-MEXT:                  R_MIPS_CALL_HI16 weak_label231# ELF-XO32-MEXT: 03 3c c8 21 addu $25, $25, $gp232# ELF-XO32-MEXT: 8f 39 00 00 lw $25, 0($25)233# ELF-XO32-MEXT:                  R_MIPS_CALL_LO16 weak_label234# ELF-XO32-MEXT: 03 20 f8 09 jalr $25235# ELF-XO32-MEXT:                  R_MIPS_JALR weak_label236 237# N32: lw  $25, %call16(weak_label)($gp) # encoding: [0x8f,0x99,A,A]238# N32:                                   #   fixup A - offset: 0, value: %call16(weak_label), kind:   fixup_Mips_CALL16239# N32-NEXT: .reloc .Ltmp2, R_MIPS_JALR, weak_label240 241# ELF-N32:      8f 99 00 00 lw $25, 0($gp)242# ELF-N32-NEXT:                 R_MIPS_CALL16 weak_label243# ELF-N32-NEXT: 03 20 f8 09 jalr $25244# ELF-N32-NEXT:                 R_MIPS_JALR weak_label245 246# XN32:      lui  $25, %call_hi(weak_label)       # encoding: [0x3c,0x19,A,A]247# XN32-NEXT:                                      #   fixup A - offset: 0, value: %call_hi(weak_label), kind: fixup_Mips_CALL_HI16248# XN32-NEXT: addu $25, $25, $gp                   # encoding: [0x03,0x3c,0xc8,0x21]249# XN32-NEXT: lw   $25, %call_lo(weak_label)($25)  # encoding: [0x8f,0x39,A,A]250# XN32-NEXT:                                      #   fixup A - offset: 0, value: %call_lo(weak_label), kind: fixup_Mips_CALL_LO16251# XN32-NEXT: .reloc .Ltmp2, R_MIPS_JALR, weak_label252 253# ELF-XN32:      3c 19 00 00 lui $25, 0254# ELF-XN32-NEXT:                  R_MIPS_CALL_HI16 weak_label255# ELF-XN32-NEXT: 03 3c c8 21 addu $25, $25, $gp256# ELF-XN32-NEXT: 8f 39 00 00 lw $25, 0($25)257# ELF-XN32-NEXT:                  R_MIPS_CALL_LO16 weak_label258# ELF-XN32-NEXT: 03 20 f8 09 jalr    $25259# ELF-XN32-NEXT:                  R_MIPS_JALR weak_label260 261# N64: ld  $25, %call16(weak_label)($gp) # encoding: [0xdf,0x99,A,A]262# N64:                                   #   fixup A - offset: 0, value: %call16(weak_label), kind:   fixup_Mips_CALL16263# N64-NEXT: .reloc .Ltmp2, R_MIPS_JALR, weak_label264 265# ELF-N64:      df 99 00 00 ld $25, 0($gp)266# ELF-N64-NEXT:                 R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE weak_label267# ELF-N64-NEXT: 03 20 f8 09 jalr $25268# ELF-N64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE weak_label269 270# XN64:      lui   $25, %call_hi(weak_label)      # encoding: [0x3c,0x19,A,A]271# XN64-NEXT:                                      #   fixup A - offset: 0, value: %call_hi(weak_label), kind: fixup_Mips_CALL_HI16272# XN64-NEXT: daddu $25, $25, $gp                  # encoding: [0x03,0x3c,0xc8,0x2d]273# XN64-NEXT: ld    $25, %call_lo(weak_label)($25) # encoding: [0xdf,0x39,A,A]274# XN64-NEXT:                                      #   fixup A - offset: 0, value: %call_lo(weak_label), kind: fixup_Mips_CALL_LO16275# XN64-NEXT: .reloc .Ltmp2, R_MIPS_JALR, weak_label276 277# ELF-XN64:      3c 19 00 00 lui $25, 0278# ELF-XN64-NEXT:                  R_MIPS_CALL_HI16/R_MIPS_NONE/R_MIPS_NONE weak_label279# ELF-XN64-NEXT: 03 3c c8 2d daddu $25, $25, $gp280# ELF-XN64-NEXT: df 39 00 00 ld $25, 0($25)281# ELF-XN64-NEXT:                  R_MIPS_CALL_LO16/R_MIPS_NONE/R_MIPS_NONE weak_label282# ELF-XN64-NEXT: 03 20 f8 09 jalr    $25283# ELF-XN64-NEXT:                  R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE weak_label284 285# O32-MM: lw  $25, %call16(weak_label)($gp) # encoding: [0xff,0x3c,A,A]286# O32-MM:                                   #   fixup A - offset: 0, value: %call16(weak_label), kind:   fixup_MICROMIPS_CALL16287# O32-MM-NEXT: .reloc $tmp1, R_MICROMIPS_JALR, weak_label288 289# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]290# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]291# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]292 293  jal weak_label+8294  nop295 296# O32:      lw  $25, %got(weak_label)($gp)  # encoding: [0x8f,0x99,A,A]297# O32-NEXT:                                 #   fixup A - offset: 0, value: %got(weak_label), kind: fixup_Mips_GOT298# O32-NEXT: addiu $25, $25, 8               # encoding: [0x27,0x39,0x00,0x08]299# O32-NOT:  .reloc300 301# ELF-O32:      8f 99 00 00 lw $25, 0($gp)302# ELF-O32-NEXT:                 R_MIPS_GOT16 weak_label303# ELF-O32-NEXT: 27 39 00 08 addiu $25, $25, 8304# ELF-O32-NEXT: 03 20 f8 09 jalr $25305# ELF-O32-NEXT: 00 00 00 00 nop306 307# XO32:      lui  $25, %got_hi(weak_label+8)    # encoding: [0x3c,0x19,A,A]308# XO32-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(weak_label+8), kind: fixup_Mips_GOT_HI16309# XO32-NEXT: addu $25, $25, $gp                 # encoding: [0x03,0x3c,0xc8,0x21]310# XO32-NEXT: lw   $25, %got_lo(weak_label)($25) # encoding: [0x8f,0x39,A,A]311# XO32-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(weak_label), kind: fixup_Mips_GOT_LO16312# XO32-NEXT: addiu $25, $25, 8                  # encoding: [0x27,0x39,0x00,0x08]313# XO32-NOT:  .reloc314 315# ELF-XO32:      3c 19 00 00 lui $25, 0316# ELF-XO32-NEXT:                  R_MIPS_GOT_HI16 weak_label317# ELF-XO32-NEXT: 03 3c c8 21 addu $25, $25, $gp318# ELF-XO32-NEXT: 8f 39 00 00 lw $25, 0($25)319# ELF-XO32-NEXT:                  R_MIPS_GOT_LO16 weak_label320# ELF-XO32-NEXT: 27 39 00 08 addiu $25, $25, 8321# ELF-XO32-NEXT: 03 20 f8 09 jalr $25322# ELF-XO32-NEXT: 00 00 00 00 nop323 324# N32:      lw  $25, %got_disp(weak_label)($gp) # encoding: [0x8f,0x99,A,A]325# N32-NEXT:                                     #   fixup A - offset: 0, value: %got_disp(weak_label), kind:   fixup_Mips_GOT_DISP326# N32-NEXT: addiu $25, $25, 8                   # encoding: [0x27,0x39,0x00,0x08]327# N32-NEXT: .reloc .Ltmp3, R_MIPS_JALR, weak_label328 329# ELF-N32:      8f 99 00 00 lw $25, 0($gp)330# ELF-N32-NEXT:                 R_MIPS_GOT_DISP weak_label331# ELF-N32-NEXT: 27 39 00 08 addiu $25, $25, 8332# ELF-N32-NEXT: 03 20 f8 09 jalr $25333# ELF-N32-NEXT:                 R_MIPS_JALR weak_label334 335# XN32:      lui  $25, %got_hi(weak_label+8)    # encoding: [0x3c,0x19,A,A]336# XN32-NEXT:                                    #   fixup A - offset: 0, value: %got_hi(weak_label+8), kind: fixup_Mips_GOT_HI16337# XN32-NEXT: addu $25, $25, $gp                 # encoding: [0x03,0x3c,0xc8,0x21]338# XN32-NEXT: lw   $25, %got_lo(weak_label)($25) # encoding: [0x8f,0x39,A,A]339# XN32-NEXT:                                    #   fixup A - offset: 0, value: %got_lo(weak_label), kind: fixup_Mips_GOT_LO16340# XN32-NEXT: addiu $25, $25, 8                  # encoding: [0x27,0x39,0x00,0x08]341# XN32-NEXT: .reloc .Ltmp3, R_MIPS_JALR, weak_label342 343# ELF-XN32:      3c 19 00 00 lui $25, 0344# ELF-XN32-NEXT:                  R_MIPS_GOT_HI16 weak_label+0x8345# ELF-XN32-NEXT: 03 3c c8 21 addu $25, $25, $gp346# ELF-XN32-NEXT: 8f 39 00 00 lw $25, 0($25)347# ELF-XN32-NEXT:                  R_MIPS_GOT_LO16 weak_label348# ELF-XN32-NEXT: 27 39 00 08 addiu $25, $25, 8349# ELF-XN32-NEXT: 03 20 f8 09 jalr $25350# ELF-XN32-NEXT:                  R_MIPS_JALR weak_label351 352# N64:      ld  $25, %got_disp(weak_label)($gp) # encoding: [0xdf,0x99,A,A]353# N64:                                          #   fixup A - offset: 0, value: %got_disp(weak_label), kind:   fixup_Mips_GOT_DISP354# N64-NEXT: daddiu $25, $25, 8                  # encoding: [0x67,0x39,0x00,0x08]355# N64-NEXT: .reloc .Ltmp3, R_MIPS_JALR, weak_label356 357# ELF-N64:      df 99 00 00 ld $25, 0($gp)358# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE weak_label359# ELF-N64-NEXT: 67 39 00 08 daddiu $25, $25, 8360# ELF-N64-NEXT: 03 20 f8 09 jalr $25361# ELF-N64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE weak_label362 363# XN64:      lui   $25, %got_hi(weak_label+8)     # encoding: [0x3c,0x19,A,A]364# XN64-NEXT:                                      #   fixup A - offset: 0, value: %got_hi(weak_label+8), kind: fixup_Mips_GOT_HI16365# XN64-NEXT: daddu $25, $25, $gp                  # encoding: [0x03,0x3c,0xc8,0x2d]366# XN64-NEXT: ld    $25, %got_lo(weak_label)($25)  # encoding: [0xdf,0x39,A,A]367# XN64-NEXT:                                      #   fixup A - offset: 0, value: %got_lo(weak_label), kind: fixup_Mips_GOT_LO16368# XN64-NEXT: daddiu $25, $25, 8                   # encoding: [0x67,0x39,0x00,0x08]369# XN64-NEXT: .reloc .Ltmp3, R_MIPS_JALR, weak_label370 371# ELF-XN64:      3c 19 00 00 lui $25, 0372# ELF-XN64-NEXT:                  R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE weak_label+0x8373# ELF-XN64-NEXT: 03 3c c8 2d daddu $25, $25, $gp374# ELF-XN64-NEXT: df 39 00 00 ld $25, 0($25)375# ELF-XN64-NEXT:                  R_MIPS_GOT_LO16/R_MIPS_NONE/R_MIPS_NONE weak_label376# ELF-XN64-NEXT: 67 39 00 08 daddiu $25, $25, 8377# ELF-XN64-NEXT: 03 20 f8 09 jalr $25378# ELF-XN64-NEXT:                  R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE weak_label379 380# O32-MM:      lw  $25, %got(weak_label)($gp)     # encoding: [0xff,0x3c,A,A]381# O32-MM-NEXT:                                    #   fixup A - offset: 0, value: %got(weak_label), kind:   fixup_MICROMIPS_GOT16382# O32-MM-NEXT: addiu $25, $25, 8                  # encoding: [0x33,0x39,0x00,0x08]383# O32-MM-NOT:  .reloc384 385# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]386# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]387# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]388 389  jal global_label390  nop391 392# Expanding "jal global_label":393# O32: lw  $25, %call16(global_label)($gp)  # encoding: [0x8f,0x99,A,A]394# O32-NEXT:                                 #   fixup A - offset: 0, value: %call16(global_label), kind: fixup_Mips_CALL16395# O32-NEXT: .reloc $tmp2, R_MIPS_JALR, global_label396 397# ELF-O32:      8f 99 00 00 lw $25, 0($gp)398# ELF-O32-NEXT:                 R_MIPS_CALL16 global_label399# ELF-O32-NEXT: 03 20 f8 09 jalr $25400# ELF-O32-NEXT:                 R_MIPS_JALR global_label401 402# XO32:      lui  $25, %call_hi(global_label)       # encoding: [0x3c,0x19,A,A]403# XO32-NEXT:                                        #   fixup A - offset: 0, value: %call_hi(global_label), kind: fixup_Mips_CALL_HI16404# XO32-NEXT: addu $25, $25, $gp                     # encoding: [0x03,0x3c,0xc8,0x21]405# XO32-NEXT: lw   $25, %call_lo(global_label)($25)  # encoding: [0x8f,0x39,A,A]406# XO32-NEXT:                                        #   fixup A - offset: 0, value: %call_lo(global_label), kind: fixup_Mips_CALL_LO16407# XO32-NEXT: .reloc $tmp2, R_MIPS_JALR, global_label408 409# ELF-XO32:      3c 19 00 00 lui $25, 0410# ELF-XO32-NEXT:                  R_MIPS_CALL_HI16 global_label411# ELF-XO32-NEXT: 03 3c c8 21 addu $25, $25, $gp412# ELF-XO32-NEXT: 8f 39 00 00 lw $25, 0($25)413# ELF-XO32-NEXT:                  R_MIPS_CALL_LO16 global_label414# ELF-XO32-NEXT: 03 20 f8 09 jalr $25415# ELF-XO32-NEXT:                  R_MIPS_JALR global_label416 417# N32: lw  $25, %call16(global_label)($gp)  # encoding: [0x8f,0x99,A,A]418# N32-NEXT:                                 #   fixup A - offset: 0, value: %call16(global_label), kind: fixup_Mips_CALL16419# N32-NEXT: .reloc .Ltmp4, R_MIPS_JALR, global_label420 421# ELF-N32:      8f 99 00 00 lw $25, 0($gp)422# ELF-N32-NEXT:                 R_MIPS_CALL16 global_label423# ELF-N32-NEXT: 03 20 f8 09 jalr $25424# ELF-N32-NEXT:                 R_MIPS_JALR global_label425 426# XN32:      lui  $25, %call_hi(global_label)       # encoding: [0x3c,0x19,A,A]427# XN32-NEXT:                                        #   fixup A - offset: 0, value: %call_hi(global_label), kind: fixup_Mips_CALL_HI16428# XN32-NEXT: addu $25, $25, $gp                     # encoding: [0x03,0x3c,0xc8,0x21]429# XN32-NEXT: lw   $25, %call_lo(global_label)($25)  # encoding: [0x8f,0x39,A,A]430# XN32-NEXT:                                        #   fixup A - offset: 0, value: %call_lo(global_label), kind: fixup_Mips_CALL_LO16431# XN32-NEXT: .reloc .Ltmp4, R_MIPS_JALR, global_label432 433# ELF-XN32:      3c 19 00 00 lui $25, 0434# ELF-XN32-NEXT:                  R_MIPS_CALL_HI16 global_label435# ELF-XN32-NEXT: 03 3c c8 21 addu $25, $25, $gp436# ELF-XN32-NEXT: 8f 39 00 00 lw $25, 0($25)437# ELF-XN32-NEXT:                  R_MIPS_CALL_LO16 global_label438# ELF-XN32-NEXT: 03 20 f8 09 jalr $25439# ELF-XN32-NEXT:                  R_MIPS_JALR global_label440 441# N64: ld  $25, %call16(global_label)($gp)  # encoding: [0xdf,0x99,A,A]442# N64-NEXT:                                 #   fixup A - offset: 0, value: %call16(global_label), kind: fixup_Mips_CALL16443# N64-NEXT: .reloc .Ltmp4, R_MIPS_JALR, global_label444 445# ELF-N64:      df 99 00 00 ld $25, 0($gp)446# ELF-N64-NEXT:                 R_MIPS_CALL16/R_MIPS_NONE/R_MIPS_NONE global_label447# ELF-N64-NEXT: 03 20 f8 09 jalr $25448# ELF-N64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE global_label449 450# XN64:      lui   $25, %call_hi(global_label)      # encoding: [0x3c,0x19,A,A]451# XN64-NEXT:                                        #   fixup A - offset: 0, value: %call_hi(global_label), kind: fixup_Mips_CALL_HI16452# XN64-NEXT: daddu $25, $25, $gp                    # encoding: [0x03,0x3c,0xc8,0x2d]453# XN64-NEXT: ld    $25, %call_lo(global_label)($25) # encoding: [0xdf,0x39,A,A]454# XN64-NEXT:                                        #   fixup A - offset: 0, value: %call_lo(global_label), kind: fixup_Mips_CALL_LO16455# XN64-NEXT: .reloc .Ltmp4, R_MIPS_JALR, global_label456 457# ELF-XN64:      3c 19 00 00 lui $25, 0458# ELF-XN64-NEXT:                  R_MIPS_CALL_HI16/R_MIPS_NONE/R_MIPS_NONE global_label459# ELF-XN64-NEXT: 03 3c c8 2d daddu $25, $25, $gp460# ELF-XN64-NEXT: df 39 00 00 ld $25, 0($25)461# ELF-XN64-NEXT:                  R_MIPS_CALL_LO16/R_MIPS_NONE/R_MIPS_NONE global_label462# ELF-XN64-NEXT: 03 20 f8 09 jalr $25463# ELF-XN64-NEXT:                  R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE global_label464 465# O32-MM: lw  $25, %call16(global_label)($gp) # encoding: [0xff,0x3c,A,A]466# O32-MM-NEXT:                                #   fixup A - offset: 0, value: %call16(global_label), kind: fixup_MICROMIPS_CALL16467# O32-MM-NEXT: .reloc $tmp2, R_MICROMIPS_JALR, global_label468 469# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]470# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]471# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]472 473  jal global_label+8474  nop475 476# O32:      lw  $25, %got(global_label)($gp)  # encoding: [0x8f,0x99,A,A]477# O32-NEXT:                                   #   fixup A - offset: 0, value: %got(global_label), kind: fixup_Mips_GOT478# O32-NEXT: addiu $25, $25, 8                 # encoding: [0x27,0x39,0x00,0x08]479# O32-NOT:  .reloc480 481# ELF-O32:      8f 99 00 00 lw $25, 0($gp)482# ELF-O32-NEXT:                 R_MIPS_GOT16 global_label483# ELF-O32-NEXT: 27 39 00 08 addiu $25, $25, 8484# ELF-O32-NEXT: 03 20 f8 09 jalr $25485# ELF-O32-NEXT: 00 00 00 00 nop486 487# XO32:      lui  $25, %got_hi(global_label+8)    # encoding: [0x3c,0x19,A,A]488# XO32-NEXT:                                      #   fixup A - offset: 0, value: %got_hi(global_label+8), kind: fixup_Mips_GOT_HI16489# XO32-NEXT: addu $25, $25, $gp                   # encoding: [0x03,0x3c,0xc8,0x21]490# XO32-NEXT: lw   $25, %got_lo(global_label)($25) # encoding: [0x8f,0x39,A,A]491# XO32-NEXT:                                      #   fixup A - offset: 0, value: %got_lo(global_label), kind: fixup_Mips_GOT_LO16492# XO32-NEXT: addiu $25, $25, 8                    # encoding: [0x27,0x39,0x00,0x08]493# XO32-NOT:  .reloc494 495# ELF-XO32:      3c 19 00 00 lui $25, 0496# ELF-XO32-NEXT:                  R_MIPS_GOT_HI16 global_label497# ELF-XO32-NEXT: 03 3c c8 21 addu $25, $25, $gp498# ELF-XO32-NEXT: 8f 39 00 00 lw $25, 0($25)499# ELF-XO32-NEXT:                  R_MIPS_GOT_LO16 global_label500# ELF-XO32-NEXT: 27 39 00 08 addiu $25, $25, 8501# ELF-XO32-NEXT: 03 20 f8 09 jalr $25502# ELF-XO32-NEXT: 00 00 00 00 nop503 504# N32:      lw  $25, %got_disp(global_label)($gp) # encoding: [0x8f,0x99,A,A]505# N32-NEXT:                                       #   fixup A - offset: 0, value: %got_disp(global_label), kind: fixup_Mips_GOT_DISP506# N32-NEXT: addiu $25, $25, 8                     # encoding: [0x27,0x39,0x00,0x08]507# N32-NEXT: .reloc .Ltmp5, R_MIPS_JALR, global_label508 509# ELF-N32:      8f 99 00 00 lw $25, 0($gp)510# ELF-N32-NEXT:                 R_MIPS_GOT_DISP global_label511# ELF-N32-NEXT: 27 39 00 08 addiu $25, $25, 8512# ELF-N32-NEXT: 03 20 f8 09 jalr $25513# ELF-N32-NEXT:                 R_MIPS_JALR global_label514 515# XN32:      lui  $25, %got_hi(global_label+8)    # encoding: [0x3c,0x19,A,A]516# XN32-NEXT:                                      #   fixup A - offset: 0, value: %got_hi(global_label+8), kind: fixup_Mips_GOT_HI16517# XN32-NEXT: addu $25, $25, $gp                   # encoding: [0x03,0x3c,0xc8,0x21]518# XN32-NEXT: lw   $25, %got_lo(global_label)($25) # encoding: [0x8f,0x39,A,A]519# XN32-NEXT:                                      #   fixup A - offset: 0, value: %got_lo(global_label), kind: fixup_Mips_GOT_LO16520# XN32-NEXT: addiu $25, $25, 8                    # encoding: [0x27,0x39,0x00,0x08]521# XN32-NEXT: .reloc .Ltmp5, R_MIPS_JALR, global_label522 523# ELF-XN32:      3c 19 00 00 lui $25, 0524# ELF-XN32-NEXT:                  R_MIPS_GOT_HI16 global_label+0x8525# ELF-XN32-NEXT: 03 3c c8 21 addu $25, $25, $gp526# ELF-XN32-NEXT: 8f 39 00 00 lw $25, 0($25)527# ELF-XN32-NEXT:                  R_MIPS_GOT_LO16 global_label528# ELF-XN32-NEXT: 27 39 00 08 addiu $25, $25, 8529# ELF-XN32-NEXT: 03 20 f8 09 jalr $25530# ELF-XN32-NEXT:                  R_MIPS_JALR global_label531 532# N64:      ld  $25, %got_disp(global_label)($gp) # encoding: [0xdf,0x99,A,A]533# N64-NEXT:                                       #   fixup A - offset: 0, value: %got_disp(global_label), kind: fixup_Mips_GOT_DISP534# N64-NEXT: daddiu $25, $25, 8                    # encoding: [0x67,0x39,0x00,0x08]535# N64-NEXT: .reloc .Ltmp5, R_MIPS_JALR, global_label536 537# ELF-N64:      df 99 00 00 ld $25, 0($gp)538# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE global_label539# ELF-N64-NEXT: 67 39 00 08 daddiu $25, $25, 8540# ELF-N64-NEXT: 03 20 f8 09 jalr $25541# ELF-N64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE global_label542 543# XN64:      lui   $25, %got_hi(global_label+8)     # encoding: [0x3c,0x19,A,A]544# XN64-NEXT:                                        #   fixup A - offset: 0, value: %got_hi(global_label+8), kind: fixup_Mips_GOT_HI16545# XN64-NEXT: daddu $25, $25, $gp                    # encoding: [0x03,0x3c,0xc8,0x2d]546# XN64-NEXT: ld    $25, %got_lo(global_label)($25)  # encoding: [0xdf,0x39,A,A]547# XN64-NEXT:                                        #   fixup A - offset: 0, value: %got_lo(global_label), kind: fixup_Mips_GOT_LO16548# XN64-NEXT: daddiu $25, $25, 8                     # encoding: [0x67,0x39,0x00,0x08]549# XN64-NEXT: .reloc .Ltmp5, R_MIPS_JALR, global_label550 551# ELF-XN64:      3c 19 00 00 lui $25, 0552# ELF-XN64-NEXT:                  R_MIPS_GOT_HI16/R_MIPS_NONE/R_MIPS_NONE global_label+0x8553# ELF-XN64-NEXT: 03 3c c8 2d daddu $25, $25, $gp554# ELF-XN64-NEXT: df 39 00 00 ld $25, 0($25)555# ELF-XN64-NEXT:                  R_MIPS_GOT_LO16/R_MIPS_NONE/R_MIPS_NONE global_label556# ELF-XN64-NEXT: 67 39 00 08 daddiu $25, $25, 8557# ELF-XN64-NEXT: 03 20 f8 09 jalr $25558# ELF-XN64-NEXT:                  R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE global_label559 560# O32-MM:      lw  $25, %got(global_label)($gp) # encoding: [0xff,0x3c,A,A]561# O32-MM-NEXT:                                  #   fixup A - offset: 0, value: %got(global_label), kind: fixup_MICROMIPS_GOT16562# O32-MM-NEXT: addiu $25, $25, 8                # encoding: [0x33,0x39,0x00,0x08]563# O32-MM-NOT:  .reloc564 565# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]566# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]567# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]568 569  jal .text570  nop571 572# Expanding "jal .text":573# O32: lw  $25, %got(.text)($gp)  # encoding: [0x8f,0x99,A,A]574# O32-NEXT:                       #   fixup A - offset: 0, value: %got(.text), kind: fixup_Mips_GOT575 576# ELF-O32:      8f 99 00 00 lw $25, 0($gp)577# ELF-O32-NEXT:                 R_MIPS_GOT16 .text578 579# XO32:      lw    $25, %got(.text)($gp)  # encoding: [0x8f,0x99,A,A]580# XO32-NEXT:                              #   fixup A - offset: 0, value: %got(.text), kind: fixup_Mips_GOT581# XO32-NEXT: addiu $25, $25, %lo(.text)   # encoding: [0x27,0x39,A,A]582# XO32-NEXT:                              #   fixup A - offset: 0, value: %lo(.text), kind: fixup_Mips_LO16583# XO32-NEXT: .reloc $tmp3, R_MIPS_JALR, .text584 585# ELF-XO32:      8f 99 00 00 lw $25, 0($gp)586# ELF-XO32-NEXT:                 R_MIPS_GOT16 .text587# ELF-XO32-NEXT: 27 39 00 00 addiu $25, $25, 0588# ELF-XO32-NEXT:                 R_MIPS_LO16  .text589# ELF-XO32-NEXT: 03 20 f8 09 jalr $25590# ELF-XO32-NEXT:                 R_MIPS_JALR  .text591 592# N32: lw  $25, %got_disp(.text)($gp) # encoding: [0x8f,0x99,A,A]593# N32-NEXT:                           #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP594 595# ELF-N32:      8f 99 00 00 lw $25, 0($gp)596# ELF-N32-NEXT:                 R_MIPS_GOT_DISP .text597 598# XN32:      lw $25, %got_disp(.text)($gp)  # encoding: [0x8f,0x99,A,A]599# XN32-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP600# XN32-NEXT: .reloc .Ltmp6, R_MIPS_JALR, .text601 602# ELF-XN32:      8f 99 00 00 lw $25, 0($gp)603# ELF-XN32-NEXT:                 R_MIPS_GOT_DISP .text604# ELF-XN32-NEXT: 03 20 f8 09 jalr $25605# ELF-XN32-NEXT:                 R_MIPS_JALR .text606 607# N64: ld  $25, %got_disp(.text)($gp) # encoding: [0xdf,0x99,A,A]608# N64-NEXT:                           #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP609 610# ELF-N64:      df 99 00 00 ld $25, 0($gp)611# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE  .text612 613# XN64:      ld $25, %got_disp(.text)($gp)  # encoding: [0xdf,0x99,A,A]614# XN64-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP615# XN64-NEXT: .reloc .Ltmp6, R_MIPS_JALR, .text616 617# ELF-XN64:      df 99 00 00 ld $25, 0($gp)618# ELF-XN64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE .text619# ELF-XN64-NEXT: 03 20 f8 09 jalr $25620# ELF-XN64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE .text621 622# O32-MM: lw    $25, %got(.text)($gp)      # encoding: [0xff,0x3c,A,A]623# O32-MM-NEXT:                                  #   fixup A - offset: 0, value: %got(.text), kind: fixup_MICROMIPS_GOT16624# O32-MM-NEXT: addiu $25, $25, %lo(.text)       # encoding: [0x33,0x39,A,A]625# O32-MM-NEXT:                                  #   fixup A - offset: 0, value: %lo(.text), kind: fixup_MICROMIPS_LO16626# O42-MM-NEXT: .reloc $tmp3, R_MICROMIPS_JALR, .text627 628# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]629# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]630# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]631 632  jal .text+8633  nop634 635# O32:      lw  $25, %got(.text+8)($gp) # encoding: [0x8f,0x99,A,A]636# O32-NEXT:                             #   fixup A - offset: 0, value: %got(.text+8), kind: fixup_Mips_GOT637 638# ELF-O32:      8f 99 00 00 lw $25, 0($gp)639# ELF-O32-NEXT:                 R_MIPS_GOT16 .text640 641# XO32:      lw    $25, %got(.text+8)($gp)  # encoding: [0x8f,0x99,A,A]642# XO32-NEXT:                                #   fixup A - offset: 0, value: %got(.text+8), kind: fixup_Mips_GOT643# XO32-NEXT: addiu $25, $25, %lo(.text+8)   # encoding: [0x27,0x39,A,A]644# XO32-NEXT:                                #   fixup A - offset: 0, value: %lo(.text+8), kind: fixup_Mips_LO16645# XO32-NOT:  .reloc646 647# ELF-XO32:      8f 99 00 00 lw $25, 0($gp)648# ELF-XO32-NEXT:                 R_MIPS_GOT16 .text649# ELF-XO32-NEXT: 27 39 00 08 addiu $25, $25, 8650# ELF-XO32-NEXT:                 R_MIPS_LO16  .text651# ELF-XO32-NEXT: 03 20 f8 09 jalr $25652# ELF-XO32-NEXT: 00 00 00 00 nop653 654# N32:      lw  $25, %got_disp(.text)($gp)  # encoding: [0x8f,0x99,A,A]655# N32-NEXT:                                 #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP656 657# ELF-N32:      8f 99 00 00 lw $25, 0($gp)658# ELF-N32-NEXT:                 R_MIPS_GOT_DISP .text659 660# XN32:      lw $25, %got_disp(.text)($gp)  # encoding: [0x8f,0x99,A,A]661# XN32-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP662# XN32-NEXT: addiu $25, $25, 8              # encoding: [0x27,0x39,0x00,0x08]663# XN32-NEXT: .reloc .Ltmp7, R_MIPS_JALR, .text664 665# ELF-XN32:      8f 99 00 00 lw $25, 0($gp)666# ELF-XN32-NEXT:                 R_MIPS_GOT_DISP .text667# ELF-XN32-NEXT: 27 39 00 08 addiu $25, $25, 8668# ELF-XN32-NEXT: 03 20 f8 09 jalr $25669# ELF-XN32-NEXT:                 R_MIPS_JALR .text670 671# N64:      ld  $25, %got_disp(.text)($gp)  # encoding: [0xdf,0x99,A,A]672# N64-NEXT:                                 #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP673 674# ELF-N64:      df 99 00 00 ld $25, 0($gp)675# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE  .text676 677# XN64:      ld $25, %got_disp(.text)($gp)  # encoding: [0xdf,0x99,A,A]678# XN64-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.text), kind: fixup_Mips_GOT_DISP679# XN64-NEXT: daddiu $25, $25, 8             # encoding: [0x67,0x39,0x00,0x08]680# XN64-NEXT: .reloc .Ltmp7, R_MIPS_JALR, .text681 682# ELF-XN64:      df 99 00 00 ld $25, 0($gp)683# ELF-XN64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE .text684# ELF-XN64-NEXT: 67 39 00 08 daddiu $25, $25, 8685# ELF-XN64-NEXT: 03 20 f8 09 jalr $25686# ELF-XN64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE .text687 688# O32-MM:      lw    $25, %got(.text+8)($gp)  # encoding: [0xff,0x3c,A,A]689# O32-MM-NEXT:                                #   fixup A - offset: 0, value: %got(.text+8), kind: fixup_MICROMIPS_GOT16690# O32-MM-NEXT: addiu $25, $25, %lo(.text+8)   # encoding: [0x33,0x39,A,A]691# O32-MM-NEXT:                                #   fixup A - offset: 0, value: %lo(.text+8), kind: fixup_MICROMIPS_LO16692# O42-MM-NEXT: .reloc $tmp4, R_MICROMIPS_JALR, .text693 694# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]695# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]696# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]697 698  # local labels ($tmp symbols)699  jal 1f700  nop701 702# Expanding "jal 1f":703# O32:      lw     $25, %got($tmp4)($gp)  # encoding: [0x8f,0x99,A,A]704# O32-NEXT:                               #   fixup A - offset: 0, value: %got($tmp4), kind: fixup_Mips_GOT705# O32-NEXT: addiu  $25, $25, %lo($tmp4)   # encoding: [0x27,0x39,A,A]706# O32-NEXT:                               #   fixup A - offset: 0, value: %lo($tmp4), kind: fixup_Mips_LO16707# O32-NEXT: .reloc $tmp5, R_MIPS_JALR, $tmp4708 709# ELF-O32:      8f 99 00 00 lw $25, 0($gp)710# ELF-O32-NEXT:                 R_MIPS_GOT16 .text711# ELF-O32-NEXT: 27 39 00 b8 addiu $25, $25, 184712# ELF-O32-NEXT:                 R_MIPS_LO16 .text713# ELF-O32-NEXT: 03 20 f8 09 jalr $25714# ELF-O32-NEXT:                 R_MIPS_JALR $tmp0715 716# XO32:      lw    $25, %got($tmp4)($gp)  # encoding: [0x8f,0x99,A,A]717# XO32-NEXT:                              #   fixup A - offset: 0, value: %got($tmp4), kind: fixup_Mips_GOT718# XO32-NEXT: addiu $25, $25, %lo($tmp4)   # encoding: [0x27,0x39,A,A]719# XO32-NEXT:                              #   fixup A - offset: 0, value: %lo($tmp4), kind: fixup_Mips_LO16720# XO32-NEXT: .reloc $tmp5, R_MIPS_JALR, $tmp4721 722# ELF-XO32:      8f 99 00 00 lw $25, 0($gp)723# ELF-XO32-NEXT:                 R_MIPS_GOT16 .text724# ELF-XO32-NEXT: 27 39 00 d8 addiu   $25, $25, 216725# ELF-XO32-NEXT:                 R_MIPS_LO16  .text726# ELF-XO32-NEXT: 03 20 f8 09 jalr    $25727# ELF-XO32-NEXT:                 R_MIPS_JALR  $tmp0728 729# N32: lw  $25, %got_disp(.Ltmp8)($gp)  # encoding: [0x8f,0x99,A,A]730# N32-NEXT:                                  #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP731 732# ELF-N32:      8f 99 00 00 lw $25, 0($gp)733# ELF-N32-NEXT:                 R_MIPS_GOT_DISP .Ltmp0734 735# XN32:      lw $25, %got_disp(.Ltmp8)($gp) # encoding: [0x8f,0x99,A,A]736# XN32-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP737# XN32-NEXT: .reloc .Ltmp9, R_MIPS_JALR, .Ltmp8738 739# ELF-XN32:      8f 99 00 00 lw $25, 0($gp)740# ELF-XN32-NEXT:                 R_MIPS_GOT_DISP .Ltmp0741# ELF-XN32-NEXT: 03 20 f8 09 jalr $25742# ELF-XN32-NEXT:                 R_MIPS_JALR .Ltmp0743 744# N64: ld  $25, %got_disp(.Ltmp8)($gp)  # encoding: [0xdf,0x99,A,A]745# N64-NEXT:                             #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP746 747# ELF-N64:      df 99 00 00 ld $25, 0($gp)748# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE .Ltmp0749 750# XN64:      ld $25, %got_disp(.Ltmp8)($gp) # encoding: [0xdf,0x99,A,A]751# XN64-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP752# XN64-NEXT: .reloc .Ltmp9, R_MIPS_JALR, .Ltmp8753 754# ELF-XN64:      df 99 00 00 ld $25, 0($gp)755# ELF-XN64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE .Ltmp0756# ELF-XN64-NEXT: 03 20 f8 09 jalr $25757# ELF-XN64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE .Ltmp0758 759# O32-MM: lw    $25, %got($tmp4)($gp)     # encoding: [0xff,0x3c,A,A]760# O32-MM-NEXT:                            #   fixup A - offset: 0, value: %got($tmp4), kind: fixup_MICROMIPS_GOT16761# O32-MM-NEXT: addiu $25, $25, %lo($tmp4) # encoding: [0x33,0x39,A,A]762# O32-MM-NEXT:                            #   fixup A - offset: 0, value: %lo($tmp4), kind: fixup_MICROMIPS_LO16763# O32-MM-NEXT: .reloc $tmp5, R_MICROMIPS_JALR, $tmp4764 765# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]766# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]767# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]768 769  jal 1f+8770  nop771 772# O32:      lw     $25, %got($tmp4+8)($gp)  # encoding: [0x8f,0x99,A,A]773# O32-NEXT:                                   #   fixup A - offset: 0, value: %got($tmp4+8), kind: fixup_Mips_GOT774# O32-NEXT: addiu  $25, $25, %lo($tmp4+8)   # encoding: [0x27,0x39,A,A]775# O32-NEXT:                                   #   fixup A - offset: 0, value: %lo($tmp4+8), kind: fixup_Mips_LO16776# O32-NOT:  .reloc777 778# ELF-O32:      8f 99 00 00 lw $25, 0($gp)779# ELF-O32-NEXT:                 R_MIPS_GOT16 .text780# ELF-O32-NEXT: 27 39 00 c0 addiu $25, $25, 192781# ELF-O32-NEXT:                 R_MIPS_LO16 .text782# ELF-O32-NEXT: 03 20 f8 09 jalr $25783# ELF-O32-NEXT: 00 00 00 00 nop784 785# XO32:      lw    $25, %got($tmp4+8)($gp)  # encoding: [0x8f,0x99,A,A]786# XO32-NEXT:                                  #   fixup A - offset: 0, value: %got($tmp4+8), kind: fixup_Mips_GOT787# XO32-NEXT: addiu $25, $25, %lo($tmp4+8)   # encoding: [0x27,0x39,A,A]788# XO32-NEXT:                                  #   fixup A - offset: 0, value: %lo($tmp4+8), kind: fixup_Mips_LO16789# XO32-NOT:  .reloc790 791# ELF-XO32:      8f 99 00 00 lw $25, 0($gp)792# ELF-XO32-NEXT:                 R_MIPS_GOT16 .text793# ELF-XO32-NEXT: 27 39 00 e0 addiu $25, $25, 224794# ELF-XO32-NEXT:                 R_MIPS_LO16  .text795# ELF-XO32-NEXT: 03 20 f8 09 jalr $25796# ELF-XO32-NEXT: 00 00 00 00 nop797 798# N32:      lw  $25, %got_disp(.Ltmp8)($gp)   # encoding: [0x8f,0x99,A,A]799# N32-NEXT:                                   #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP800 801# ELF-N32:      8f 99 00 00 lw $25, 0($gp)802# ELF-N32-NEXT:                 R_MIPS_GOT_DISP .Ltmp0803 804# XN32:      lw $25, %got_disp(.Ltmp8)($gp) # encoding: [0x8f,0x99,A,A]805# XN32-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP806# XN32-NEXT: addiu $25, $25, 8              # encoding: [0x27,0x39,0x00,0x08]807# XN32-NEXT: .reloc .Ltmp10, R_MIPS_JALR, .Ltmp8808 809# ELF-XN32:      8f 99 00 00 lw $25, 0($gp)810# ELF-XN32-NEXT:                 R_MIPS_GOT_DISP .Ltmp0811# ELF-XN32-NEXT: 27 39 00 08 addiu $25, $25, 8812# ELF-XN32-NEXT: 03 20 f8 09 jalr $25813# ELF-XN32-NEXT:                 R_MIPS_JALR .Ltmp0814 815# N64:     ld  $25, %got_disp(.Ltmp8)($gp)  # encoding: [0xdf,0x99,A,A]816# N64-NEXT:                                 #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP817 818# ELF-N64:      df 99 00 00 ld $25, 0($gp)819# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE .Ltmp0820 821# XN64:      ld $25, %got_disp(.Ltmp8)($gp) # encoding: [0xdf,0x99,A,A]822# XN64-NEXT:                                #   fixup A - offset: 0, value: %got_disp(.Ltmp8), kind: fixup_Mips_GOT_DISP823# XN64-NEXT: daddiu $25, $25, 8             # encoding: [0x67,0x39,0x00,0x08]824# XN64-NEXT: .reloc .Ltmp10, R_MIPS_JALR, .Ltmp8825 826# ELF-XN64:      df 99 00 00 ld $25, 0($gp)827# ELF-XN64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE .Ltmp0828# ELF-XN64-NEXT: 67 39 00 08 daddiu $25, $25, 8829# ELF-XN64-NEXT: 03 20 f8 09 jalr $25830# ELF-XN64-NEXT:                 R_MIPS_JALR/R_MIPS_NONE/R_MIPS_NONE .Ltmp0831 832# O32-MM:      lw    $25, %got($tmp4+8)($gp)  # encoding: [0xff,0x3c,A,A]833# O32-MM-NEXT:                                  #   fixup A - offset: 0, value: %got($tmp4+8), kind: fixup_MICROMIPS_GOT16834# O32-MM-NEXT: addiu $25, $25, %lo($tmp4+8)   # encoding: [0x33,0x39,A,A]835# O32-MM-NEXT:                                  #   fixup A - offset: 0, value: %lo($tmp4+8), kind: fixup_MICROMIPS_LO16836# O32-MM-NOT:  .reloc837 838# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]839# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]840# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]841 842  .local forward_local843  jal forward_local844  nop845 846# Expanding "jal forward_local":847# O32-FIXME: lw     $25, %got(forward_local)($gp)                    # encoding: [0x8f,0x99,A,A]848# O32-FIXME:                                                         #   fixup A - offset: 0, value: %got(forward_local), kind:   fixup_Mips_GOT849# O32-FIXME: addiu  $25, $25, %lo(forward_local)                     # encoding: [0x27,0x39,A,A]850# O32-FIXME::                                                         #   fixup A - offset: 0, value: %lo(forward_local), kind:   fixup_Mips_LO16851# O32-FIXME: .reloc $tmp6, R_MIPS_JALR, forward_local852 853# ELF-O32:      8f 99 00 00 lw $25, 0($gp)854# ELF-O32-NEXT:                 R_MIPS_GOT16 .text855# ELF-O32-NEXT: 27 39 00 c4 addiu $25, $25, 196856# ELF-O32-NEXT:                 R_MIPS_LO16 .text857# ELF-O32-NEXT: 03 20 f8 09 jalr $25858# ELF-O32-NEXT:                 R_MIPS_JALR forward_local859 860# N32-FIXME: lw  $25, %got_disp(forward_local)($gp)            # encoding: [0x8f,0x99,A,A]861# N32-FIXME:                                                   #   fixup A - offset: 0, value: %got_disp(forward_local), kind:   fixup_Mips_GOT_DISP862 863# ELF-N32:      8f 99 00 00 lw $25, 0($gp)864# ELF-N32-NEXT:                 R_MIPS_GOT_DISP forward_local865 866# N64-FIXME: ld  $25, %got_disp(forward_local)($gp)            # encoding: [0xdf,0x99,A,A]867# N64-FIXME:                                                   #   fixup A - offset: 0, value: %got_disp(forward_local), kind:   fixup_Mips_GOT_DISP868 869# ELF-N64:      df 99 00 00 ld $25, 0($gp)870# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE forward_local871 872# O32-MM-FIXME: lw    $25, %got(forward_local)($gp)            # encoding: [0xff,0x3c,A,A]873# O32-MM-FIXME:                                                #   fixup A - offset: 0, value: %got(forward_local), kind:   fixup_MICROMIPS_GOT16874# O32-MM-FIXME: addiu $25, $25, %lo(forward_local)             # encoding: [0x33,0x39,A,A]875# O32-MM-FIXME:                                                #   fixup A - offset: 0, value: %lo(forward_local), kind:   fixup_MICROMIPS_LO16876# O32-MM-FIXME: .reloc $tmp6, R_MIPS_JALR, forward_local877 878# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]879# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]880# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]881 882  .local forward_local883  jal forward_local+8884  nop885 886# O32-FIXME: lw     $25, %got(forward_local+8)($gp) # encoding: [0x8f,0x99,A,A]887# O32-FIXME:                                        #   fixup A - offset: 0, value: %got(forward_local+8), kind:   fixup_Mips_GOT888# O32-FIXME: addiu  $25, $25, %lo(forward_local+8)  # encoding: [0x27,0x39,A,A]889# O32-FIXME::                                       #   fixup A - offset: 0, value: %lo(forward_local+8), kind:   fixup_Mips_LO16890# O32-FIXME: .reloc $tmp7, R_MIPS_JALR, forward_local891 892# ELF-O32:      8f 99 00 00 lw $25, 0($gp)893# ELF-O32-NEXT:                 R_MIPS_GOT16 .text894# ELF-O32-NEXT: 27 39 00 cc addiu $25, $25, 204895# ELF-O32-NEXT:                 R_MIPS_LO16 .text896# ELF-O32-NEXT: 03 20 f8 09 jalr $25897# ELF-O32-NEXT: 00 00 00 00 nop898 899# N32-FIXME: lw  $25, %got_disp(forward_local)($gp)            # encoding: [0x8f,0x99,A,A]900# N32-FIXME:                                                   #   fixup A - offset: 0, value: %got_disp(forward_local), kind:   fixup_Mips_GOT_DISP901 902# ELF-N32:      8f 99 00 00 lw $25, 0($gp)903# ELF-N32-NEXT:                 R_MIPS_GOT_DISP forward_local904 905# N64-FIXME: ld  $25, %got_disp(forward_local)($gp)            # encoding: [0xdf,0x99,A,A]906# N64-FIXME:                                                   #   fixup A - offset: 0, value: %got_disp(forward_local), kind:   fixup_Mips_GOT_DISP907 908# ELF-N64:      df 99 00 00 ld $25, 0($gp)909# ELF-N64-NEXT:                 R_MIPS_GOT_DISP/R_MIPS_NONE/R_MIPS_NONE forward_local910 911# O32-MM-FIXME: lw    $25, %got(forward_local)($gp)            # encoding: [0xff,0x3c,A,A]912# O32-MM-FIXME:                                                #   fixup A - offset: 0, value: %got(forward_local), kind:   fixup_MICROMIPS_GOT16913# O32-MM-FIXME: addiu $25, $25, %lo(forward_local)             # encoding: [0x33,0x39,A,A]914# O32-MM-FIXME:                                                #   fixup A - offset: 0, value: %lo(forward_local), kind:   fixup_MICROMIPS_LO16915# O32-MM-FIXME: .reloc $tmp6, R_MIPS_JALR, forward_local916 917# MIPS: jalr $25      # encoding: [0x03,0x20,0xf8,0x09]918# MM:   jalr $ra, $25 # encoding: [0x03,0xf9,0x0f,0x3c]919# ALL:  nop           # encoding: [0x00,0x00,0x00,0x00]920 921  .end local_label922 9231:924  nop925  add $8, $8, $8926  nop927forward_local:928