aboutsummaryrefslogtreecommitdiff
path: root/binutils/bfd/elfnn-riscv.c
AgeCommit message (Collapse)AuthorFilesLines
2024-08-27Bump binutils from 2.43 to 2.43.1Christoph Müllner1-0/+0
Test results (with --enable-multilib): ``` ========= Summary of gcc testsuite ========= | # of unexpected case / # of unique unexpected case | gcc | g++ | gfortran | rv32imac/ ilp32/ medlow | 0 / 0 | 0 / 0 | 0 / 0 | rv32imafdc/ ilp32d/ medlow | 0 / 0 | 0 / 0 | 0 / 0 | rv64imac/ lp64/ medlow | 0 / 0 | 0 / 0 | 0 / 0 | rv64imafdc/ lp64d/ medlow | 0 / 0 | 0 / 0 | 0 / 0 | ``` Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
2024-08-05Bump binutils to 2.43 release.2024.08.06Jiawei1-0/+0
2024-02-01Bump binutils to v2.42 releaseChristoph Müllner1-0/+0
Testing result (rv64): ``` ========= Summary of gcc testsuite ========= | # of unexpected case / # of unique unexpected case | gcc | g++ | gfortran | rv64gc/ lp64d/ medlow | 0 / 0 | 0 / 0 | 0 / 0 | ``` Signed-off-by: Christoph Müllner <christoph.muellner@vrull.eu>
2023-11-28Bump binutils to the true v2.41 releaseTsukasa OI1-0/+0
Due to multiple accidents while releasing GNU Binutils, version 2.41, there are multiple tags that are broken. The true commit representing the version 2.41 of GNU Binutils is the head of `binutils-2_41-release-point` branch. This commit partially reverts commit c7853bf388ff7ce7b67171302956ce78068d2342.
2023-10-05Bump binutils to v2.41 releasePatrick O'Neill1-0/+0
2023-09-30Bump binutils to v2.41Patrick O'Neill1-0/+0
2023-02-20Update the Binutils branch commits.2023.02.21Jiawei1-0/+0
2023-02-20Update Binutils commits.Jiawei1-0/+0
2023-02-20Bump Binutils version to 2.40.Jiawei1-0/+0
2022-08-18Switch gcc to upstream and update binutils commitsJiawei1-0/+0
2022-08-17Switch binutils to upstream 2.39 branchKito Cheng1-0/+0
2016-05-31Start tracking binutils as a submodulePalmer Dabbelt1-3022/+0
As we prepare binutils for upstreaming we want to start closely tracking upstream changes. There's a riscv-binutils-gdb repository that contains the binutils port, and I want to centralize all the development there. This commit uses that repository instead of the patches that used to live here, so we're less likely to lose patches.
2016-03-14Upgrade to binutils 2.26Andrew Waterman1-40/+38
2015-11-18binutils: don't check AUIPC/LUI overflow for RV32Andrew Waterman1-2/+2
Any 32-bit address is in range of both instructions in RV32.
2015-11-08Bump binutils to 2.25.1Palmer Dabbelt1-2/+2
This just requires a single extra argument to a function call, which I copied from aarch64. I've only tested that newlib builds, but I don't see how this could cause any problems... :) I was hoping this would help with my attempts to integrate the GDB and binutils ports into one repo for upstreaming, but it looks like 2.25.1 is still a bit too old for this.
2015-10-20Don't relax to C.LUI when rd=spAndrew Waterman1-1/+4
There is no such instruction.
2015-10-10binutils: fix LUI relaxation bugAndrew Waterman1-13/+37
Section merging could make a gp-relative reference go out of range after relaxation. Stop relaxing LUIs against mergeable symbols, and add error checking to catch things like this in the future.
2015-10-10binutils: relax LUI to C.LUIAndrew Waterman1-10/+40
2015-10-01binutils: more work towards RVC 1.8Andrew Waterman1-1/+1
2015-09-20binutils: redo ELF flag handlingAndrew Waterman1-52/+7
- Merge RVC flag correctly - Add soft-float flag and enforce equality when merging objects - Don't use flags to indicate custom accelerators (ultimate solution TBD)
2015-09-19binutils: add LUI reloc overflow checkAndrew Waterman1-0/+2
2015-09-18binutils: bfd: fit elf_finish_dynamic_sections on 80 charactersPalmer Dabbelt1-5/+7
2015-09-18binutils: bfd: fit PLT functions on 80 charactersPalmer Dabbelt1-6/+9
2015-09-18binutils: bfd: rename PLT header creation functionPalmer Dabbelt1-3/+3
2015-09-18binutils: bfd comment cleanupsPalmer Dabbelt1-6/+5
2015-08-20Re-add a dropped trailing "+"Palmer Dabbelt1-3/+3
Fixes: 1ee4364dc4d9 ("binutils: clean up style")
2015-08-19binutils: clean up styleMike Frysinger1-64/+64
This doesn't fix all the problems, but does clean up many of them to make the code conform better to the GNU style.
2015-07-22Avoid t0 for indirect callsAndrew Waterman1-8/+8
We sometimes use t0 as a link register, e.g. for the compressed prologues and epilogues, and so we want microarchitectures to push the RAS when rd=t0 and pop the RAS when rs1=t0. Thus, we want to avoid using t0 for indirect calls to avoid errant RAS operations.
2015-07-18binutils: page size is 4096, not 8192Andrew Waterman1-2/+2
2015-07-18binutils: be more conservative relaxing R_RISCV_CALL between sectionsAndrew Waterman1-13/+24
If a call crosses an alignment directive, the PC-relative offset could actually increase post-relaxation. Account for this by assuming the offset could increase by up to a page size when the caller and callee lie in different output sections.
2015-06-02binutils: avoid dereferencing potentially invalid pointerAndrew Waterman1-1/+1
2015-05-27binutils: when using RVC, relax calls to C.JALAndrew Waterman1-6/+15
2015-05-04binutils: after relaxing R_RISCV_ALIGN, stop relaxingAndrew Waterman1-0/+4
It turns out LD runs relax_section multiple times even if *again is false. We need to use our own mechanism to prevent relaxing a section again after R_RISCV_ALIGN has been handled, or else we can break alignment.
2015-04-14binutils: fix .align directive in RVC codeAndrew Waterman1-7/+16
2015-03-31binutils: produce RVC branches/jumpsAndrew Waterman1-0/+18
2015-03-28binutils: cope with GNU ifuncsAndrew Waterman1-1/+2
h/t Matt Thomas
2015-03-12binutils: support call relaxations for SBI callsAndrew Waterman1-2/+2
Calls to the range [-2048,-2] can now be relaxed to JALR w.r.t. x0.
2014-12-31binutils: upgrade to version 2.25Andrew Waterman1-4/+4
2014-12-31binutils: fix off-by-one error in relaxation codeAndrew Waterman1-2/+2
2014-12-31binutils: fill in some dynamic relocs staticallyAndrew Waterman1-4/+6
Later bfd passes may assume this has been done.
2014-12-11binutils: avoid needlessly setting DT_TEXTRELAndrew Waterman1-4/+9
2014-12-10binutils, glibc: avoid DT_TEXTREL in ld.soAndrew Waterman1-13/+5
ld.so was using a non-PIC reloc to get the link-time address of _DYNAMIC, which, while correct, causes the library to be flagged DT_TEXTREL. Avoid this by leveraging the fact that the static linker has put the link-time address of _DYNAMIC in the first GOT entry.
2014-11-17binutils: support code alignment in the linkerAndrew Waterman1-182/+144
We over-emit NOPs in the assembler, then delete them in the linker to achieve the required alignment. This allows alignment to work in spite of other linker relaxations.
2014-11-15binutils: fix (?) relaxation symbol adjustmentAndrew Waterman1-4/+4
I think there were a few off-by-one errors. If so, they exist in other backends, too, since relax_delete_bytes was cribbed from SH.
2014-11-15binutils: speed up linker relaxation processAndrew Waterman1-30/+20
2014-11-15binutils: favor elfnn-riscv.c over elfxx-riscv.cAndrew Waterman1-1/+2921
Since a lot of code is dependent on the word size, it's both simpler and more efficient to put that code in elfnn-riscv.c. Only code that does not depend on the word size remains in elfxx-riscv.c.
2014-11-15binutils: merge elf{32/64}-riscv into elfnn-riscvAndrew Waterman1-0/+83
The latter is preprocessed to replace the string NN with 32 or 64 as needed.