summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/lib/Target/Mips (follow)
Commit message (Collapse)AuthorAgeFilesLines
* Remove LLVM 8.0.1 files.patrick2020-08-03145-79196/+0
|
* Use a distinct trap code with retguard on mips64.visa2020-05-231-2/+3
| | | | | | | | | | | | This lets the kernel detect retguard traps and send SIGABRT instead of SIGEMT. SIGEMT does not indicate correctly the nature of the error (stack overflow, violation of control flow). It can confuse the user to restart the program without further investigation. Prompted by and OK deraadt@ OK mortimer@
* Add retguard for octeon/mips64.mortimer2019-10-257-1/+437
| | | | | | | | | | For this architecture we use separate retguard prologue and epilogue code for static or PIC code. In the PIC case we use some additional code before the retguard epilogue to recover the function start address and the GOT pointer in order to get the per-function random cookie. Much thanks to visa@ for suggestions and advice making it all work. ok deraadt@ visa@
* Merge LLVM 8.0.1 release.patrick2019-09-012-3/+7
| | | | | | | Tested in snaps and package builds Tested on amd64 by naddy@ Tested on arm64 by patrick@ Tested on octeon by visa@
* Import LLVM 8.0.1 release including clang, lld and lldb.patrick2019-09-016-13/+39
|
* Address a few issues in the expansion of li.d and li.s:visa2019-07-281-8/+15
| | | | | | | - In the N64 mode, properly load the whole immediate value in the destination register even if the lower 32 bits are zero. - Ensure correct alignment of memory operands. - Fix the endianess of memory operands.
* Fix instruction guard. This prevents the compiler from usingvisa2019-07-081-1/+1
| | | | the MIPS64 mul instruction on pre-MIPS64 subtargets.
* Implement the 'h' register constraint on mips64. This lets clang buildvisa2019-07-011-0/+8
| | | | | | | | | | | pieces of software that use the constraint if the compiler claims to be compatible with GCC 4.2.1. Note that the constraint was removed in GCC 4.4. The reason was that 'h' could generate code whose result is unpredictable. The underlying reason is that the HI and LO registers are special, and the optimizer has to be careful when choosing the order of HI/LO accesses. It looks that LLVM has the needed logic.
* Implement .cplocal directive. Needed when building libcrypto.visa2019-06-243-25/+68
|
* Implement SGE pseudo-instructions. Needed when building libcrypto.visa2019-06-243-0/+99
|
* Fix a bug in memory operand handling. If a load or store uses a symbolvisa2019-06-241-0/+4
| | | | | | | | | | | | as a memory operand, the assembler generates incorrect relocations in PIC mode. As a simple fix, expand the instruction into an address load sequence, which works, that is followed by the actual memory instruction. Note that the generated sequence is not always optimal. If the symbol has a small offset, the offset could be fused with the memory instruction. The fix does not achieve that, however. A symbol offset adds an extra instruction.
* Merge LLVM 8.0.0 release.patrick2019-06-232-31/+65
| | | | | | | | | Prepared with help from jsg@ and mortimer@ Tested on amd64 by bcallah@, krw@, naddy@ Tested on arm64 by patrick@ Tested on macppc by kettenis@ Tested on octeon by visa@ Tested on sparc64 by claudio@
* Import LLVM 8.0.0 release including clang, lld and lldb.patrick2019-06-2358-482/+1498
|
* Restore previous section after setting the MIPS ABI marker. This keepsvisa2019-04-201-0/+2
| | | | | | | | the .text section in use after the file header, improving compatibility with gcc. Without this change, module-level inline assembly blocks could end up into wrong section. OK kettenis@ guenther@
* Tedu files that got removed in LLVM 7.0.1.patrick2019-01-272-782/+0
|
* Merge LLVM 7.0.1 release.patrick2019-01-271-6/+3
| | | | | With fixes from mortimer@ (thanks!) Tested by many, especially naddy@ (thanks!)
* Import LLVM 7.0.1 release including clang, lld and lldb.patrick2019-01-2799-3258/+8057
|
* Enable the integrated assembler on mips64.visa2018-10-211-0/+5
| | | | | | | | Upstream references: https://reviews.llvm.org/D31557 https://reviews.llvm.org/D48515 OK kettenis@
* Tedu files that got removed in LLVM 6.0.0.patrick2018-04-062-829/+0
|
* Import LLVM 6.0.1 release including clang, lld and lldb.patrick2018-04-0676-1344/+2262
| | | | "where is the kaboom?" deraadt@
* Import LLVM 5.0.1 release including clang, lld and lldb.patrick2017-12-2413-33/+426
|
* Import LLVM 5.0.0 release including clang, lld and lldb.patrick2017-10-0474-1369/+4453
|
* Import LLVM 4.0.0 release including clang and lld.patrick2017-03-1411-44/+341
|
* Import LLVM 4.0.0 rc1 including clang and lld to help the currentpatrick2017-01-2468-1506/+4931
| | | | development effort on OpenBSD/arm64.
* Merge LLVM 3.9.1patrick2017-01-146-104/+0
|
* Import LLVM 3.9.1 including clang and lld.patrick2017-01-1495-3937/+8167
|
* Use the space freed up by sparc and zaurus to import LLVM.pascal2016-09-03136-0/+62083
ok hackroom@