Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
d92a3fa2 |
| 01-May-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Move expansion of .cpsetup to target streamer.
Summary: There are two functional changes: 1) The directive is not expanded for the ASM->ASM code path. 2) If PIC is not set, there's no expansi
[mips] Move expansion of .cpsetup to target streamer.
Summary: There are two functional changes: 1) The directive is not expanded for the ASM->ASM code path. 2) If PIC is not set, there's no expansion for the ASM->OBJ code path (same behaviour as GAS).
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D3482
llvm-svn: 207741
show more ...
|
#
525bc4f7 |
| 30-Apr-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Add support for .cpload.
Summary: This directive is used for setting up $gp in the beginning of a function. It expands to three instructions if PIC is enabled: lui $gp, %hi(_gp_disp) addui
[mips] Add support for .cpload.
Summary: This directive is used for setting up $gp in the beginning of a function. It expands to three instructions if PIC is enabled: lui $gp, %hi(_gp_disp) addui $gp, $gp, %lo(_gp_disp) addu $gp, $gp, $reg
_gp_disp is a special symbol that the linker sets to the distance between the lui instruction and the context pointer (_gp).
Reviewers: dsanders
Reviewed By: dsanders
Differential Revision: http://reviews.llvm.org/D3480
llvm-svn: 207637
show more ...
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
0051f2dc |
| 16-Apr-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Add initial support for NaN2008 in the back-end.
This is so that EF_MIPS_NAN2008 is set if we are using IEEE 754-2008 NaN encoding (-mnan=2008). This patch also adds support for parsing '.nan
[mips] Add initial support for NaN2008 in the back-end.
This is so that EF_MIPS_NAN2008 is set if we are using IEEE 754-2008 NaN encoding (-mnan=2008). This patch also adds support for parsing '.nan legacy' and '.nan 2008' assembly directives. The handling of these directives should match GAS' behaviour i.e., the last directive in use sets the ELF header bit (EF_MIPS_NAN2008).
Differential Revision: http://reviews.llvm.org/D3346
llvm-svn: 206396
show more ...
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
f7b32291 |
| 03-Apr-2014 |
Daniel Sanders <daniel.sanders@imgtec.com> |
[mips] Add initial (experimental) MIPS-IV support.
Summary: Adds the 'mips4' processor and a simple test of the ELF e_flags.
Patch by David Chisnall His work was sponsored by: DARPA, AFRL
I made o
[mips] Add initial (experimental) MIPS-IV support.
Summary: Adds the 'mips4' processor and a simple test of the ELF e_flags.
Patch by David Chisnall His work was sponsored by: DARPA, AFRL
I made one small change to the testcase so that it uses mips64-unknown-linux instead of mips4-unknown-linux.
This patch indirectly adds FeatureCondMov to FeatureMips64. This is ok because it's supposed to be there anyway and it turns out that FeatureCondMov is not a predicate of any instructions at the moment (this is a bug that hasn't been noticed because there are no targets without the conditional move instructions yet).
CC: theraven
Differential Revision: http://llvm-reviews.chandlerc.com/D3244
llvm-svn: 205530
show more ...
|
#
3b9c63d2 |
| 26-Mar-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Add support to '.set mips64'.
The '.set mips64' directive enables the feature Mips:FeatureMips64 from assembly. Note that it doesn't modify the ELF header as opposed to the use of -mips64 fro
[mips] Add support to '.set mips64'.
The '.set mips64' directive enables the feature Mips:FeatureMips64 from assembly. Note that it doesn't modify the ELF header as opposed to the use of -mips64 from the command-line. The reason for this is that we want to be as compatible as possible with existing assemblers like GAS.
llvm-svn: 204817
show more ...
|
#
a2cd009c |
| 26-Mar-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Add support to '.set mips64r2'.
The '.set mips64r2' directive enables the feature Mips:FeatureMips64r2 from assembly. Note that it doesn't modify the ELF header as opposed to the use of -mips
[mips] Add support to '.set mips64r2'.
The '.set mips64r2' directive enables the feature Mips:FeatureMips64r2 from assembly. Note that it doesn't modify the ELF header as opposed to the use of -mips64r2 from the command-line. The reason for this is that we want to be as compatible as possible with existing assemblers like GAS.
llvm-svn: 204815
show more ...
|
#
f79b2814 |
| 26-Mar-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Add support for '.option pic2'.
The directive '.option pic2' enables PIC from assembly source. At the moment none of the macros/directives check the PIC bit but that's going to be fixed relat
[mips] Add support for '.option pic2'.
The directive '.option pic2' enables PIC from assembly source. At the moment none of the macros/directives check the PIC bit but that's going to be fixed relatively soon. For example, the expansion of macros like 'la' depend on the relocation model.
llvm-svn: 204803
show more ...
|
#
28221d8b |
| 20-Mar-2014 |
Zoran Jovanovic <zoran.jovanovic@imgtec.com> |
Mark alias symbols as microMIPS if necessary. Differential Revision: http://llvm-reviews.chandlerc.com/D3080
llvm-svn: 204323
|
#
27c398e3 |
| 05-Mar-2014 |
Vladimir Medic <Vladimir.Medic@imgtec.com> |
This patch implements .set dsp directive and sets appropriate feature bits.This directive is a counterpart of -mattr=dsp command line option with the exception that it does not influence elf header f
This patch implements .set dsp directive and sets appropriate feature bits.This directive is a counterpart of -mattr=dsp command line option with the exception that it does not influence elf header flags. The usage example is gives in test file.
llvm-svn: 202966
show more ...
|
#
442f7848 |
| 04-Mar-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[cleanup] Re-sort all the includes with utils/sort_includes.py.
llvm-svn: 202811
|
#
615b26e1 |
| 04-Mar-2014 |
Vladimir Medic <Vladimir.Medic@imgtec.com> |
This patch implements .set mips32r2 directive and sets appropriate feature bits. It also introduces helper functions that are used to set and clear feature bits as necessary. This directive is a coun
This patch implements .set mips32r2 directive and sets appropriate feature bits. It also introduces helper functions that are used to set and clear feature bits as necessary. This directive is a counterpart of -mips32r2 command line options with the exception that it does not influence elf header flags. The usage example is gives in test file.
llvm-svn: 202807
show more ...
|
#
972e71ab |
| 31-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove another hasRawTextSupport.
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/Targe
Remove another hasRawTextSupport.
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
show more ...
|
#
2e03f243 |
| 28-Jan-2014 |
Matheus Almeida <matheus.almeida@imgtec.com> |
[mips] Fix ELF header flags.
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
|
#
25fa291f |
| 27-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Print .mask and .fmask with the target streamer.
Testing this also found the missing '\n' after .frame that this patch also fixes.
llvm-svn: 200192
|
#
054234fa |
| 27-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Print .frame via the target streamer.
llvm-svn: 200186
|
#
cb1953f6 |
| 26-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Implement the missing bits corresponding to .mips_hack_elf_flags.
These were: * noreorder handling on the target object streamer and asm parser. * setting the initial flag bits based on the enabled
Implement the missing bits corresponding to .mips_hack_elf_flags.
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
show more ...
|
#
24ea09ef |
| 26-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Construct the MCStreamer before constructing the MCTargetStreamer.
This has a few advantages: * Only targets that use a MCTargetStreamer have to worry about it. * There is never a MCTargetStreamer w
Construct the MCStreamer before constructing the MCTargetStreamer.
This has a few advantages: * Only targets that use a MCTargetStreamer have to worry about it. * There is never a MCTargetStreamer without a MCStreamer, so we can use a reference. * A MCTargetStreamer can talk to the MCStreamer in its constructor.
llvm-svn: 200129
show more ...
|
#
eb0a8af6 |
| 26-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Convert some easy uses of EmitRawText to TargetStreamer methods.
llvm-svn: 200122
|
#
14d02fe5 |
| 25-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
This reverts commit r200064 and r200051.
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.
This reverts commit r200064 and r200051.
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
show more ...
|
#
ca2ae49d |
| 25-Jan-2014 |
Jack Carter <jack.carter@imgtec.com> |
[Mips] TargetStreamer ELF flag Support for default and commandline options.
This patch uses a common MipsTargetSteamer interface for both MipsAsmPrinter and MipsAsmParser for recording default and
[Mips] TargetStreamer ELF flag Support for default and commandline options.
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
show more ...
|
#
e7583756 |
| 24-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Unify duplicated functions.
llvm-svn: 200014
|
#
39536724 |
| 22-Jan-2014 |
Jack Carter <jack.carter@imgtec.com> |
[Mips] TargetStreamer Support for .set mips16.
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 MipsTargetSt
[Mips] TargetStreamer Support for .set mips16.
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
show more ...
|
#
9d795cae |
| 15-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix uninitialized variable.
llvm-svn: 199288
|
#
26e917cd |
| 15-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Only mark functions as micromips.
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 n
Only mark functions as micromips.
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
show more ...
|
#
6633d57a |
| 14-Jan-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Fix a low hanging use of hasRawTextSupport.
This also fixes the placement of the function label comment. It was being placed next to the mips16 directive instead of next to the label.
llvm-svn: 199
Fix a low hanging use of hasRawTextSupport.
This also fixes the placement of the function label comment. It was being placed next to the mips16 directive instead of next to the label.
llvm-svn: 199245
show more ...
|