History log of /external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
cd81d94322a39503e4a3e87b6ee03d4fcb3465fb 21-Jul-2014 Stephen Hines <srhines@google.com> Update LLVM for rebase to r212749.

Includes a cherry-pick of:
r212948 - fixes a small issue with atomic calls

Change-Id: Ib97bd980b59f18142a69506400911a6009d9df18
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
dce4a407a24b04eebc6a376f8e62b41aaa7b071f 29-May-2014 Stephen Hines <srhines@google.com> Update LLVM for 3.5 rebase (r209712).

Change-Id: I149556c940fb7dc92d075273c87ff584f400941f
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
36b56886974eae4f9c5ebc96befd3e7bfe5de338 24-Apr-2014 Stephen Hines <srhines@google.com> Update to LLVM 3.5a.

Change-Id: Ifadecab779f128e62e430c2b4f6ddd84953ed617
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
5c042162beb3c2dd556e00aab84c4278a69cd5b1 04-Nov-2013 Zoran Jovanovic <zoran.jovanovic@imgtec.com> Support for microMIPS branch instructions.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193992 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
1aaf43c2a2ec0fd4c8dbfe56558237219c5f8af7 29-Oct-2013 Zoran Jovanovic <zoran.jovanovic@imgtec.com> Support for microMIPS jump instructions

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193623 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
0082717cb537e2d1424f755a49510fa9f9e67071 23-Oct-2013 Zoran Jovanovic <zoran.jovanovic@imgtec.com> Support for microMIPS relocations 1.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@193247 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
9a7bf438b50fed2c77f0e2bc835defa5b4728f82 30-Jan-2013 Jack Carter <jcarter@mips.com> This patch reworks how llvm targets set
and update ELF header e_flags.

Currently gathering information such as symbol,
section and data is done by collecting it in an
MCAssembler object. From MCAssembler and MCAsmLayout
objects ELFObjectWriter::WriteObject() forms and
streams out the ELF object file.

This patch just adds a few members to the MCAssember
class to store and access the e_flag settings. It
allows for runtime additions to the e_flag by
assembler directives. The standalone assembler can
get to MCAssembler from getParser().getStreamer().getAssembler().

This patch is the generic infrastructure and will be
followed by patches for ARM and Mips for their target
specific use.

Contributer: Jack Carter



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@173882 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
096d617796228293810cb0443c6617b33c5afdc5 15-Jan-2013 Jack Carter <jcarter@mips.com> This patch fixes a Mips specific bug where
we need to generate a N64 compound relocation
R_MIPS_GPREL_32/R_MIPS_64/R_MIPS_NONE.

The bug was exposed by the SingleSourcetest case
DuffsDevice.c.

Contributer: Jack Carter


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@172496 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
198ad916d736047f8a439f19dee25cee917df8a9 22-Nov-2012 Jack Carter <jcarter@mips.com> Mips direct object xgot support

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@168471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
101771ba4d9c2421f836069fcedf9ddc8a0c9dc7 22-Aug-2012 Jack Carter <jcarter@mips.com> For mips64 switch statements in subroutines could generate
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162334 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
b889e0cd2fea4afee623d5be603b912b955a2eca 17-Aug-2012 Akira Hatanaka <ahatanaka@mips.com> Correct MCJIT functionality for MIPS32 architecture.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@162135 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
e2245bab3ca29dc2142d8f254005f4ae7c40cde2 07-Aug-2012 Jack Carter <jcarter@mips.com> Mips relocation R_MIPS_64 relocates a 64 bit double word.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161366 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
fc54d9e47a1276650f14f38e7d037c9b58c8dc2d 06-Aug-2012 Jack Carter <jcarter@mips.com> Mips relocations R_MIPS_HIGHER and R_MIPS_HIGHEST.

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 ].


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161348 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
fd506efec628819f7e6fad8016a9dbb5d8612b8b 13-Jul-2012 Jack Carter <jcarter@mips.com> The Mips specific relocation R_MIPS_GOT_DISP
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@160183 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
0140e55393c4403ab240c386501cdc5e438dcc0e 28-Jun-2012 Jack Carter <jcarter@mips.com> This allows hello world to be compiled for Mips 64 direct object.

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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159301 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
93ee286e8d949147f8df7f093c9bd8529a99102d 28-Jun-2012 Jack Carter <jcarter@mips.com> The ELF relocation record format is different for N64
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@159299 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
864f66085cd9543070ef01b9f7371c110ecd7898 14-Jun-2012 Akira Hatanaka <ahatanaka@mips.com> Fix coding style violations. Remove white spaces and tabs.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@158471 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
a551a48402385cf3f4b754dc72264b2f0974b1a6 02-Apr-2012 Akira Hatanaka <ahatanaka@mips.com> Initial 64 bit direct object support.

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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153889 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
37ac18ef2f13a8060b745e6d3c4622bafdd4f47b 28-Mar-2012 Akira Hatanaka <ahatanaka@mips.com> Sort relocation entries before they are written out to a file. MIPS ABI
imposes a constraint that GOT16 referring to a local symbol or HI16 has to be
followed immediately by a matching LO16 relocation.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@153553 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
e9e520f23ec3e5dc26e0801ac0d8b9e6899e2626 01-Mar-2012 Akira Hatanaka <ahatanaka@mips.com> Pass endian information to constructors. Define separate functions to create
objects for big endian and little endian targets.

Patch by Jack Carter.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@151788 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
c5707112e7635d1dd2f2cc9c4f42e79a51302cca 17-Feb-2012 Jia Liu <proljc@gmail.com> remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150805 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
8f5e8c1cd69fa77bea20140a7132ee2dea166c6d 17-Feb-2012 Jia Liu <proljc@gmail.com> add Emacs tag and fix some comment error in file headers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150775 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
2d8955a77c6920d1a50de5ec9094faaa1b2f4e88 28-Jan-2012 James Molloy <james.molloy@arm.com> Ensure .AliasedSymbol() is called on all uses of getSymbol(). Affects ARM and MIPS ELF backends.

Fixes PR11877



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@149180 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
090445967f0b5988446faffefd1d0722f982bc7a 22-Dec-2011 Rafael Espindola <rafael.espindola@gmail.com> Move the Mips only bits of the ELF writer to lib/Target/Mips.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@147133 91177308-0d34-0410-b5e6-96231b3b80d8
/external/llvm/lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp