| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
This adds two new barrier instructions which can be used to restrict
speculative execution of load instructions.
Patch by Pablo Barrio!
Differential revision: https://reviews.llvm.org/D52484
llvm-svn: 343300
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Certain ARM instructions accept 32-bit immediate operands encoded as a 8-bit
integer value (0-255) and a 4-bit rotation (0-30, even). Current ARM assembly
syntax support in LLVM allows the decoded (32-bit) immediate to be specified
as a single immediate operand for such instructions:
mov r0, #4278190080
The ARMARM defines an extended assembly syntax allowing the encoding to be made
more explicit, as in:
mov r0, #255, #8 ; (same 32-bit value as above)
The behaviour of the two instructions can be different w.r.t flags, which is
documented under "Modified immediate constants" in ARMARM. This patch enables
support for this extended syntax at the MC layer.
llvm-svn: 223113
|
|
|
|
|
|
|
| |
This also removes the restriction on the immediate field of the 'hint'
instruction.
llvm-svn: 191744
|
|
|
|
|
|
| |
ISB should only accepts full system sync, other options are reserved
llvm-svn: 183656
|
|
|
|
|
|
|
|
|
| |
Handle the case when the disassembler table can't tell
the difference between some encodings of QADD and CPS.
Add some necessary safe guards in CPS decoding as well.
llvm-svn: 183610
|
|
|
|
|
|
|
|
| |
operands.
According to the ARM reference manual, RRX(S) have defined encodings for lr, pc and sp.
llvm-svn: 183307
|
|
|
|
|
|
| |
instructions when they are used to write to the APSR. In this case, the destination operand should be APSR_nzcv, and the encoding of the target should be 0b1111 (same as for PC). In pre-UAL syntax, this form used the PC register as a textual target. This is still allowed for backward compatibility.
llvm-svn: 181705
|
|
|
|
|
|
| |
Patch from Mihail Popa
llvm-svn: 179854
|
|
|
|
| |
llvm-svn: 179847
|
|
|
|
|
|
|
|
|
|
|
|
| |
These instructions aren't universally available, but depend on a specific
extension to the normal ARM architecture (rather than, say, v6/v7/...) so a new
feature is appropriate.
This also enables the feature by default on A-class cores which usually have
these extensions, to avoid breaking existing code and act as a sensible
default.
llvm-svn: 179171
|
|
|
|
| |
llvm-svn: 161161
|
|
|
|
| |
llvm-svn: 161159
|
|
|
|
| |
llvm-svn: 155604
|
|
|
|
|
|
| |
reading of the ARMv7 docs.
llvm-svn: 142626
|
|
|
|
| |
llvm-svn: 142624
|
|
|
|
|
|
| |
decoding bug this uncovered.
llvm-svn: 138675
|
|
|
|
|
|
| |
instructions. This is helpful for disassembler testing, and indeed exposed a disassembler bug that is also fixed here.
llvm-svn: 138635
|
|
|
|
| |
llvm-svn: 137641
|
|
Greatly increases our test coverage of basic ARM-mode instructions.
llvm-svn: 137495
|