| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
| |
llvm-svn: 202518
|
|
|
|
|
|
|
|
|
| |
* Align targets of indirect jumps to instruction bundle boundaries (in MI layer).
* Add masking instructions before indirect jumps (in MC layer).
Differential Revision: http://llvm-reviews.chandlerc.com/D2847
llvm-svn: 202479
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Assembler.
Summary:
This removes the need to coerce UnknownABI to the default ABI (O32 for
MIPS32, N64 for MIPS64 [*]) in both MipsSubtarget and MipsAsmParser.
Clang has been updated to disable both possible default ABI's before enabling
the ABI it intends to use.
[*] N64 being the default for MIPS64 is not actually correct.
However N32 is not fully implemented/tested yet.
Depends on: D2830
Reviewers: jacksprat, matheusalmeida
Reviewed By: matheusalmeida
Differential Revision: http://llvm-reviews.chandlerc.com/D2832
Differential Revision: http://llvm-reviews.chandlerc.com/D2846
llvm-svn: 201792
|
|
|
|
| |
llvm-svn: 201684
|
|
|
|
| |
llvm-svn: 201081
|
|
|
|
| |
llvm-svn: 200969
|
|
|
|
|
|
|
|
|
|
|
| |
Patch implements %hi(sym1 - sym2) and %lo(sym1 - sym2) expressions for MIPS
by creating target expression class MipsMCExpr.
Patch by Sasa Stankovic.
Differential Revision: http://llvm-reviews.chandlerc.com/D2592
llvm-svn: 200783
|
|
|
|
|
|
|
|
|
| |
To remove this one simply move the end of file logic from the asm printer to
the target mc streamer.
This removes the last call to hasRawTextSupport from lib/Target.
llvm-svn: 200590
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
As opposed to GCC/GAS the default ABI for Mips64 is n64.
Compatibility bit should be set if o32 ABI is used when targeting Mips64.
llvm-svn: 200332
|
|
|
|
|
|
|
|
|
|
|
|
| |
These were:
* noreorder handling on the target object streamer and asm parser.
* setting the initial flag bits based on the enabled features.
* setting the elf header flag for micromips
It is *really* depressing I am the one doing this instead of someone at
mips actually taking the time to understand the infrastructure.
llvm-svn: 200138
|
|
|
|
|
|
| |
This is an expanded version of r200064.
llvm-svn: 200115
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
r200064 depends on r200051.
r200051 is broken: I tries to replace .mips_hack_elf_flags, which is a good
thing, but what it replaces it with is even worse.
The new emitMipsELFFlags it adds corresponds to no assembly directive, is not
marked as a hack and is not even printed to the .s file.
The patch also introduces more uses of hasRawTextSupport.
The correct way to remove .mips_hack_elf_flags is to have the mips target
streamer handle the default flags (and command line options). That way the
same code path is used for asm and obj. The streamer interface should *really*
correspond to what is printed in the .s file.
llvm-svn: 200078
|
|
|
|
|
|
| |
No code changes. Just reassignment of test case files.
llvm-svn: 200064
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch uses a common MipsTargetSteamer interface for both
MipsAsmPrinter and MipsAsmParser for recording default and commandline
driven directives that affect ELF header flags.
It has been noted that the .ll tests affected by this patch belong in
test/Codegen/Mips. I will move them in a separate patch.
Also, a number of directives do not get expressed by AsmPrinter in the
resultant .s assembly such as setting the correct ASI. I have noted this
in the tests and they will be addressed in later patches.
llvm-svn: 200051
|
|
|
|
|
|
|
|
|
|
| |
This patch updates .set mips16 support which
affects the ELF ABI and its flags. In addition the patch uses
a common interface for both the MipsTargetSteamer and
MipsObjectStreamer that the assembler uses for
both ELF and ASCII output for these directives.
llvm-svn: 199851
|
|
|
|
| |
llvm-svn: 199315
|
|
|
|
|
|
|
|
|
| |
The GNU as behavior is a bit different and very strange. It will mark any
label that contains an instruction. We can implement that, but using the
type looks more natural since gas will not mark a function if a .word is
used to output the instructions!
llvm-svn: 199287
|
|
|
|
|
|
| |
micromips-load-effective-address.ll and moved to test/CodeGen/Mips.
llvm-svn: 199221
|
|
|
|
|
|
|
| |
This matches what gnu as does and implementing this is easier than arguing
about it.
llvm-svn: 199181
|
|
|
|
|
|
|
|
|
|
| |
This patch adds .abicalls and .set pic0 support which
affects the ELF ABI and its flags. In addition the patch uses
a common interface for both the MipsTargetSteamer and
MipsObjectStreamer that both the integrated and standalone
assemblers will use for the output for these directives.
llvm-svn: 198646
|
|
|
|
| |
llvm-svn: 198010
|
|
|
|
| |
llvm-svn: 198009
|
|
|
|
| |
llvm-svn: 197815
|
|
|
|
| |
llvm-svn: 197696
|
|
|
|
| |
llvm-svn: 197692
|
|
|
|
| |
llvm-svn: 197685
|
|
|
|
|
|
|
|
|
| |
1. The arch directive now appears before the cpu directive
2. Long run lines were split across multiple lines
No functional changes.
llvm-svn: 197588
|
|
|
|
|
|
| |
No functional changes.
llvm-svn: 197559
|
|
|
|
|
|
|
| |
The branch offset for a R_MIPS_PC16 relocation is indeed a 16-bit signed
immediate.
llvm-svn: 197506
|
|
|
|
|
|
|
|
|
|
|
| |
branch instructions for mips and micromips instruction sets thus avoiding
the situation of generating branches to undesired locations if offsets
cannot be encoded.
This patch also checks if a fixup cannot be applied and returns a fatal error
if that's the case.
llvm-svn: 197223
|
|
|
|
|
|
|
|
|
| |
the parsing is directed to set alias for register. This will result in errors reported when expressions containing label references are parsed(for example long jumps)
As we can't make a complete solution now it has been decided to enable .set directive to handle long jump expressions. This will cause parser to report errors when parsing integer based register assignments, for example:
.set r3, will be reported as error. Still, the need for expressions is higher priority as the integer based register assignments are Mips specific and can be avoided using register names.
llvm-svn: 196773
|
|
|
|
|
|
|
|
|
| |
not being correctly encoded/decoded.
In more detail, immediate fields of LD/ST instructions should be
divided/multiplied by the size of the data format before encoding and
after decoding, respectively.
llvm-svn: 196494
|
|
|
|
| |
llvm-svn: 195976
|
|
|
|
| |
llvm-svn: 195967
|
|
|
|
| |
llvm-svn: 195965
|
|
|
|
| |
llvm-svn: 195152
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
No true functional changes.
Change the "hack" name of emitMipsHackSTOCG to emitSymSTO.
Remove demonstration code in AsmParser for emitMipsHackSTOCG and
emitMipsHackELFFlags. The STO field is in an ELF symbol and is not
an explicit directive. That said, we are missing the compliment call
in AsmParser and that will need to be addressed soon.
XFAIL dummy tests for emitMipsHackELFFlags and emitMipsHackELFFlags.
These will built out with following patches.
llvm-svn: 195067
|
|
|
|
|
|
| |
Note that there's no hardware yet that relies on that encoding.
llvm-svn: 195006
|
|
|
|
|
|
|
|
|
| |
encoded.
The immediate field should be encoded as "imm - 1" as the CPU always adds one to that field.
llvm-svn: 195004
|
|
|
|
| |
llvm-svn: 194792
|
|
|
|
| |
llvm-svn: 194570
|
|
|
|
| |
llvm-svn: 194569
|
|
|
|
|
|
| |
alias uses default register operand.
llvm-svn: 194562
|
|
|
|
| |
llvm-svn: 194258
|
|
|
|
|
|
| |
The encoding was updated in MSA r1.07.
llvm-svn: 194255
|
|
|
|
|
|
| |
clang-format are also included.
llvm-svn: 194145
|
|
|
|
| |
llvm-svn: 193992
|