| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 170578
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sooooo many of these had incorrect or strange main module includes.
I have manually inspected all of these, and fixed the main module
include to be the nearest plausible thing I could find. If you own or
care about any of these source files, I encourage you to take some time
and check that these edits were sensible. I can't have broken anything
(I strictly added headers, and reordered them, never removed), but they
may not be the headers you'd really like to identify as containing the
API being implemented.
Many forward declarations and missing includes were added to a header
files to allow them to parse cleanly when included first. The main
module rule does in fact have its merits. =]
llvm-svn: 169131
|
|
|
|
|
|
| |
which would then cause an assert when printed. rdar://11437956
llvm-svn: 168960
|
|
|
|
|
|
|
| |
is 24 bits not 20 and the decoding needed to correctly handle converting the
J1 and J2 bits to their I1 and I2 values to reconstruct the displacement.
llvm-svn: 166982
|
|
|
|
|
|
|
| |
because the value is incorrectly being signed extended when passed to
SymbolLookUp().
llvm-svn: 166234
|
|
|
|
|
|
|
|
|
| |
This patch fixes load/store instructions to handle less common cases
like "asr #32", "rrx" properly throughout the MC layer.
Patch by Chris Lidbury.
llvm-svn: 164455
|
|
|
|
|
|
| |
Patch by Chris Lidbury.
llvm-svn: 163323
|
|
|
|
|
|
|
|
| |
instructions.
Patch by Chris Lidbury.
llvm-svn: 163321
|
|
|
|
|
|
| |
Reviewed offline by chandlerc.
llvm-svn: 162623
|
|
|
|
| |
llvm-svn: 162086
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Refactor the TableGen'erated fixed length disassemblmer to use a
table-driven state machine rather than a massive set of nested
switch() statements.
As a result, the ARM Disassembler (ARMDisassembler.cpp) builds much more
quickly and generates a smaller end result. For a Release+Asserts build on
a 16GB 3.4GHz i7 iMac w/ SSD:
Time to compile at -O2 (averaged w/ hot caches):
Previous: 35.5s
New: 8.9s
TEXT size:
Previous: 447,251
New: 297,661
Builds in 25% of the time previously required and generates code 66% of
the size.
Execution time of the disassembler is only slightly slower (7% disassembling
10 million ARM instructions, 19.6s vs 21.0s). The new implementation has
not yet been tuned, however, so the performance should almost certainly
be recoverable should it become a concern.
llvm-svn: 161888
|
|
|
|
|
|
| |
index issue.
llvm-svn: 161162
|
|
|
|
| |
llvm-svn: 161161
|
|
|
|
| |
llvm-svn: 160621
|
|
|
|
|
|
| |
single-precision resiters) (and do it properly this time!
llvm-svn: 159989
|
|
|
|
| |
llvm-svn: 159960
|
|
|
|
| |
llvm-svn: 159945
|
|
|
|
|
|
| |
single-precision resiters)
llvm-svn: 159938
|
|
|
|
| |
llvm-svn: 158055
|
|
|
|
| |
llvm-svn: 157292
|
|
|
|
|
|
| |
SignExtend32<22>(Val<<1) also needs to change to SignExtend32<21>(Val) .
llvm-svn: 156213
|
|
|
|
|
|
|
| |
where the symbolic operand's displacement was incorrectly shifted left by 1.
rdar://11387046
llvm-svn: 156212
|
|
|
|
|
|
|
|
|
| |
for the assembler and disassembler. Which were not being set/read correctly
for offsets greater than 22 bits in some cases.
Changes to lib/Target/ARM/ARMAsmBackend.cpp from Gideon Myles!
llvm-svn: 156118
|
|
|
|
| |
llvm-svn: 156077
|
|
|
|
|
|
| |
Make the operand order of the instruction match that of the asm syntax.
llvm-svn: 155747
|
|
|
|
|
|
| |
the mask operand in the MCInst.
llvm-svn: 155700
|
|
|
|
|
|
| |
its vector
llvm-svn: 155439
|
|
|
|
| |
llvm-svn: 155004
|
|
|
|
|
|
| |
disassembler. Since the upredicability conditions are complex, C++ code was added to handle them.
llvm-svn: 155001
|
|
|
|
|
|
|
| |
instructions with writebacks. And add test a case for all opcodes handed by
DecodeVLD2DupInstruction() in ARMDisassembler.cpp .
llvm-svn: 154884
|
|
|
|
|
|
| |
symbolic operands added when using the C disassembler API.
llvm-svn: 154628
|
|
|
|
|
|
| |
of a VST instruction.
llvm-svn: 154544
|
|
|
|
|
|
| |
for all opcodes handed by DecodeVLDInstruction() in ARMDisassembler.cpp .
llvm-svn: 154459
|
|
|
|
|
|
|
| |
And indirectly, a dependency on most of the core LLVM optimization
libraries.
llvm-svn: 153957
|
|
|
|
| |
llvm-svn: 153500
|
|
|
|
|
|
| |
of the STRD, STRH, LDRD, LDRH, LDRSH and LDRSB instructions on ARM.
llvm-svn: 153252
|
|
|
|
|
|
| |
LDRSHT instruction on ARM
llvm-svn: 153251
|
|
|
|
|
|
| |
case for all opcodes handed by DecodeVSTInstruction() in ARMDisassembler.cpp .
llvm-svn: 153218
|
|
|
|
|
|
| |
register operand is given now fail with soft fail. Modified the regression tests to reflect this.
llvm-svn: 153089
|
|
|
|
|
|
| |
specific backends.
llvm-svn: 152537
|
|
|
|
| |
llvm-svn: 152184
|
|
|
|
|
|
| |
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: 152127
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 151687
|
|
|
|
|
|
| |
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
|