| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
| |
llvm-svn: 144243
|
|
|
|
|
|
| |
This is the first step towards splitting LLVM and Clang's tblgen executables.
llvm-svn: 140951
|
|
|
|
|
|
| |
Remove const qualifiers from Init references, per Chris' request.
llvm-svn: 136531
|
|
|
|
|
|
|
| |
Make references to Inits const everywhere. This is the final step
before making them unique.
llvm-svn: 136485
|
|
|
|
|
|
| |
necessitates a lot of changes to related bits.
llvm-svn: 135722
|
|
|
|
|
|
| |
multiple instructions with the same encoding. This resolves another conflict when bringing up the new-style disassembler.
llvm-svn: 135442
|
|
|
|
|
|
| |
Original Log: Get rid of the separate opcodes for the Darwin versions of tBL, tBLXi, and tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
llvm-svn: 135414
|
|
|
|
| |
llvm-svn: 135343
|
|
|
|
|
|
| |
tBLXr, using pseudo-instructions to lower to the single final opcode. Update the ARM disassembler for this change.
llvm-svn: 135319
|
|
|
|
|
|
| |
in multiple buildbots.
llvm-svn: 134936
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Manage Inits in a FoldingSet. This provides several benefits:
- Memory for Inits is properly managed
- Duplicate Inits are folded into Flyweights, saving memory
- It enforces const-correctness, protecting against certain classes
of bugs
The above benefits allow Inits to be used in more contexts, which in
turn provides more dynamism to TableGen. This enhanced capability
will be used by the AVX code generator to a fold common patterns
together.
llvm-svn: 134907
|
|
|
|
|
|
|
|
|
|
| |
For now this is distinct from isCodeGenOnly, as code-gen-only
instructions can (and often do) still have encoding information
associated with them. Once we've migrated all of them over to true
pseudo-instructions that are lowered to real instructions prior to
the printer/emitter, we can remove isCodeGenOnly and just use isPseudo.
llvm-svn: 134539
|
|
|
|
|
|
|
| |
It's just a call to a special helper function. Get rid of the T2 variant
entirely, as it's identical to the Thumb1 version.
llvm-svn: 134178
|
|
|
|
|
|
|
| |
It's just a tPOP instruction with additional code-gen properties, so it
doesn't need encoding information.
llvm-svn: 134172
|
|
|
|
|
|
|
|
|
|
| |
Unlike Thumb1, Thumb2 does not have dedicated encodings for adjusting the
stack pointer. It can just use the normal add-register-immediate encoding
since it can use all registers as a source, not just R0-R7. The extra
instruction definitions are just duplicates of the normal instructions with
the (not well enforced) constraint that the source register was SP.
llvm-svn: 134114
|
|
|
|
|
|
|
| |
They've been pseudos for a while now, so the decoder will never see
them in the first place.
llvm-svn: 134101
|
|
|
|
|
|
|
| |
The tSpill and tRestore instructions are just copies of the tSTRspi and
tLDRspi instructions, respectively. Just use those directly instead.
llvm-svn: 134092
|
|
|
|
|
|
|
|
|
|
| |
should
print out ldr, not ldr.n.
rdar://problem/9267772
llvm-svn: 130008
|
|
|
|
|
|
| |
Luis Felipe Strano Moraes!
llvm-svn: 129558
|
|
|
|
|
|
| |
rdar://problem/9267838
llvm-svn: 129320
|
|
|
|
|
|
| |
instructions, and add a test case for that.
llvm-svn: 128249
|
|
|
|
|
|
|
|
|
| |
stale since
the change to ("tLDMIA", "tLDMIA_UPD"). Update the conflict resolution code and add
test cases for that.
llvm-svn: 128247
|
|
|
|
|
|
|
| |
According to A8.6.189 STM/STMIA/STMEA (Encoding T1), there's only tSTMIA_UPD available.
Ignore tSTMIA for the decoder emitter and add a test case for that.
llvm-svn: 128246
|
|
|
|
|
|
|
|
|
| |
was fooled.
Set the encoding bits to {0,?,?,0}, not 0. Plus delegate the disassembly of ADR to
the more generic ADDri/SUBri instructions, and add a test case for that.
llvm-svn: 128234
|
|
|
|
| |
llvm-svn: 127517
|
|
|
|
| |
llvm-svn: 127510
|
|
|
|
| |
llvm-svn: 127509
|
|
|
|
| |
llvm-svn: 127508
|
|
|
|
| |
llvm-svn: 127506
|
|
|
|
| |
llvm-svn: 127491
|
|
|
|
|
|
| |
as for VDUP32d and VDUP32q, respectively.
llvm-svn: 127489
|
|
|
|
| |
llvm-svn: 127488
|
|
|
|
|
|
| |
and VDUPLN32d, respectively.
llvm-svn: 127486
|
|
|
|
|
|
| |
as for VREV64d32 and VREV64q32, respectively.
llvm-svn: 127485
|
|
|
|
| |
llvm-svn: 127445
|
|
|
|
| |
llvm-svn: 127434
|
|
|
|
| |
llvm-svn: 127419
|
|
|
|
| |
llvm-svn: 126931
|
|
|
|
|
|
| |
Patch by Jyun-Yan You, with some minor adjustments and a testcase from me.
llvm-svn: 126915
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
fixed-length instruction encodings.
A major part of its (eventual) goal is to support a much cleaner separation between disassembly callbacks
provided by the target and the disassembler emitter itself, i.e. not requiring hardcoding of knowledge in tblgen
like the existing disassembly emitters do.
The hope is that some day this will allow us to replace the existing non-Thumb ARM disassembler and remove
some of the hacks the old one introduced to tblgen.
llvm-svn: 125966
|
|
|
|
|
|
| |
instruction
llvm-svn: 123770
|
|
|
|
| |
llvm-svn: 121798
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the same COPY_TO_REGCLASS approach as for the 2-register *_sfp instructions.
This change made a big difference in the code generated for the
CodeGen/Thumb2/cross-rc-coalescing-2.ll test: The coalescer is still doing
a fine job, but some instructions that were previously moved outside the loop
are not moved now. It's using fewer VFP registers now, which is generally
a good thing, so I think the estimates for register pressure changed and that
affected the LICM behavior. Since that isn't obviously wrong, I've just
changed the test file. This completes the work for Radar 8711675.
llvm-svn: 121730
|
|
|
|
| |
llvm-svn: 121660
|
|
|
|
| |
llvm-svn: 121659
|
|
|
|
| |
llvm-svn: 121180
|
|
|
|
| |
llvm-svn: 120786
|
|
|
|
|
|
| |
instructions. They are handled as special moves, but encoded as a normal move.
llvm-svn: 120779
|
|
|
|
|
|
|
| |
no extra encoding information), so we no longer need to special case them
here.
llvm-svn: 120444
|
|
|
|
| |
llvm-svn: 120443
|