| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6796
llvm-svn: 225008
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6416
llvm-svn: 224771
|
|
|
|
|
|
| |
MCTargetDesc folder(LLVMMipsDesc library) prevents linkage errors. There are no functional changes.
llvm-svn: 224427
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5667
llvm-svn: 224338
|
|
|
|
| |
llvm-svn: 223758
|
|
|
|
|
|
|
|
| |
Use the MCAsmInfo instead of the DataLayout, and allow
specifying a custom prefix for labels specifically. HSAIL
requires that labels begin with @, but global symbols with &.
llvm-svn: 223323
|
|
|
|
|
|
|
|
|
| |
This patch implements microMIPS 16-bit (MOVE16 $0, $0) and
32-bit (SLL $0, $0, 0) NOP aliases.
http://reviews.llvm.org/D6440
llvm-svn: 222953
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5579
llvm-svn: 222901
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5122
llvm-svn: 222653
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5519
llvm-svn: 222367
|
|
|
|
| |
llvm-svn: 222244
|
|
|
|
| |
llvm-svn: 221367
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D6039
llvm-svn: 221355
|
|
|
|
| |
llvm-svn: 221354
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5163
llvm-svn: 221351
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5153
llvm-svn: 220477
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5151
llvm-svn: 220476
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5774
llvm-svn: 220474
|
|
|
|
| |
llvm-svn: 219799
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5084
llvm-svn: 219500
|
|
|
|
| |
llvm-svn: 218870
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: It's better if we have a consistent name for .cpload-related functions.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D5437
llvm-svn: 218768
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary: This directive is used to tell the assembler to reject DSP-specific instructions.
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D5142
llvm-svn: 217946
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D5046
llvm-svn: 217681
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This directive is used to reset the assembler options to their initial values.
Assembly programmers use it in conjunction with the ".set mipsX" directives.
This patch depends on the .set push/pop directive (http://reviews.llvm.org/D4821).
Contains work done by Matheus Almeida.
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D4957
llvm-svn: 217438
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
These directives are used to save the current assembler options (in the case of ".set push") and restore the previously saved options (in the case of ".set pop").
Contains work done by Matheus Almeida.
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D4821
llvm-svn: 217432
|
|
|
|
| |
llvm-svn: 217077
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This directive is similar to ".set mipsX".
It is used to change the CPU target of the assembler, enabling it to accept instructions for a specific CPU.
This patch only implements the r4000 CPU (which is treated internally as generic mips3) and the generic ISAs.
Contains work done by Matheus Almeida.
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D4884
llvm-svn: 215978
|
|
|
|
|
|
| |
We already require CFI, so it should be safe to require .leb128 and .uleb128.
llvm-svn: 215712
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
getCanHaveModuleDir() is renamed to isModuleDirectiveAllowed(), and
setCanHaveModuleDir() is renamed to forbidModuleDirective() since it is only
ever given a false argument.
Reviewers: vmedic
Reviewed By: vmedic
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D4885
llvm-svn: 215628
|
|
|
|
|
|
|
|
|
|
| |
Add header guards to files that were missing guards. Remove #endif comments
as they don't seem common in LLVM (we can easily add them back if we decide
they're useful)
Changes made by clang-tidy with minor tweaks.
llvm-svn: 215558
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
Moved some calls to setCanHaveModuleDir to the MipsTargetStreamer base class and removed the resulting empty functions from the MipsTargetELFStreamer class.
Also fixed a missing call to setCanHaveModuleDir in MipsTargetELFStreamer::emitDirectiveSetMicroMips.
Reviewers: dsanders
Reviewed By: dsanders
Subscribers: tomatabacu
Differential Revision: http://reviews.llvm.org/D4781
llvm-svn: 215542
|
|
|
|
|
|
|
|
|
|
|
| |
Patch by Matheus Almeida and Toma Tabacu
The lld test failure on the previous attempt to commit was caused by the
addition of the .pdr section causing the offsets it was checking to change.
This has been fixed by removing the .ent/.end directives from that test since
they weren't really needed.
llvm-svn: 215535
|
|
|
|
| |
llvm-svn: 215441
|
|
|
|
| |
llvm-svn: 215440
|
|
|
|
|
|
|
|
| |
assembler directives
It seems to cause an lld test (elf/Mips/hilo16-3.test) to fail. Reverted while we investigate.
llvm-svn: 215361
|
|
|
|
|
|
|
|
| |
Patch by Matheus Almeida and Toma Tabacu
Differential Revision: http://reviews.llvm.org/D4179
llvm-svn: 215359
|
|
|
|
|
|
|
| |
At least on PowerPC, the interpretation of certain modifiers depends on
the context they appear in.
llvm-svn: 215310
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
These directives are used to toggle whether the assembler accepts MSA-specific instructions or not.
Patch by Matheus Almeida and Toma Tabacu.
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D4783
llvm-svn: 215099
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
This patch also fixes an issue with the way the Mips assembler enables/disables architecture
features. Before this patch, the assembler never disabled feature bits. For example,
.set mips64
.set mips32r2
would result in the 'OR' of mips64 with mips32r2 feature bits which isn't right.
Unfortunately this isn't trivial to fix because there's not an easy way to clear
feature bits as the algorithm in MCSubtargetInfo (ToggleFeature) only clears the bits
that imply the feature being cleared and not the implied bits by the feature (there's a
better explanation to the code I added).
Patch by Matheus Almeida and updated by Toma Tabacu
Reviewers: vmedic, matheusalmeida, dsanders
Reviewed By: dsanders
Subscribers: tomatabacu, llvm-commits
Differential Revision: http://reviews.llvm.org/D4123
llvm-svn: 214709
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.reginfo/.MIPS.options
This abstraction allows us to support the various records that can be placed in
the .MIPS.options section in the future. We currently use it to record register
usage information (the ODK_REGINFO record in our ELF64 spec).
Each .MIPS.options record should subclass MipsOptionRecord and provide an
implementation of EmitMipsOptionRecord.
Patch by Matheus Almeida and Toma Tabacu
llvm-svn: 213522
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As discussed in a previous checking to support the .localentry
directive on PowerPC, we need to inspect the actual target symbol
in needsRelocateWithSymbol to make the appropriate decision based
on that symbol's st_other bits.
Currently, needsRelocateWithSymbol does not get the target symbol.
However, it is directly available to its sole caller. This patch
therefore simply extends the needsRelocateWithSymbol by a new
parameter "const MCSymbolData &SD", passes in the target symbol,
and updates all derived implementations.
In particular, in the PowerPC implementation, this patch removes
the FIXME added by the previous checkin.
llvm-svn: 213487
|
|
|
|
|
|
|
|
|
|
| |
Options struct and move the comment to inMips16HardFloat. Use the
fact that we now know whether or not we cared about soft float to
set the libcalls.
Accordingly rename mipsSEUsesSoftFloat to abiUsesSoftFloat and
propagate since it's no longer CPU specific.
llvm-svn: 213335
|
|
|
|
|
|
| |
Differential Revision: http://reviews.llvm.org/D4540
llvm-svn: 213246
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
than a mips64-* triple
Summary:
Generally speaking, mips-* vs mips64-* should not be used to make decisions
about the content or format of the ELF. This should be based on the ABI
and CPU in use. For example, `mips-linux-gnu-clang -mips64r2 -mabi=64`
should produce an ELF64 as should `mips64-linux-gnu-clang -mabi=64`.
Conversely, `mips64-linux-gnu-clang -mabi=n32` should produce an ELF32 as
should `mips-linux-gnu-clang -mips64r2 -mabi=n32`.
This patch fixes the e_flags but leaves the ELF32 vs ELF64 issue for now
since there is no apparent way to base this decision on the ABI and CPU.
Differential Revision: http://reviews.llvm.org/D4539
llvm-svn: 213244
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
The cpr1_size field describes the minimum register width to run the program
rather than the size of the registers on the target. MIPS32r6 was acting
as if -mfp64 has been given because it starts off with 64-bit FPU registers.
Differential Revision: http://reviews.llvm.org/D4538
llvm-svn: 213243
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Summary:
These options are not implemented yet but we act as if they are always
given.
The integrated assembler is driven by the clang driver so the e_flag test
cases should match the e_flags emitted by GCC+GAS rather than GAS
by itself.
Differential Revision: http://reviews.llvm.org/D4536
llvm-svn: 213242
|
|
|
|
|
|
|
|
| |
.data, .reginfo, .MIPS.options, and .MIPS.abiflags
The lld tests will temporarily fail again but Simon Atanasyan will commit a fix for those shortly.
llvm-svn: 212946
|
|
|
|
|
|
|
|
| |
.data, .reginfo, .MIPS.options, and .MIPS.abiflags
This commit causes multiple lld tests to fail. Reverting while I investigate the issue.
llvm-svn: 212945
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
.reginfo, .MIPS.options, and .MIPS.abiflags
Summary:
.bss, .text, and .data are at least 16-byte aligned.
.reginfo is 4-byte aligned and has a 24-byte EntrySize.
.MIPS.abiflags has an 24-byte EntrySize.
.MIPS.options is 8-byte aligned and has 1-byte EntrySize.
Using a 1-byte EntrySize for .MIPS.options seems strange because the
records are neither 1-byte long nor fixed-length but this matches the value
that GAS emits.
Differential Revision: http://reviews.llvm.org/D4487
llvm-svn: 212939
|