| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
index issue.
llvm-svn: 161162
|
| |
|
|
| |
llvm-svn: 161159
|
| |
|
|
|
|
|
|
|
|
|
| |
The NOP, WFE, WFI, SEV and YIELD instructions are all hints w/
a different immediate value in bits [7,0]. Define a generic HINT
instruction and refactor NOP, WFI, WFI, SEV and YIELD to be
assembly aliases of that.
rdar://11600518
llvm-svn: 158674
|
| |
|
|
|
|
| |
iaspr, espr and xpsr which also needed to have 0b10 in their mask encoding bits.
llvm-svn: 158560
|
| |
|
|
|
|
|
|
|
|
| |
the 0b10 mask encoding bits. Make MSR APSR writes without a _<bits> qualifier
an alias for MSR APSR_nzcvq even though ARM as deprecated it use. Also add
support for suffixes (_nzcvq, _g, _nzcvqg) for APSR versions. Some FIXMEs in
the code for better error checking when versions shouldn't be used.
rdar://11457025
llvm-svn: 157019
|
| |
|
|
|
|
| |
offset addressing. The assembler and instruction printer were not properly handeling the #-0 immediate.
llvm-svn: 156608
|
| |
|
|
|
|
| |
the mask operand in the MCInst.
llvm-svn: 155700
|
| |
|
|
|
|
|
| |
targets so if the branch target has the high bit set it does not get printed as:
beq 0xffffffff8008c404
llvm-svn: 154685
|
| |
|
|
|
|
|
|
| |
MCInstPrinter.
All implementations used the same code.
llvm-svn: 153866
|
| |
|
|
|
|
| |
using the instruction name table from MCInstrInfo. Reduces static data in the InstPrinter implementations.
llvm-svn: 153863
|
| |
|
|
|
|
| |
getInstructionName and the static data it contains since the same tables are already in MCInstrInfo.
llvm-svn: 153860
|
| |
|
|
|
|
| |
Register pair, all lanes subscripting.
llvm-svn: 152157
|
| |
|
|
|
|
|
| |
Register pair VLD1/VLD2 all-lanes instructions. Kill off more of the
pseudos as a result.
llvm-svn: 152150
|
| |
|
|
| |
llvm-svn: 152131
|
| |
|
|
|
|
| |
Use the new composite physical registers.
llvm-svn: 152063
|
| |
|
|
|
|
|
|
|
| |
With the new composite physical registers to represent arbitrary pairs
of DPR registers, we don't need the pseudo-registers anymore. Get rid of
a bunch of them that use DPR register pairs and just use the real
instructions directly instead.
llvm-svn: 152045
|
| |
|
|
|
|
|
| |
Used to allow context sensitive printing of super-register or sub-register
references.
llvm-svn: 152043
|
| |
|
|
|
|
| |
runs into the undefined 15 condition code value.
llvm-svn: 151844
|
| |
|
|
| |
llvm-svn: 150918
|
| |
|
|
| |
llvm-svn: 149961
|
| |
|
|
| |
llvm-svn: 148884
|
| |
|
|
| |
llvm-svn: 148882
|
| |
|
|
| |
llvm-svn: 148762
|
| |
|
|
| |
llvm-svn: 148745
|
| |
|
|
|
|
| |
rdar://10558523
llvm-svn: 147189
|
| |
|
|
| |
llvm-svn: 147025
|
| |
|
|
|
|
| |
rdar://9932658
llvm-svn: 146921
|
| |
|
|
|
|
|
|
| |
Work in progress. Parsing for non-writeback, single spaced register lists
works now. The rest have the representations better factored, but still
need more to be able to parse properly.
llvm-svn: 146579
|
| |
|
|
| |
llvm-svn: 145504
|
| |
|
|
| |
llvm-svn: 145464
|
| |
|
|
|
|
| |
As a side effect hex is printed lowercase instead of uppercase now.
llvm-svn: 144013
|
| |
|
|
|
|
| |
One-register lists are legal on LDM/STM instructions, but we should not print the PUSH/POP aliases when they appear. This fixes round tripping on this instruction.
llvm-svn: 143557
|
| |
|
|
| |
llvm-svn: 142682
|
| |
|
|
| |
llvm-svn: 142675
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Next step in the ongoing saga of NEON load/store assmebly parsing. Handle
VLD1 instructions that take a two-register register list.
Adjust the instruction definitions to only have the single encoded register
as an operand. The super-register from the pseudo is kept as an implicit def,
so passes which come after pseudo-expansion still know that the instruction
defines the other subregs.
llvm-svn: 142670
|
| |
|
|
| |
llvm-svn: 142657
|
| |
|
|
| |
llvm-svn: 142441
|
| |
|
|
| |
llvm-svn: 141786
|
| |
|
|
| |
llvm-svn: 141781
|
| |
|
|
| |
llvm-svn: 141780
|
| |
|
|
| |
llvm-svn: 141446
|
| |
|
|
|
|
| |
AIF bits are set.
llvm-svn: 141190
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
using llvm's public 'C' disassembler API now including annotations.
Hooked this up to Darwin's otool(1) so it can again print things like branch
targets for example this:
blx _puts
instead of this:
blx #-36
and includes support for annotations for branches to symbol stubs like:
bl 0x40 @ symbol stub for: _puts
and annotations for pc relative loads like this:
ldr r3, #8 @ literal pool for: Hello, world!
Also again can print the expression encoded in the Mach-O relocation entries for
things like this:
movt r0, :upper16:((_foo-_bar)+1234)
llvm-svn: 141129
|
| |
|
|
|
|
|
|
|
|
|
| |
Encode the immediate into its 8-bit form as part of isel rather than later,
which simplifies things for mapping the encoding bits, allows the removal
of the custom disassembler decoding hook, makes the operand printer trivial,
and prepares things more cleanly for handling these in the asm parser.
rdar://10211428
llvm-svn: 140834
|
| |
|
|
|
|
|
|
|
|
|
|
| |
forgotten to commit.
Build on previous patches to successfully distinguish between an M-series and A/R-series MSR and MRS instruction. These take different mask names and have a *slightly* different opcode format.
Add decoder and disassembler tests.
Improvement on the previous patch - successfully distinguish between valid v6m and v7m masks (one is a subset of the other). The patch had to be edited slightly to apply to ToT.
llvm-svn: 140696
|
| |
|
|
|
|
| |
even if it's zero, to distinguish them from non-post-indexed instructions.
llvm-svn: 140420
|
| |
|
|
|
|
| |
other test failures I caused.
llvm-svn: 140284
|
| |
|
|
|
|
| |
as [pc, #123] rather than simply #123.
llvm-svn: 140283
|
| |
|
|
|
|
| |
they have a fallback path now.
llvm-svn: 140267
|
| |
|
|
|
|
| |
that the disassembler outputs annotations on with the streamer that the InstPrinter will print them on.
llvm-svn: 140217
|