# Check the case when small section (less that 0x10000 bytes) occupies
# two adjacent 0xffff-bytes pages. We need to create two GOT entries
# for R_MIPS_GOT_PAGE relocations.

# RUN: llvm-mc -filetype=obj -triple=mips64-unknown-linux -o %t.o %s
# RUN: ld.lld --section-start .rodata=0x27FFC -shared -o %t.so %t.o
# RUN: llvm-readobj -t -mips-plt-got %t.so | FileCheck %s

# REQUIRES: mips

# CHECK:       Name: bar
# CHECK-NEXT:  Value: 0x28000
#                     ^ page-address = (0x28000 + 0x8000) & ~0xffff = 0x30000

# CHECK:       Name: foo
# CHECK-NEXT:  Value: 0x27FFC
#                     ^ page-address = (0x27ffc + 0x8000) & ~0xffff = 0x20000

# CHECK:      Local entries [
# CHECK-NEXT:   Entry {
# CHECK-NEXT:     Address:
# CHECK-NEXT:     Access: -32736
# CHECK-NEXT:     Initial: 0x20000
# CHECK-NEXT:   }
# CHECK-NEXT:   Entry {
# CHECK-NEXT:     Address:
# CHECK-NEXT:     Access: -32728
# CHECK-NEXT:     Initial: 0x30000
# CHECK-NEXT:   }
# CHECK-NEXT: ]

  .text
  ld      $v0,%got_page(foo)($gp)
  ld      $v0,%got_page(bar)($gp)

  .rodata
foo:
  .word 0
bar:
  .word 0
