| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 147855
|
|
|
|
|
|
|
|
|
| |
These modifiers simply select either the low or high D subregister of a Neon
Q register. I've also removed the unimplemented 'p' modifier, which turns out
to be a bit different than the comment here suggests and as far as I can tell
was only intended for internal use in Apple's version of gcc.
llvm-svn: 146417
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
generator to it. For non-bundle instructions, these behave exactly the same
as the MC layer API.
For properties like mayLoad / mayStore, look into the bundle and if any of the
bundled instructions has the property it would return true.
For properties like isPredicable, only return true if *all* of the bundled
instructions have the property.
For properties like canFoldAsLoad, isCompare, conservatively return false for
bundles.
llvm-svn: 146026
|
|
|
|
|
|
|
|
|
|
|
| |
Previously, all ARM::CONSTPOOL_ENTRY instructions had a hardwired
alignment of 4 bytes emitted by ARMAsmPrinter. Now the same alignment
is set on the basic block.
This is in preparation of supporting ARM constant pool islands with
different alignments.
llvm-svn: 145890
|
|
|
|
|
|
|
|
|
|
|
|
| |
change, now you need a TargetOptions object to create a TargetMachine. Clang
patch to follow.
One small functionality change in PTX. PTX had commented out the machine
verifier parts in their copy of printAndVerify. That now calls the version in
LLVMTargetMachine. Users of PTX who need verification disabled should rely on
not passing the command-line flag to enable it.
llvm-svn: 145714
|
|
|
|
| |
llvm-svn: 143891
|
|
|
|
|
|
| |
modes. These are used by disassemblers to provide better disassembly, particularly on targets like ARM Thumb that like to intermingle data in the TEXT segment.
llvm-svn: 141135
|
|
|
|
| |
llvm-svn: 140943
|
|
|
|
| |
llvm-svn: 140939
|
|
|
|
|
|
| |
and block addresses.
llvm-svn: 140936
|
|
|
|
|
|
| |
for an MBB.
llvm-svn: 140824
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is still a hack until we can teach tblgen to generate the
optional CPSR operand rather than an implicit CPSR def. But the
strangeness is now limited to the selection DAG. ADD/SUB MI's no
longer have implicit CPSR defs, nor do we allow flag setting variants
of these opcodes in machine code. There are several corner cases to
consider, and getting one wrong would previously lead to nasty
miscompilation. It's not the first time I've debugged one, so this
time I added enough verification to ensure it won't happen again.
llvm-svn: 140228
|
|
|
|
|
|
| |
have a predicate operand, unlike conditional branches.
llvm-svn: 139415
|
|
|
|
| |
llvm-svn: 139024
|
|
|
|
|
|
|
| |
Make sure the low bit of the PC is set when loading an address directly
for jump tables in static relocation model.
llvm-svn: 138912
|
|
|
|
|
|
| |
These are strictly utilities for registering targets and components.
llvm-svn: 138450
|
|
|
|
|
|
|
|
| |
It should go before AsmPrinter MC pseudo expansion since it's based on
MachineInstr, not MCInst. Otherwise any frame related pseudo instructions
may be missed.
llvm-svn: 138386
|
|
|
|
| |
llvm-svn: 137217
|
|
|
|
| |
llvm-svn: 137115
|
|
|
|
|
|
| |
for allowing the fixed-length disassembler to distinguish between SBFX and STR_PRE.
llvm-svn: 136141
|
|
|
|
| |
llvm-svn: 135974
|
|
|
|
|
|
| |
ARM MC code from target.
llvm-svn: 135636
|
|
|
|
| |
llvm-svn: 134734
|
|
|
|
| |
llvm-svn: 134732
|
|
|
|
| |
llvm-svn: 134719
|
|
|
|
|
|
| |
TableGen'erated MC lowering pseudo-expansion.
llvm-svn: 134712
|
|
|
|
|
|
|
|
|
| |
Hook up the TableGen lowering for simple pseudo instructions for ARM and
use it for a subset of the many pseudos the backend has as proof of concept.
More conversions to come.
llvm-svn: 134705
|
|
|
|
|
|
| |
multiply-accumulate instructions with separate rounding steps.
llvm-svn: 134609
|
|
|
|
| |
llvm-svn: 134525
|
|
|
|
|
|
|
|
|
|
| |
Merge the tMOVr, tMOVgpr2tgpr, tMOVtgpr2gpr, and tMOVgpr2gpr instructions
into tMOVr. There's no need to keep them separate. Giving the tMOVr
instruction the proper GPR register class for its operands is sufficient
to give the register allocator enough information to do the right thing
directly.
llvm-svn: 134204
|
|
|
|
|
|
|
|
|
| |
Fix a FIXME and allow predication (in Thumb2) for the T1 register to
register MOV instructions. This allows some better codegen with
if-conversion (as seen in the test updates), plus it lays the groundwork
for pseudo-izing the tMOVCC instructions.
llvm-svn: 134197
|
|
|
|
|
|
|
|
| |
It's just a t2LDMIA_UPD instruction with extra codegen properties, so it
doesn't need the encoding information. As a side-benefit, we now correctly
recognize for instruction printing as a 'pop' instruction.
llvm-svn: 134173
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
register allocation dependent and will occasionally break. WIP in the
register allocator to model paired/etc registers.
rdar://9119939
llvm-svn: 132242
|
|
|
|
| |
llvm-svn: 132222
|
|
|
|
| |
llvm-svn: 132128
|
|
|
|
| |
llvm-svn: 132107
|
|
|
|
| |
llvm-svn: 132086
|
|
|
|
|
|
| |
Part of rdar://9119939
llvm-svn: 132081
|
|
|
|
|
|
| |
fixes <rdar://problem/9495913>
llvm-svn: 132042
|
|
|
|
|
|
| |
reflect their actual meaning and match the ARM instructions.
llvm-svn: 132039
|
|
|
|
|
|
| |
Part of rdar://9119939
llvm-svn: 132024
|
|
|
|
|
|
| |
Part of rdar://9119939
llvm-svn: 132023
|
|
|
|
|
|
|
|
| |
do.
Part of rdar://9119939.
llvm-svn: 132015
|
|
|
|
|
|
| |
Fixes part of rdar://9444657
llvm-svn: 132011
|
|
|
|
|
|
|
|
| |
branches
in Darwin Thumb2 code. Tail calls are already disabled on Thumb1.
llvm-svn: 131894
|
|
|
|
|
|
|
|
| |
(this is what used in Android NDK, when architecture is ARMv5)
patch by Koan-Sin Tan
llvm-svn: 131751
|
|
|
|
|
|
|
|
|
|
| |
("T is 1 if the target symbol S has type STT_FUNC and the
symbol addresses a Thumb instruction ;it is 0 otherwise."
from "ELF for the ARM Architecture" 4.7.1.2)
Patch by Koan-Sin Tan!
llvm-svn: 131406
|
|
|
|
| |
llvm-svn: 130854
|