| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
majority of decoder crashes detected by randomized testing.
llvm-svn: 138269
|
|
|
|
| |
llvm-svn: 138255
|
|
|
|
|
|
| |
randomized testing.
llvm-svn: 138251
|
|
|
|
|
|
| |
more tests.
llvm-svn: 138246
|
|
|
|
|
|
|
|
| |
for the purposes of decoding all operands except the predicate.
Found by randomized testing.
llvm-svn: 138003
|
|
|
|
|
|
| |
have it unset.
llvm-svn: 138000
|
|
|
|
|
|
| |
when decoding the CPS instruction soft-fails.
llvm-svn: 137997
|
|
|
|
|
|
|
|
| |
instructions.
Fixes a large class of disassembler crashes found by randomized testing.
llvm-svn: 137995
|
|
|
|
| |
llvm-svn: 137881
|
|
|
|
|
|
|
|
|
| |
Represent the operand value as it will be encoded in the instruction. This
allows removing the specialized encoder and decoder methods entirely. Add
an assembler match class while we're at it to lay groundwork for parsing the
thumb shift instructions.
llvm-svn: 137879
|
|
|
|
|
|
| |
the OpInfo array.
llvm-svn: 137838
|
|
|
|
|
|
|
|
| |
instruction that is disassemblable, but invalid. Only used for ARM UNPREDICTABLE instructions at the moment.
Patch by James Molloy.
llvm-svn: 137830
|
|
|
|
|
|
| |
do not, for the purposes of decoding them.
llvm-svn: 137787
|
|
|
|
|
|
| |
Thumb2 NEON decoding hooks to bring us closer to correctness.
llvm-svn: 137686
|
|
|
|
|
|
|
|
| |
mode. Update tests to reflect this fact.
Patch by James Molloy.
llvm-svn: 137647
|
|
|
|
|
|
| |
comprehensive NEON decoding testcase.
llvm-svn: 137635
|
|
|
|
|
|
| |
add another batch of tests.
llvm-svn: 137502
|
|
|
|
| |
llvm-svn: 137499
|
|
|
|
| |
llvm-svn: 137487
|
|
|
|
| |
llvm-svn: 137476
|
|
|
|
| |
llvm-svn: 137372
|
|
|
|
| |
llvm-svn: 137370
|
|
|
|
| |
llvm-svn: 137368
|
|
|
|
| |
llvm-svn: 137356
|
|
|
|
| |
llvm-svn: 137347
|
|
|
|
| |
llvm-svn: 137340
|
|
|
|
| |
llvm-svn: 137337
|
|
|
|
| |
llvm-svn: 137325
|
|
|
|
|
|
| |
cannot be PC.
llvm-svn: 137323
|
|
|
|
| |
llvm-svn: 137320
|
|
|
|
| |
llvm-svn: 137282
|
|
|
|
| |
llvm-svn: 137236
|
|
|
|
| |
llvm-svn: 137224
|
|
|
|
|
|
| |
operand decoding.
llvm-svn: 137189
|
|
|
|
| |
llvm-svn: 137180
|
|
|
|
| |
llvm-svn: 137176
|
|
|
|
| |
llvm-svn: 137172
|
|
|
|
|
|
| |
to tighten our decoding of BFI.
llvm-svn: 137168
|
|
|
|
|
|
| |
Not sure about BLXi, but this is what the old disassembler did.
llvm-svn: 137156
|
|
|
|
| |
llvm-svn: 137154
|
|
|
|
| |
llvm-svn: 137146
|
|
|
|
|
|
|
|
|
|
| |
FixedLenDecoderEmitter.
This new disassembler can correctly decode all the testcases that the old one did, though
some "expected failure" testcases are XFAIL'd for now because it is not (yet) as strict in
operand checking as the old one was.
llvm-svn: 137144
|
|
|
|
|
|
|
| |
The immediate portion of the operand is just a boolean (the 'U' bit indicating
add vs. subtract). Treat it as such.
llvm-svn: 136969
|
|
|
|
| |
llvm-svn: 136942
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Memory operand parsing is a bit haphazzard at the moment, in no small part
due to the even more haphazzard representations of memory operands in the .td
files. Start cleaning that all up, at least a bit.
The addressing modes in the .td files will be being simplified to not be
so monolithic, especially with regards to immediate vs. register offsets
and post-indexed addressing. addrmode3 is on its way with this patch, for
example.
This patch is foundational to enable going back to smaller incremental patches
for the individual memory referencing instructions themselves. It does just
enough to get the basics in place and handle the "make check" regression tests
we already have.
Follow-up work will be fleshing out the details and adding more robust test
cases for the individual instructions, starting with ARM mode and moving from
there into Thumb and Thumb2.
llvm-svn: 136845
|
|
|
|
|
|
|
|
| |
Fix the instruction encoding for operands. Refactor mode to use explicit
instruction definitions per FIXME to be more consistent with loads/stores.
Fix disassembler accordingly. Add tests.
llvm-svn: 136509
|
|
|
|
|
|
|
|
|
|
|
| |
Fill in the missing fixed bits and the register operand bits of the instruction
encoding. Refactor the definition to make the mode explicit, which is
consistent with how loads and stores are normally represented and makes
parsing much easier. Add parsing aliases for pseudo-instruction variants.
Update the disassembler for the new representations. Add tests for parsing and
encoding.
llvm-svn: 136479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
specified in the same file that the library itself is created. This is
more idiomatic for CMake builds, and also allows us to correctly specify
dependencies that are missed due to bugs in the GenLibDeps perl script,
or change from compiler to compiler. On Linux, this returns CMake to
a place where it can relably rebuild several targets of LLVM.
I have tried not to change the dependencies from the ones in the current
auto-generated file. The only places I've really diverged are in places
where I was seeing link failures, and added a dependency. The goal of
this patch is not to start changing the dependencies, merely to move
them into the correct location, and an explicit form that we can control
and change when necessary.
This also removes a serialization point in the build because we don't
have to scan all the libraries before we begin building various tools.
We no longer have a step of the build that regenerates a file inside the
source tree. A few other associated cleanups fall out of this.
This isn't really finished yet though. After talking to dgregor he urged
switching to a single CMake macro to construct libraries with both
sources and dependencies in the arguments. Migrating from the two macros
to that style will be a follow-up patch.
Also, llvm-config is still generated with GenLibDeps.pl, which means it
still has slightly buggy dependencies. The internal CMake
'llvm-config-like' macro uses the correct explicitly specified
dependencies however. A future patch will switch llvm-config generation
(when using CMake) to be based on these deps as well.
This may well break Windows. I'm getting a machine set up now to dig
into any failures there. If anyone can chime in with problems they see
or ideas of how to solve them for Windows, much appreciated.
llvm-svn: 136433
|
|
|
|
|
|
| |
weren't aware of the changes to operand ordering. I hope to revive this sometime in the future, but it's not strictly necessary for now.
llvm-svn: 136362
|
|
|
|
|
|
| |
the writeback operand always the first.
llvm-svn: 136295
|