- Nov 22, 2012
-
-
Jack Carter authored
This patch provides support for the MIPS relocations: *) R_MIPS_GOT_HI16 *) R_MIPS_GOT_LO16 *) R_MIPS_CALL_HI16 *) R_MIPS_CALL_LO16 These are used for large GOT instruction sequences. Contributer: Jack Carter llvm-svn: 168471
-
- Nov 21, 2012
-
-
Akira Hatanaka authored
llvm-svn: 168450
-
- Oct 03, 2012
-
-
Jack Carter authored
for the number of bytes in a particular instruction to using const MCInstrDesc &Desc = MCII.get(TmpInst.getOpcode()); Desc.getSize() This is necessary with the advent of 16 bit instructions with mips16 and micromips. It is also puts Mips in compliance with the other targets for getting instruction size. llvm-svn: 165171
-
Jack Carter authored
The mips 64bit instructions DSLL, DSRA, DSRL, DEXT and DINS get transformed by the assembler or through codegen direct object output to other variants based on the value of the immediate values of the operands. If the code is generated as assembler, this transformation does not occur assuming that it will occur later in the assembler. This code was originally called from MipsAsmPrinter.cpp and we needed to check for OutStreamer.hasRawTextSupport(). This was not a good place for it and has been moved to MCTargetDesc/MipsMCCodeEmitter.cpp where both direct object and the assembler use it it automagically. The test cases have been checked in for a number of weeks now. llvm-svn: 165067
-
- Sep 26, 2012
-
-
Akira Hatanaka authored
getMipsRegisterNumbering. llvm-svn: 164720
-
- Sep 18, 2012
-
-
Roman Divacky authored
store this and use it to not emit long nops when the CPU is geode which doesnt support them. Fixes PR11212. llvm-svn: 164132
-
- Sep 15, 2012
-
-
Craig Topper authored
llvm-svn: 163973
-
- Sep 14, 2012
-
-
Dmitri Gribenko authored
* wrap code blocks in \code ... \endcode; * refer to parameter names in paragraphs correctly (\arg is not what most people want -- it starts a new paragraph); * use \param instead of \arg to document parameters in order to be consistent with the rest of the codebase. llvm-svn: 163902
-
- Sep 12, 2012
-
-
Dmitri Gribenko authored
llvm-svn: 163721
-
- Sep 07, 2012
-
-
Jack Carter authored
Test cases included Contributer: Vladimir Medic llvm-svn: 163363
-
- Sep 06, 2012
-
-
Jack Carter authored
Test case included. Contributer: Vladimir Medic llvm-svn: 163277
-
- Aug 22, 2012
-
-
Jack Carter authored
within the codegen EK_GPRel64BlockAddress. This was not supported for direct object output and resulted in an assertion. This change adds support for EK_GPRel64BlockAddress for direct object. One fallout from this is to turn on rela relocations for mips64 to match gas. llvm-svn: 162334
-
- Aug 17, 2012
-
-
Akira Hatanaka authored
No new tests are added. All tests in ExecutionEngine/MCJIT that have been failing pass after this patch is applied (when "make check" is done on a mips board). Patch by Petar Jovanovic. llvm-svn: 162135
-
- Aug 07, 2012
-
-
Jack Carter authored
I hit this in a very large program (spirit.cpp), but have not figured out how to make a small make check test for it. llvm-svn: 161366
-
- Aug 06, 2012
-
-
Jack Carter authored
These 2 relocations gain access to the highest and the second highest 16 bits of a 64 bit object. R_MIPS_HIGHER %higher(A+S) The %higher(x) function is [ (((long long) x + 0x80008000LL) >> 32) & 0xffff ]. R_MIPS_HIGHEST %highest(A+S) The %highest(x) function is [ (((long long) x + 0x800080008000LL) >> 48) & 0xffff ]. llvm-svn: 161348
-
- Jul 23, 2012
-
-
Akira Hatanaka authored
llvm-svn: 160636
-
- Jul 21, 2012
-
-
Akira Hatanaka authored
llvm-svn: 160599
-
- Jul 13, 2012
-
-
Jack Carter authored
is used in cases where global symbols are directly represented in the GOT and we use an offset into the global offset table. This patch adds direct object support for R_MIPS_GOT_DISP. llvm-svn: 160183
-
- Jul 12, 2012
-
-
Jack Carter authored
When WriteFragmentData() case FT_align called Asm.getBackend().writeNopData() is called, nothing is done since Mips implementation of writeNopData just returned "true". For some reason this has not caused problems in 32 bit mode, but in 64 bit mode it caused an assert when processing multiple function units. The test case included will assert without this patch. It runs twice with different flags to prevent false positives due to changes in code generation over time. llvm-svn: 160084
-
- Jul 02, 2012
-
-
Jack Carter authored
Contributer: Sasa Stankovic llvm-svn: 159574
-
- Jun 28, 2012
-
-
Jack Carter authored
It takes advantage of r159299 which introduces relocation support for N64. elf-dump needed to be upgraded to support N64 relocations as well. This passes make check. Jack llvm-svn: 159301
-
Jack Carter authored
which many Mips 64 ABIs use than for O64 which many if not all other target ABIs use. Most architectures have the following 64 bit relocation record format: typedef struct { Elf64_Addr r_offset; /* Address of reference */ Elf64_Xword r_info; /* Symbol index and type of relocation */ } Elf64_Rel; typedef struct { Elf64_Addr r_offset; Elf64_Xword r_info; Elf64_Sxword r_addend; } Elf64_Rela; Whereas N64 has the following format: typedef struct { Elf64_Addr r_offset;/* Address of reference */ Elf64_Word r_sym; /* Symbol index */ Elf64_Byte r_ssym; /* Special symbol */ Elf64_Byte r_type3; /* Relocation type */ Elf64_Byte r_type2; /* Relocation type */ Elf64_Byte r_type; /* Relocation type */ } Elf64_Rel; typedef struct { Elf64_Addr r_offset;/* Address of reference */ Elf64_Word r_sym; /* Symbol index */ Elf64_Byte r_ssym; /* Special symbol */ Elf64_Byte r_type3; /* Relocation type */ Elf64_Byte r_type2; /* Relocation type */ Elf64_Byte r_type; /* Relocation type */ Elf64_Sxword r_addend; } Elf64_Rela; The structure is the same size, but the r_info data element is now 5 separate elements. Besides the content aspects, endian byte reordering will be different for the area with each element being endianized separately. I treat this as generic and continue to pass r_type as an integer masking and unmasking the byte sized N64 values for N64 mode. I've implemented this and it causes no affect on other current targets. This passes make check. Jack llvm-svn: 159299
-
- Jun 14, 2012
-
-
Akira Hatanaka authored
llvm-svn: 158471
-
- Jun 09, 2012
-
-
Jack Carter authored
llvm-svn: 158250
-
- May 15, 2012
-
-
Jim Grosbach authored
Add the MCRegisterInfo to the factories and constructors. Patch by Tom Stellard <Tom.Stellard@amd.com>. llvm-svn: 156828
-
- Apr 22, 2012
-
-
Bill Wendling authored
llvm-svn: 155307
-
- Apr 17, 2012
-
-
Akira Hatanaka authored
Patch by Vladimir Medic. llvm-svn: 154935
-
- Apr 16, 2012
-
-
Akira Hatanaka authored
llvm-svn: 154838
-
- Apr 03, 2012
-
-
Akira Hatanaka authored
llvm-svn: 153925
-
Akira Hatanaka authored
Patch by Vladimir Medic. llvm-svn: 153924
-
- Apr 02, 2012
-
-
Akira Hatanaka authored
This patch allows llvm to recognize that a 64 bit object file is being produced and that the subsequently generated ELF header has the correct information. The test case checks for both big and little endian flavors. Patch by Jack Carter. llvm-svn: 153889
-
Craig Topper authored
Make MCInstrInfo available to the MCInstPrinter. This will be used to remove getInstructionName and the static data it contains since the same tables are already in MCInstrInfo. llvm-svn: 153860
-
- Mar 31, 2012
-
-
Akira Hatanaka authored
llvm-svn: 153795
-
- Mar 28, 2012
-
-
Akira Hatanaka authored
imposes a constraint that GOT16 referring to a local symbol or HI16 has to be followed immediately by a matching LO16 relocation. llvm-svn: 153553
-
- Mar 27, 2012
-
-
Craig Topper authored
llvm-svn: 153502
-
Akira Hatanaka authored
set it in MipsMCCodeEmitter::getMachineOpValue. Assert in getMachineOpValue if MachineOperand MO is of an unexpected type. llvm-svn: 153494
-
Akira Hatanaka authored
offset applied to it. llvm-svn: 153493
-
Akira Hatanaka authored
cleared. No functionality change. llvm-svn: 153491
-
- Mar 26, 2012
-
-
Craig Topper authored
llvm-svn: 153429
-
- Mar 21, 2012
-
-
Craig Topper authored
llvm-svn: 153155
-