| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to reflect the new license.
We understand that people may be surprised that we're moving the header
entirely to discuss the new license. We checked this carefully with the
Foundation's lawyer and we believe this is the correct approach.
Essentially, all code in the project is now made available by the LLVM
project under our new license, so you will see that the license headers
include that license only. Some of our contributors have contributed
code under our old license, and accordingly, we have retained a copy of
our old license notice in the top-level files in each project and
repository.
llvm-svn: 351636
|
| |
|
|
| |
llvm-svn: 334708
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Previously PredicateControl in some cases was a member of <X>Inst classes
for some X (DSP, EVA) or was in more irregular place in the hierarchry
for any given instruction.
This patch moves PredicateControl down to the root so that it is consistently
available. Then correct the base class of microMIPS instructions as using
EncodingPredicates instead of the general Predicates field of Instruction.
Reviewers: smaksimovic, abeserminji, atanasyan
Differential Revision: https://reviews.llvm.org/D47526
llvm-svn: 333536
|
| |
|
|
|
|
|
|
|
|
| |
Reviewers: vkalintiris
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D13092
llvm-svn: 248486
|
| |
|
|
|
|
|
|
| |
passes in the mips back end. This, unfortunately, required a
bit of churn in the various predicates to use a pointer rather
than a reference.
llvm-svn: 212744
|
| |
|
|
| |
llvm-svn: 201081
|
| |
|
|
|
|
| |
This instruction is only available on Mips64 cores that implement the MSA ASE.
llvm-svn: 200543
|
| |
|
|
|
|
|
| |
This instruction is only available on Mips64 cores
that implement the MSA ASE.
llvm-svn: 200400
|
| |
|
|
|
|
|
| |
These instructions are only available on Mips64 cores
that implement the MSA ASE.
llvm-svn: 200398
|
| |
|
|
|
|
|
|
|
|
|
| |
instead of MipsPseudo
There's no test case for this commit. This is because it is doubtful that the
incorrect behaviour can actually trigger. When MSA is not enabled, the type
legalizer should have eliminated all occurrences of patterns the affected
pseudo-instruction could possibly match before instruction selection occurs.
llvm-svn: 195252
|
| |
|
|
| |
llvm-svn: 193240
|
| |
|
|
|
|
|
|
|
|
|
|
| |
These branches have a 16-bit offset (R_MIPS_PC16).
List of conditional branch instructions:
bnz.{b,h,w,d}
bnz.v
bz.{b,h,w,d}
bz.v
llvm-svn: 193157
|
| |
|
|
| |
llvm-svn: 193082
|
| |
|
|
| |
llvm-svn: 193081
|
| |
|
|
| |
llvm-svn: 193080
|
| |
|
|
|
|
|
|
| |
These instructions are logically related as they allow read/write of MSA control registers.
Currently MSA control registers are emitted by number but hopefully that will change as soon
as GAS starts accepting them by name as that would make the assembly easier to read.
llvm-svn: 193078
|
| |
|
|
|
|
|
| |
The second parameter of the SLD intrinsic is the number of columns (GPR) to
slide left the source array.
llvm-svn: 193076
|
| |
|
|
| |
llvm-svn: 192895
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
List of instructions:
bclri.{b,h,w,d}
binsli.{b,h,w,d}
binsri.{b,h,w,d}
bnegi.{b,h,w,d}
bseti.{b,h,w,d}
sat_s.{b,h,w,d}
sat_u.{b,h,w,d}
slli.{b,h,w,d}
srai.{b,h,w,d}
srari.{b,h,w,d}
srli.{b,h,w,d}
srlri.{b,h,w,d}
llvm-svn: 192589
|
| |
|
|
|
|
|
| |
List of instructions:
and.v, bmnz.v, bmz.v, bsel.v, nor.v, or.v, xor.v.
llvm-svn: 192588
|
| |
|
|
|
|
|
|
|
|
| |
List of instructions:
copy_s.{b,h,w}
copy_u.{b,h,w}
sldi.{b,h,w,d}
splati.{b,h,w,d}
llvm-svn: 192586
|
| |
|
|
|
|
|
|
|
| |
INSERT is the first type of MSA instruction that requires a change to the way
MSA registers are parsed. This happens because MSA registers may be suffixed by
an index in the form of an immediate or a general purpose register. The changes
to parseMSARegs reflect that requirement.
llvm-svn: 192582
|
| |
|
|
| |
llvm-svn: 192451
|
| |
|
|
| |
llvm-svn: 192450
|
| |
|
|
| |
llvm-svn: 192449
|
| |
|
|
|
|
|
|
| |
INSERT is the first type of MSA instruction that requires a change to the way MSA registers are parsed.
This happens because MSA registers may be suffixed by an index in the form of an immediate or a
general purpose register. The changes to parseMSARegs reflect that requirement.
llvm-svn: 192447
|
| |
|
|
|
|
|
|
|
| |
This patch adds Direct Object Emission support for I8 instructions: andi.b, bmnzi.b, bmzi.b, bseli.b, nori.b, ori.b, shf.{b,h,w} and xori.b.
Patch by Matheus Almeida
llvm-svn: 191688
|
| |
|
|
|
|
|
|
|
| |
This patch adds Direct Object Emission support for I5 instructions: addvi.{b,h,w,d}, ceqi.{b,h,w,d}, clei_s.{b,h,w,d}, clei_u.{b,h,w,d}, clti_s.{b,h,w,d}, clti_u.{b,h,w,d}, maxi_s.{b,h,w,d}, maxi_u.{b,h,w,d}, mini_s.{b,h,w,d}, mini_u.{b,h,w,d}, subvi.{b,h,w,d}.
Patch by Matheus Almeida
llvm-svn: 191687
|
| |
|
|
|
|
|
|
|
| |
This patch adds Direct Object Emission support for 2R instructions: nloc.{b,h,w}, nlzc.{b,h,w}, pcnt.{b,w,d}.
Patch by Matheus Almeida
llvm-svn: 191685
|
| |
|
|
|
|
|
|
| |
and not an MSA register
Patch by Matheus Almeida
llvm-svn: 191684
|
| |
|
|
|
|
| |
Patch by Matheus Almeida
llvm-svn: 191461
|
| |
|
|
|
|
|
|
| |
This is the first set of instructions with a ".b" modifier thus we need to add the required code to disassemble a MSA128B register class.
Patch by Matheus Almeida
llvm-svn: 191415
|
| |
|
|
|
|
|
|
|
|
| |
In more detail, this patch adds the ability to parse, encode and decode MSA registers ($w0-$w31). The format of 2RF instructions (MipsMSAInstrFormat.td) was updated so that we could attach a test case to this patch i.e., the test case parses, encodes and decodes 2 MSA instructions. Following patches will add the remainder of the instructions.
Note that DecodeMSA128BRegisterClass is missing from MipsDisassembler.td because it's not yet required at this stage and having it would cause a compiler warning (unused function).
Patch by Matheus Almeida
llvm-svn: 191412
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
These intrinsics are legalized to V(ALL|ANY)_(NON)?ZERO nodes,
are matched as SN?Z_[BHWDV]_PSEUDO pseudo's, and emitted as
a branch/mov sequence to evaluate to 0 or 1.
Note: The resulting code is sub-optimal since it doesnt seem to be possible
to feed the result of an intrinsic directly into a brcond. At the moment
it uses (SETCC (VALL_ZERO $ws), 0, SETEQ) and similar which unnecessarily
evaluates the boolean twice.
llvm-svn: 189478
|
| |
|
|
|
|
|
|
| |
The MSA control registers have been added as reserved registers,
and are only used via ISD::Copy(To|From)Reg. The intrinsics are lowered
into these nodes.
llvm-svn: 189468
|
| |
|
|
| |
llvm-svn: 188767
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Includes:
add_a, adds_[asu], addv, addvi, andi.b, asub_[su].[bhwd], aver?_[su]_[bhwd],
bclr, bclri, bins[lr], bins[lr]i, bmnzi, bmzi, bneg, bnegi, bseli, bset, bseti,
c(eq|ne), c(eq|ne)i, cl[et]_[su], cl[et]i_[su], copy_[su].[bhw], div_[su],
dotp_[su], dpadd_[su], dpsub_[su], ilvev, ilvl, ilvod, ilvr, insv, insve,
ldi
Patch by Daniel Sanders
llvm-svn: 188457
|
|
|
* msa SubtargetFeature
* registers
* ld.[bhwd], and st.[bhwd] instructions
Does not correctly prohibit use of both 32-bit FPU registers and MSA together.
Patch by Daniel Sanders
llvm-svn: 188313
|