| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
the register info for getEncodingValue. This builds on the
small patch of yesterday to set HWEncoding in the register
file.
One (deprecated) use was turned into a hard number to avoid
needing register info in the old JIT.
llvm-svn: 161628
|
|
|
|
|
|
| |
This probably mostly shows up in bugpoint-generated code.
llvm-svn: 158527
|
|
|
|
|
|
| |
They need to go on the PICLDR as the verifier points out.
llvm-svn: 157151
|
|
|
|
| |
llvm-svn: 153500
|
|
|
|
| |
llvm-svn: 153422
|
|
|
|
|
|
| |
specific backends.
llvm-svn: 152537
|
|
|
|
|
|
|
| |
Register pair VLD1/VLD2 all-lanes instructions. Kill off more of the
pseudos as a result.
llvm-svn: 152150
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878
|
|
|
|
| |
llvm-svn: 148578
|
|
|
|
|
|
| |
rdar://10663487
llvm-svn: 147876
|
|
|
|
|
|
|
|
|
|
|
| |
My change r146949 added register clobbers to the eh_sjlj_dispatchsetup pseudo
instruction, but on Thumb1 some of those registers cannot be used. This
caused massive failures on the testsuite when compiling for Thumb1. While
fixing that, I noticed that the eh_sjlj_setjmp instruction has a "nofp"
variant, and I realized that dispatchsetup needs the same thing, so I have
added that as well.
llvm-svn: 147204
|
|
|
|
| |
llvm-svn: 147069
|
|
|
|
| |
llvm-svn: 147025
|
|
|
|
|
|
| |
I don't think this affects anything but verbose assembly.
llvm-svn: 146787
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
| |
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: 145510
|
|
|
|
| |
llvm-svn: 145504
|
|
|
|
| |
llvm-svn: 145450
|
|
|
|
| |
llvm-svn: 145442
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The EmitBasePointerRecalculation function has 2 problems, one minor and one
fatal. The minor problem is that it inserts the code at the setjmp
instead of in the dispatch block. The fatal problem is that at the point
where this code runs, we don't know whether there will be a base pointer,
so the entire function is a no-op. The base pointer recalculation needs to
be handled as it was before, by inserting a pseudo instruction that gets
expanded late.
Most of the support for the old approach is still here, but it no longer
has any connection to the eh_sjlj_dispatchsetup intrinsic. Clean up the
parts related to the intrinsic and just generate the pseudo instruction
directly.
llvm-svn: 144781
|
|
|
|
|
|
| |
Original commit msg: 'ARM assembly parsing for VST1 two-register encoding.'
llvm-svn: 144437
|
|
|
|
| |
llvm-svn: 143369
|
|
|
|
|
|
|
| |
The _fixed variants have a writeback operand, but not a stride operand.
Split the conditional flag to distinguish the cases.
llvm-svn: 143356
|
|
|
|
| |
llvm-svn: 142877
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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: 139024
|
|
|
|
| |
llvm-svn: 138177
|
|
|
|
|
|
|
| |
Therefore, rather then generate a pseudo instruction, which is later expanded,
generate the necessary instructions in place.
llvm-svn: 138163
|
|
|
|
| |
llvm-svn: 138025
|
|
|
|
|
|
|
| |
Apparently we never added code to expand these pseudo instructions, and in
over a year, no one has noticed. Our register allocator must be awesome!
llvm-svn: 137551
|
|
|
|
|
|
|
|
|
|
| |
This hidden llc option runs the machine code verifier after expanding
ARM pseudo-instructions, but before if-conversion.
The machine code verifier is much better at pointing out liveness errors
that can trip up the register scavenger.
llvm-svn: 136439
|
|
|
|
|
|
| |
necessitates a lot of changes to related bits.
llvm-svn: 135722
|
|
|
|
|
|
| |
allowing us to distinguish the encodings that use shifted registers from those that use shifted immediates. This is necessary to allow the fixed-length decoder to distinguish things like BICS vs LDRH.
llvm-svn: 135693
|
|
|
|
|
|
| |
ARM MC code from target.
llvm-svn: 135636
|
|
|
|
|
|
| |
to simplify the path towards an auto-generated disassembler.
llvm-svn: 135290
|
|
|
|
| |
llvm-svn: 135047
|
|
|
|
|
|
|
|
| |
t2MOVCC[ri] are just t2MOV[ri] instructions, so properly pseudo-ize them.
The Thumb1 versions, tMOVCC[ri] were only present for use by the size-
reduction pass, so they're no longer necessary at all and can be deleted.
llvm-svn: 134242
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
sink them into MC layer.
- Added MCInstrInfo, which captures the tablegen generated static data. Chang
TargetInstrInfo so it's based off MCInstrInfo.
llvm-svn: 134021
|
|
|
|
|
|
| |
There are probably more instances of this floating around.
llvm-svn: 130474
|