summaryrefslogtreecommitdiffstats
path: root/lld/test/ELF/mips-got-redundant.s
Commit message (Collapse)AuthorAgeFilesLines
* [mips] Use llvm-readobj `-A` flag in test cases. NFCSimon Atanasyan2019-10-031-1/+1
| | | | llvm-svn: 373589
* [mips] Make another set of test cases more tolerant to exact symbol ↵Simon Atanasyan2019-09-061-27/+12
| | | | | | addresses. NFC llvm-svn: 371174
* [test] Change llvm-readobj -long-option to --long-option or well-known short ↵Fangrui Song2019-05-011-1/+1
| | | | | | | | | | | | options. NFC Also change some options that have different semantics (cause confusion) in llvm-readelf mode: -s => -S -t => --symbols -sd => --section-data llvm-svn: 359651
* [ELF] Move `# REQUIRES:` line to the topFangrui Song2018-06-261-2/+1
| | | | llvm-svn: 335625
* [ELF][MIPS] Remove redundant checkings from test cases. NFCSimon Atanasyan2017-01-161-4/+4
| | | | llvm-svn: 292160
* ELF: Place relro sections after non-relro sections in r/w segment.Peter Collingbourne2017-01-101-8/+8
| | | | | | | | | | | | This is in preparation for my next change, which will introduce a relro nobits section. That requires that relro sections appear at the end of the progbits part of the r/w segment so that the relro nobits section can appear contiguously. Because of the amount of churn required in the test suite, I'm making this change separately. llvm-svn: 291523
* [ELF][MIPS] Do not change MipsGotSection state in the getPageEntryOffset methodSimon Atanasyan2016-11-291-1/+1
| | | | | | | | | | | | | | The MipsGotSection::getPageEntryOffset calculates index of GOT entry with a "page" address. Previously this method changes the state of MipsGotSection because it modifies PageIndexMap field. That leads to the unpredictable results if getPageEntryOffset called from multiple threads. The patch makes getPageEntryOffset constant. To do so it calculates GOT entry index but does not update PageIndexMap field. Later in the MipsGotSection::writeTo method linker calculates "page" addresses and writes them to the output. llvm-svn: 288129
* [ELF][MIPS] Fix calculation of GOT "page address" entries numberSimon Atanasyan2016-11-291-0/+6
| | | | | | | | | | | | | | | | | If output section which referenced by R_MIPS_GOT_PAGE or R_MIPS_GOT16 relocations is small (less that 0x10000 bytes) and occupies two adjacent 0xffff-bytes pages, current formula gives incorrect number of required "page" GOT entries. The problem is that in time of calculation we do not know the section address and so we cannot calculate number of 0xffff-bytes pages exactly. This patch fix the formula. Now it gives a correct number of pages in the worst case when "small" section intersects 0xffff-bytes page boundary. From the other side, sometimes it adds one more redundant GOT entry for each output section. But usually number of output sections referenced by GOT relocations is small. llvm-svn: 288127
* [ELF][MIPS] Reduce number of redundant entries in the local part of MIPS GOTSimon Atanasyan2016-03-291-15/+0
| | | | | | | | | | | | | | | | Local symbol which requires GOT entry initialized by "page" address. This address is high 16 bits of sum of the symbol value and the relocation addend. In the relocation scanning phase final values of symbols are unknown so to reduce number of allocated GOT entries do the following trick. Save all output sections referenced by GOT relocations during the relocation scanning phase. Then later in the `GotSection::finalize` method calculate number of "pages" required to cover all saved output sections and allocate appropriate number of GOT entries. We assume the worst case - each 64kb page of the output section has at least one GOT relocation against it. Differential Revision: http://reviews.llvm.org/D18349 llvm-svn: 264730
* [ELF][MIPS] Add case demonstrates creation redundant MIPS GOT entries for ↵Simon Atanasyan2016-03-201-1/+18
| | | | | | non-local symbols. NFC. llvm-svn: 263897
* [ELF][MIPS] Add test case to check number of redundant entries in the local ↵Simon Atanasyan2016-03-171-0/+56
part of MIPS GOT. NFC. llvm-svn: 263711
OpenPOWER on IntegriCloud