| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We used to generate the compact unwind encoding from the machine
instructions. However, this had the problem that if the user used `-save-temps'
or compiled their hand-written `.s' file (with CFI directives), we wouldn't
generate the compact unwind encoding.
Move the algorithm that generates the compact unwind encoding into the
MCAsmBackend. This way we can generate the encoding whether the code is from a
`.ll' or `.s' file.
<rdar://problem/13623355>
llvm-svn: 190290
|
| |
|
|
|
|
|
|
| |
an R_MIPS_GPREL16 relocation.
Contributer: Jack Carter
llvm-svn: 171882
|
| |
|
|
|
|
| |
No change in functionality.
llvm-svn: 171822
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
| |
store this and use it to not emit long nops when the CPU is geode which
doesnt support them.
Fixes PR11212.
llvm-svn: 164132
|
| |
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
| |
llvm-svn: 163721
|
| |
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
| |
Contributer: Sasa Stankovic
llvm-svn: 159574
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 158471
|
| |
|
|
| |
llvm-svn: 154838
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
set it in MipsMCCodeEmitter::getMachineOpValue. Assert in getMachineOpValue if
MachineOperand MO is of an unexpected type.
llvm-svn: 153494
|
| |
|
|
|
|
| |
cleared. No functionality change.
llvm-svn: 153491
|
| |
|
|
| |
llvm-svn: 153429
|
| |
|
|
| |
llvm-svn: 153155
|
| |
|
|
|
|
|
|
| |
These changes allow us to compile big endian from the command line for 32 bit
Mips targets. This patch will result in code and data actually being produced
in the correct endianess.
llvm-svn: 153153
|
| |
|
|
|
|
|
|
| |
objects for big endian and little endian targets.
Patch by Jack Carter.
llvm-svn: 151788
|
| |
|
|
| |
llvm-svn: 151625
|
| |
|
|
| |
llvm-svn: 150805
|
| |
|
|
| |
llvm-svn: 150775
|
| |
|
|
| |
llvm-svn: 148400
|
| |
|
|
| |
llvm-svn: 147924
|
| |
|
|
| |
llvm-svn: 147133
|
| |
|
|
|
|
|
|
| |
ELF relocations.
Patch by Jack Carter.
llvm-svn: 147118
|
| |
|
|
|
|
|
| |
avoid including ADT/Triple.h in many places when the target specific bits are
moved.
llvm-svn: 147059
|
| |
|
|
|
|
|
|
| |
make the addend fixup code a bit more generic
Patch by Jack Carter.
llvm-svn: 145998
|
| |
|
|
| |
llvm-svn: 145894
|
| |
|
|
|
|
|
|
| |
Whether a fixup needs relaxation for the associated instruction is a
target-specific function, as the FIXME indicated. Create a hook for that
and use it.
llvm-svn: 145881
|
| |
|
|
| |
llvm-svn: 145112
|
| |
|
|
|
|
|
|
|
|
| |
"With this patch we can now generate runnable Mips code through LLVM
direct object emission. We have run numerous simple programs, both C
and C++ and with -O0 and -O3 from the output. The code is not production
ready, but quite useful for experimentation." Patch and message by
Jack Carter
llvm-svn: 144414
|
| |
|
|
|
|
| |
Patch by Reed Kotler at Mips Technologies.
llvm-svn: 140886
|
|
|
Patch by Reed Kotler at Mips Technologies.
llvm-svn: 140885
|