| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
Reviewers: dsanders
Reviewed by: dsanders
Differential Revision: http://reviews.llvm.org/D3430
llvm-svn: 207565
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
that were missed
Summary:
The InstSE class already initializes Predicates to [HasStdEnc].
No functional change (confirmed by diffing tablegen-erated files before and
after)
Differential Revision: http://reviews.llvm.org/D3548
llvm-svn: 207558
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The InstSE class already initializes Predicates to [HasStdEnc].
No functional change (confirmed by diffing tablegen-erated files before and
after)
Differential Revision: http://reviews.llvm.org/D3547
llvm-svn: 207551
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The MipsPat class already initializes Predicates to [HasStdEnc].
No functional change (confirmed by diffing tablegen-erated files before and
after)
Differential Revision: http://reviews.llvm.org/D3546
llvm-svn: 207548
|
| |
|
|
| |
llvm-svn: 207526
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This isn't supported directly so we splat the vector element and extract
the most convenient copy.
Reviewers: matheusalmeida
Reviewed By: matheusalmeida
Differential Revision: http://reviews.llvm.org/D3530
llvm-svn: 207524
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This patch centralizes the handling of the thumb bit around
MCStreamer::isThumbFunc and makes isThumbFunc handle aliases.
This fixes a corner case, but the main advantage is having just one
way to check if a MCSymbol is thumb or not. This should still be
refactored to be ARM only, but at least now it is just one predicate
that has to be refactored instead of 3 (isThumbFunc,
ELF_Other_ThumbFunc, and SF_ThumbFunc).
llvm-svn: 207522
|
| |
|
|
|
|
| |
rdar://problem/16660411
llvm-svn: 207518
|
| |
|
|
|
|
| |
rdar://problem/16660411
llvm-svn: 207517
|
| |
|
|
|
|
|
| |
There are no patterns for this. This was already fixed for ARM64 but I forgot
to apply it to AArch64 too.
llvm-svn: 207515
|
| |
|
|
|
|
| |
Added intrinsics for VPERMT2PS/PD/D/Q instructions.
llvm-svn: 207513
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves.
llvm-svn: 207511
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. AArch64 edition
llvm-svn: 207510
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. ARM64 edition
llvm-svn: 207509
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Hexagon edition
llvm-svn: 207508
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. MSP430 edition
llvm-svn: 207507
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Mips edition
llvm-svn: 207506
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. NVPTX edition
llvm-svn: 207505
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. PowerPC edition
llvm-svn: 207504
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. R600 edition
llvm-svn: 207503
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. Sparc edition
llvm-svn: 207502
|
| |
|
|
|
|
| |
'final' and leave 'virtual' on some methods that are marked virtual without overriding anything and have no obvious overrides themselves. XCore edition
llvm-svn: 207501
|
| |
|
|
|
|
| |
is introduced by r207485.
llvm-svn: 207500
|
| |
|
|
|
|
| |
E.g. Mask like <-1, -1, 1, ...> will generate incorrect EXT index.
llvm-svn: 207485
|
| |
|
|
|
|
|
| |
opcode so there's no reason to use the target namespace for it
rather than TargetOpcode.
llvm-svn: 207475
|
| |
|
|
| |
llvm-svn: 207474
|
| |
|
|
| |
llvm-svn: 207473
|
| |
|
|
| |
llvm-svn: 207472
|
| |
|
|
|
|
| |
X86TargetLowering::getScalingFactorCost.
llvm-svn: 207432
|
| |
|
|
|
|
| |
D subregister.
llvm-svn: 207423
|
| |
|
|
|
|
|
|
| |
It's bad enough that I have to look up 5 different levels of TableGen class
definitions to work out what bits go where in a simple NEON instruction anyway,
without having to keep track of umpteen unused parameters.
llvm-svn: 207420
|
| |
|
|
|
|
|
|
|
|
| |
X86_MAX_OPERANDS is changed to unsigned.
Also, add range-based for loops for affected loops. This in turn
needed an ArrayRef instead of a pointer-to-array in
InternalInstruction.
llvm-svn: 207413
|
| |
|
|
|
|
|
|
|
|
|
| |
Someone couldn't bear to have a completely orthogonal set of floating-point
registers, so we've got some instructions that only accept v0-v15 (coming in
ARMv9, V128_prime: you're allowed v2, v3, v5, v7, ...).
Anyway, we were permitting even the out of range registers during assembly
(CodeGen handled it correctly). This adds a diagnostic.
llvm-svn: 207412
|
| |
|
|
| |
llvm-svn: 207399
|
| |
|
|
| |
llvm-svn: 207397
|
| |
|
|
| |
llvm-svn: 207394
|
| |
|
|
|
|
|
| |
This fixes the asm printer implementation and lets the parser be unaware of
what .thumb_set is.
llvm-svn: 207381
|
| |
|
|
| |
llvm-svn: 207378
|
| |
|
|
| |
llvm-svn: 207377
|
| |
|
|
| |
llvm-svn: 207376
|
| |
|
|
| |
llvm-svn: 207374
|
| |
|
|
|
|
|
| |
Includes a fix for a horrible typo that caused all SDIV costs to be
slightly off :)
llvm-svn: 207371
|
| |
|
|
|
|
|
|
| |
high parts.
This is more expensive than pmuldq but still cheaper than scalarizing the whole thing.
llvm-svn: 207370
|
| |
|
|
|
|
|
|
| |
Only the object streamers need to track if a symbol should be marked thumb or
not. This ports the ELF case. The COFF case is not ported since it is currently
not working for some other reason (I will report a bug).
llvm-svn: 207366
|
| |
|
|
|
|
|
| |
Explicitly "implement" the destructor as MSVC does not support defaulted methods
yet.
llvm-svn: 207350
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Introduce support for WoA PE/COFF object file emission from LLVM. Add the new
target specific PE/COFF Streamer (ARMWinCOFFStreamer) that handles the ARM
specific behaviour of PE/COFF object emission. ARM exception information is not
yet emitted and is a TODO item.
The ARM specific object writer (ARMWinCOFFObjectWriter) handles the ARM specific
relocation handling in conjunction with the WinCOFFObjectWriter in the MC layer.
The MC layer needs to be updated to deal with the relocation adjustments.
Branch relocations are adjusted by 4 bytes (unlikely their ELF counterparts).
Minor tweaks to switch multiple conditional checks into equivalent switch
statements. The ObjectFileInfo is updated to relax the object file setup for
Windows COFF. Move the architecture checks into an assertion. Windows COFF is
currently only supported on x86, x86_64, and ARM (thumb). Rather than
defaulting to ELF, we will refuse to generate an object file. This is better
though as you do not get an (arbitrary) object file which is different from the
request.
llvm-svn: 207345
|
| |
|
|
|
|
|
|
|
|
| |
This introduces a target specific streamer, X86WinCOFFStreamer, which handles
the target specific behaviour (e.g. WinEH). This is mostly to ensure that
differences between ARM and X86 remain disjoint and do not accidentally cross
boundaries. This is the final staging change for enabling object emission for
Windows on ARM.
llvm-svn: 207344
|
| |
|
|
|
|
|
|
|
| |
Currently, the integrated assembler is the only choice for assembling Windows on
ARM binaries. IAS supports the .file <filename> directive which emits the file
symbol into the resulting object binary. Mark the GNU COFF information to
indicate support for this feature.
llvm-svn: 207341
|
| |
|
|
| |
llvm-svn: 207330
|
| |
|
|
|
|
| |
and size.
llvm-svn: 207329
|