Skip to content

Commit

Permalink
[mips] Add SHF_MIPS_GPREL flag to the MIPS .sbss and .sdata sections
Browse files Browse the repository at this point in the history
MIPS ABI states that .sbss and .sdata sections must have SHF_MIPS_GPREL
flag. See Figure 4–7 on page 69 in the following document:
ftp://www.linux-mips.org/pub/linux/mips/doc/ABI/mipsabi.pdf.

Differential Revision: http://reviews.llvm.org/D15740

llvm-svn: 259641
  • Loading branch information
atanasyan committed Feb 3, 2016
1 parent 3a6e81c commit e774126
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 2 deletions.
6 changes: 4 additions & 2 deletions llvm/lib/Target/Mips/MipsTargetObjectFile.cpp
Expand Up @@ -41,10 +41,12 @@ void MipsTargetObjectFile::Initialize(MCContext &Ctx, const TargetMachine &TM){
InitializeELF(TM.Options.UseInitArray);

SmallDataSection = getContext().getELFSection(
".sdata", ELF::SHT_PROGBITS, ELF::SHF_WRITE | ELF::SHF_ALLOC);
".sdata", ELF::SHT_PROGBITS,
ELF::SHF_WRITE | ELF::SHF_ALLOC | ELF::SHF_MIPS_GPREL);

SmallBSSSection = getContext().getELFSection(".sbss", ELF::SHT_NOBITS,
ELF::SHF_WRITE | ELF::SHF_ALLOC);
ELF::SHF_WRITE | ELF::SHF_ALLOC |
ELF::SHF_MIPS_GPREL);
this->TM = &static_cast<const MipsTargetMachine &>(TM);
}

Expand Down
24 changes: 24 additions & 0 deletions llvm/test/CodeGen/Mips/mips-shf-gprel.ll
@@ -0,0 +1,24 @@
; Check that .sdata section has SHF_MIPS_GPREL flag.

; RUN: llc -mips-ssection-threshold=16 -mgpopt -mattr=noabicalls \
; RUN: -relocation-model=static -march=mips -o - %s -filetype=obj \
; RUN: | llvm-readobj -s | FileCheck %s

@data1 = global [4 x i32] [i32 1, i32 2, i32 3, i32 4], align 4
@date2 = global [4 x i32] zeroinitializer, align 4

; CHECK: Name: .sdata
; CHECK-NEXT: Type: SHT_PROGBITS
; CHECK-NEXT: Flags [ (0x10000003)
; CHECK-NEXT: SHF_ALLOC
; CHECK-NEXT: SHF_MIPS_GPREL
; CHECK-NEXT: SHF_WRITE
; CHECK-NEXT: ]

; CHECK: Name: .sbss
; CHECK-NEXT: Type: SHT_NOBITS
; CHECK-NEXT: Flags [ (0x10000003)
; CHECK-NEXT: SHF_ALLOC
; CHECK-NEXT: SHF_MIPS_GPREL
; CHECK-NEXT: SHF_WRITE
; CHECK-NEXT: ]

0 comments on commit e774126

Please sign in to comment.