# REQUIRES: mips
# Check R_MIPS_GOT16 relocation calculation.

# RUN: llvm-mc -filetype=obj -triple=mips-unknown-linux %s -o %t.o
# RUN: ld.lld %t.o -shared -o %t.so
# RUN: llvm-objdump -d -t %t.so | FileCheck %s
# RUN: llvm-readobj -r -mips-plt-got %t.so | FileCheck -check-prefix=GOT %s

# CHECK:      Disassembly of section .text:
# CHECK-NEXT: __start:
# CHECK-NEXT:    10000:       8f 88 80 18     lw      $8, -32744($gp)
# CHECK-NEXT:    10004:       21 08 00 2c     addi    $8, $8, 44
# CHECK-NEXT:    10008:       8f 88 80 24     lw      $8, -32732($gp)
# CHECK-NEXT:    1000c:       21 08 90 00     addi    $8, $8, -28672
# CHECK-NEXT:    10010:       8f 88 80 28     lw      $8, -32728($gp)
# CHECK-NEXT:    10014:       21 08 90 04     addi    $8, $8, -28668
# CHECK-NEXT:    10018:       8f 88 80 28     lw      $8, -32728($gp)
# CHECK-NEXT:    1001c:       21 08 10 04     addi    $8, $8, 4100
# CHECK-NEXT:    10020:       8f 88 80 30     lw      $8, -32720($gp)
# CHECK-NEXT:    10024:       21 08 10 08     addi    $8, $8, 4104
# CHECK-NEXT:    10028:       8f 88 80 34     lw      $8, -32716($gp)
#
# CHECK: SYMBOL TABLE:
# CHECK: 00041008         .data           00000000 .hidden bar
# CHECK: 00000000         *UND*           00000000 foo

# GOT:      Relocations [
# GOT-NEXT: ]

# GOT:      Primary GOT {
# GOT-NEXT:   Canonical gp value:
# GOT-NEXT:   Reserved entries [
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32752
# GOT-NEXT:       Initial: 0x0
# GOT-NEXT:       Purpose: Lazy resolver
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32748
# GOT-NEXT:       Initial: 0x80000000
# GOT-NEXT:       Purpose: Module pointer (GNU extension)
# GOT-NEXT:     }
# GOT-NEXT:   ]
# GOT-NEXT:   Local entries [
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32744
# GOT-NEXT:       Initial: 0x10000
#                          ^-- (0x1002c + 0x8000) & ~0xffff
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32740
# GOT-NEXT:       Initial: 0x20000
#                          ^-- redundant unused entry
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32736
# GOT-NEXT:       Initial: 0x20000
#                          ^-- redundant unused entry
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32732
# GOT-NEXT:       Initial: 0x30000
#                          ^-- (0x29000 + 0x8000) & ~0xffff
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32728
# GOT-NEXT:       Initial: 0x40000
#                          ^-- (0x29000 + 0x10004 + 0x8000) & ~0xffff
#                          ^-- (0x29000 + 0x18004 + 0x8000) & ~0xffff
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32724
# GOT-NEXT:       Initial: 0x50000
#                          ^-- redundant unused entry
# GOT-NEXT:     }
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32720
# GOT-NEXT:       Initial: 0x41008
#                          ^-- 'bar' address
# GOT-NEXT:     }
# GOT-NEXT:   ]
# GOT-NEXT:   Global entries [
# GOT-NEXT:     Entry {
# GOT-NEXT:       Address:
# GOT-NEXT:       Access: -32716
# GOT-NEXT:       Initial: 0x0
# GOT-NEXT:       Value: 0x0
# GOT-NEXT:       Type: None
# GOT-NEXT:       Section: Undefined
# GOT-NEXT:       Name: foo
# GOT-NEXT:     }
# GOT-NEXT:   ]
# GOT-NEXT:   Number of TLS and multi-GOT entries: 0
# GOT-NEXT: }

  .text
  .globl  __start
__start:
  lw      $t0,%got($LC0)($gp)
  addi    $t0,$t0,%lo($LC0)
  lw      $t0,%got($LC1)($gp)
  addi    $t0,$t0,%lo($LC1)
  lw      $t0,%got($LC1+0x10004)($gp)
  addi    $t0,$t0,%lo($LC1+0x10004)
  lw      $t0,%got($LC1+0x18004)($gp)
  addi    $t0,$t0,%lo($LC1+0x18004)
  lw      $t0,%got(bar)($gp)
  addi    $t0,$t0,%lo(bar)
  lw      $t0,%got(foo)($gp)
$LC0:
  nop

  .data
  .space 0x9000
$LC1:
  .word 0
  .space 0x18000
  .word 0
.global bar
.hidden bar
bar:
  .word 0
