| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
thumb instruction. The PC adjustment is +4 in Thumb mode and +8 in ARM mode.
llvm-svn: 151530
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
rdar://10873652
As part of this I updated the llvm-mc disassembler C API to always call the
SymbolLookUp call back even if there is no getOpInfo call back. If there is a
getOpInfo call back that is tried first and then if that gets no information
then the SymbolLookUp is called. I also made the code more robust by
memset(3)'ing to zero the LLVMOpInfo1 struct before then setting
SymbolicOp.Value before for the call to getOpInfo. And also don't use any
values from the LLVMOpInfo1 struct if getOpInfo returns 0. And also don't
use any of the ReferenceType or ReferenceName values from SymbolLookUp if it
returns NULL. rdar://10873563 and rdar://10873683
For the X86 target also fixed bugs so the annotations get printed.
Also fixed a few places in the ARM target that was not producing symbolic
operands for some instructions. rdar://10878166
llvm-svn: 151267
|
|
|
|
|
|
| |
MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878
|
|
|
|
| |
llvm-svn: 150304
|
|
|
|
| |
llvm-svn: 149961
|
|
|
|
|
|
|
| |
This CL delays reading of function bodies from initial parse until
materialization, allowing overlap of compilation with bitcode download.
llvm-svn: 149918
|
|
|
|
| |
llvm-svn: 148578
|
|
|
|
| |
llvm-svn: 146691
|
|
|
|
|
|
|
| |
In addition to improving the representation, this adds support for assembly
parsing of these instructions.
llvm-svn: 146588
|
|
|
|
|
|
|
|
| |
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: 146409
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor the instructions into fixed writeback and register-stride
writeback variants to simplify the offset operand (no more optional
register operand using reg0). This is a simpler representation and allows
the assembly parser to more easily handle these instructions.
Add tests for the instruction variants now supported.
llvm-svn: 146278
|
|
|
|
| |
llvm-svn: 145517
|
|
|
|
| |
llvm-svn: 145510
|
|
|
|
| |
llvm-svn: 145450
|
|
|
|
| |
llvm-svn: 145442
|
|
|
|
| |
llvm-svn: 145420
|
|
|
|
| |
llvm-svn: 144692
|
|
|
|
|
|
| |
VMOVv4f32.
llvm-svn: 144683
|
|
|
|
|
|
|
|
| |
versions of explicit dependencies.
- The hope is that we have a tool/test to verify these are accurate (and tight) soon.
llvm-svn: 144444
|
|
|
|
|
|
| |
Original commit msg: 'ARM assembly parsing for VST1 two-register encoding.'
llvm-svn: 144437
|
|
|
|
| |
llvm-svn: 144384
|
|
|
|
| |
llvm-svn: 143634
|
|
|
|
|
|
| |
alias, not to LDM/STM instructions. Revert r143552.
llvm-svn: 143553
|
|
|
|
|
|
| |
Alternate encodings are used in that case.
llvm-svn: 143552
|
|
|
|
| |
llvm-svn: 143507
|
|
|
|
| |
llvm-svn: 143369
|
|
|
|
| |
llvm-svn: 143351
|
|
|
|
|
|
| |
inadvertantly exposed a decoding ambiguity between SWP and CPS that the auto-generated decoder can't handle.
llvm-svn: 143208
|
|
|
|
|
|
| |
previously.
llvm-svn: 143162
|
|
|
|
|
|
| |
Four entry register lists.
llvm-svn: 142882
|
|
|
|
|
|
| |
Three entry register list variation.
llvm-svn: 142876
|
|
|
|
|
|
|
|
| |
Split am6offset into fixed and register offset variants so the instruction
encodings are explicit rather than relying an a magic reg0 marker.
Needed to being able to parse these.
llvm-svn: 142853
|
|
|
|
|
|
| |
more of this code gets refactored, a lot of these manual decoding hooks should get smaller and/or go away entirely.
llvm-svn: 142817
|
|
|
|
|
|
| |
correctness along the way.
llvm-svn: 142726
|
|
|
|
| |
llvm-svn: 142704
|
|
|
|
| |
llvm-svn: 142691
|
|
|
|
| |
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: 142591
|
|
|
|
|
|
| |
Patch by Joe Abbey <jabbey@arxan.com>.
llvm-svn: 142223
|
|
|
|
|
|
|
|
| |
assert("bad SymbolicOp.VariantKind");
To:
assert(0 && "bad SymbolicOp.VariantKind");
llvm-svn: 142000
|
|
|
|
| |
llvm-svn: 141914
|
|
|
|
| |
llvm-svn: 141874
|
|
|
|
|
|
|
| |
The disassembler needs to use the AM5 factory methods instead of just
building up the immediate directly.
llvm-svn: 141819
|
|
|
|
| |
llvm-svn: 141811
|
|
|
|
| |
llvm-svn: 141794
|
|
|
|
|
|
| |
perform the check before adding the Thumb predicate, which pops on entry off the ITBlock queue.
llvm-svn: 141339
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|