| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 193623
|
|
|
|
| |
llvm-svn: 193332
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 193077
|
|
|
|
|
|
|
| |
The second parameter of the SLD intrinsic is the number of columns (GPR) to
slide left the source array.
llvm-svn: 193076
|
|
|
|
| |
llvm-svn: 192661
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
llvm-svn: 192587
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When MC was first added, targets could use hasRawTextSupport to keep features
working before they were added to the MC interface.
The design goal of MC is to provide an uniform api for printing assembly and
object files. Short of relaxations and other corner cases, a object file is
just another representation of the assembly.
It was never the intention that targets would keep doing things like
if (hasRawTextSupport())
Set flags in one way.
else
Set flags in another way.
When they do that they create two code paths and the object file is no longer
just another representation of the assembly. This also then requires testing
with llc -filetype=obj, which is extremelly brittle.
This patch removes some of these hacks by replacing them with smaller ones.
The ARM flag setting is trivial, so I just moved it to the constructor. For
Mips, the patch adds two temporary hack directives that allow the assembly
to represent the same things as the object file was already able to.
The hope is that the mips developers will replace the hack directives with
the same ones that gas uses and drop the -print-hack-directives flag.
I will also try to implement a target streamer interface, so that we can
move this out of the common code.
In summary, for any new work, two rules of the thumb are
* Don't use "llc -filetype=obj" in tests.
* Don't add calls to hasRawTextSupport.
llvm-svn: 192035
|
|
|
|
| |
llvm-svn: 191992
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch handles LLVM standalone assembler (llvm-mc) ELF flag setting based on input file
directive processing.
Mips assembly requires processing inline directives that directly and
indirectly affect the output ELF header flags. This patch handles one
".abicalls".
To process these directives we are following the model the code generator
uses by storing state in a container as we go through processing and when
we detect the end of input file processing, AsmParser is notified and we
update the ELF header flags through a MipsELFStreamer method with a call from
MCTargetAsmParser::emitEndOfAsmFile(MCStreamer &OutStreamer).
This patch will allow other targets the same functionality.
Jack
llvm-svn: 191982
|
|
|
|
|
|
| |
Corresponding test cases are added.
llvm-svn: 191734
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Patch by Matheus Almeida
llvm-svn: 191413
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
Test cases are added.
llvm-svn: 190780
|
|
|
|
| |
llvm-svn: 190746
|
|
|
|
| |
llvm-svn: 190745
|
|
|
|
|
|
| |
register when PFU is 32 bit.
llvm-svn: 190397
|
|
|
|
| |
llvm-svn: 190232
|
|
|
|
| |
llvm-svn: 190219
|
|
|
|
|
|
| |
Test cases are included in patch.
llvm-svn: 190154
|
|
|
|
|
|
| |
cases are included in patch.
llvm-svn: 190148
|
|
|
|
|
|
| |
Also, fix predicates.
llvm-svn: 189432
|
|
|
|
| |
llvm-svn: 189213
|
|
|
|
| |
llvm-svn: 188851
|
|
|
|
|
|
| |
assembler predicate HasStdEnd so that it is false when the target is micromips.
llvm-svn: 188824
|
|
|
|
|
|
| |
code-gen-only.
llvm-svn: 188690
|
|
|
|
|
|
| |
files.
llvm-svn: 188537
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
- Instead of setting the suffixes in a bunch of places, just set one master
list in the top-level config. We now only modify the suffix list in a few
suites that have one particular unique suffix (.ml, .mc, .yaml, .td, .py).
- Aside from removing the need for a bunch of lit.local.cfg files, this enables
4 tests that were inadvertently being skipped (one in
Transforms/BranchFolding, a .s file each in DebugInfo/AArch64 and
CodeGen/PowerPC, and one in CodeGen/SI which is now failing and has been
XFAILED).
- This commit also fixes a bunch of config files to use config.root instead of
older copy-pasted code.
llvm-svn: 188513
|
|
|
|
| |
llvm-svn: 188344
|
|
|
|
|
|
|
|
| |
This includes instructions lwl, lwr, swl and swr.
Patch by Zoran Jovnovic
llvm-svn: 188312
|
|
|
|
| |
llvm-svn: 188176
|