| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
| |
Also removed some unnecessary #includes.
No functional changes.
llvm-svn: 204320
|
| |
|
|
|
|
|
|
|
|
|
| |
Patch implements %hi(sym1 - sym2) and %lo(sym1 - sym2) expressions for MIPS
by creating target expression class MipsMCExpr.
Patch by Sasa Stankovic.
Differential Revision: http://llvm-reviews.chandlerc.com/D2592
llvm-svn: 200783
|
| |
|
|
|
|
|
|
| |
The subtarget info is explicitly passed to the EncodeInstruction
method and we should use that subtarget info to influence any
encoding decisions.
llvm-svn: 200350
|
| |
|
|
| |
llvm-svn: 200349
|
| |
|
|
| |
llvm-svn: 200348
|
| |
|
|
| |
llvm-svn: 198262
|
| |
|
|
| |
llvm-svn: 198162
|
| |
|
|
| |
llvm-svn: 197685
|
| |
|
|
|
|
|
|
|
| |
not being correctly encoded/decoded.
In more detail, immediate fields of LD/ST instructions should be
divided/multiplied by the size of the data format before encoding and
after decoding, respectively.
llvm-svn: 196494
|
| |
|
|
|
|
|
|
|
| |
encoded.
The immediate field should be encoded as "imm - 1" as the CPU always adds one to that field.
llvm-svn: 195004
|
| |
|
|
| |
llvm-svn: 193992
|
| |
|
|
| |
llvm-svn: 193623
|
| |
|
|
| |
llvm-svn: 193247
|
| |
|
|
| |
llvm-svn: 190232
|
| |
|
|
| |
llvm-svn: 189396
|
| |
|
|
|
|
|
|
| |
This includes instructions lwl, lwr, swl and swr.
Patch by Zoran Jovnovic
llvm-svn: 188312
|
| |
|
|
|
|
|
|
| |
Test included.
Patch by Zoran Jovanovich
llvm-svn: 188024
|
| |
|
|
|
|
|
|
|
| |
Someone may want to do something crazy, like replace these objects if they
change or something.
No functionality change intended.
llvm-svn: 184175
|
| |
|
|
|
|
| |
And remove header and cpp file that are empty after that.
llvm-svn: 182746
|
| |
|
|
|
|
|
|
|
| |
This patch adds support for recoded (meaning assembly-language compatible to
standard mips32) arithmetic 32-bit instructions.
Patch by Zoran Jovanovic.
llvm-svn: 179873
|
| |
|
|
|
|
|
|
|
|
| |
This patch allows the Mips assembler to parse and emit nested
expressions as instruction operands. It also extends the
expansion of memory instructions when an offset is given as
an expression.
Contributer: Vladimir Medic
llvm-svn: 179657
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For mips a branch an 18-bit signed offset (the 16-bit
offset field shifted left 2 bits) is added to the
address of the instruction following the branch
(not the branch itself), in the branch delay slot,
to form a PC-relative effective target address.
Previously, the code generator did not perform the
shift of the immediate branch offset which resulted
in wrong instruction opcode. This patch fixes the issue.
Contributor: Vladimir Medic
llvm-svn: 177687
|
| |
|
|
| |
llvm-svn: 175607
|
| |
|
|
|
|
|
|
|
|
|
| |
excluding visibility bits.
Mips (MicroMips) specific STO handling .
The st_other field settig for STO_MIPS_MICROMIPS
Contributer: Zoran Jovanovic
llvm-svn: 175564
|
| |
|
|
|
|
|
| |
of the old jit and which we don't intend to support in mips16 or micromips.
This dependency is for the testing of whether an instruction is a pseudo.
llvm-svn: 175297
|
| |
|
|
|
|
| |
getMipsRegisterNumbering and use MCRegisterInfo::getEncodingValue instead.
llvm-svn: 169760
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
llvm-svn: 163973
|
| |
|
|
|
|
|
| |
Test case included.
Contributer: Vladimir Medic
llvm-svn: 163277
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Add the MCRegisterInfo to the factories and constructors.
Patch by Tom Stellard <Tom.Stellard@amd.com>.
llvm-svn: 156828
|
| |
|
|
| |
llvm-svn: 155307
|
| |
|
|
|
|
|
| |
set it in MipsMCCodeEmitter::getMachineOpValue. Assert in getMachineOpValue if
MachineOperand MO is of an unexpected type.
llvm-svn: 153494
|
| |
|
|
|
|
|
|
| |
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: 150805
|
| |
|
|
| |
llvm-svn: 150775
|
| |
|
|
|
|
| |
accomodate every target I can think of offhand.
llvm-svn: 148833
|
| |
|
|
| |
llvm-svn: 148578
|
| |
|
|
|
|
|
|
| |
ELF relocations.
Patch by Jack Carter.
llvm-svn: 147118
|
| |
|
|
|
|
|
| |
been normalized and more descriptive comments added. Patch by Reed
Kotler and Jack Carter.
llvm-svn: 146088
|
| |
|
|
|
|
|
|
| |
make the addend fixup code a bit more generic
Patch by Jack Carter.
llvm-svn: 145998
|
| |
|
|
|
|
|
|
| |
- lower unaligned loads/stores.
- encode the size operand of instructions INS and EXT.
- emit relocation information needed for JAL (jump-and-link).
llvm-svn: 145113
|
| |
|
|
|
|
|
|
|
|
| |
"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: 140878
|