#
beda2241 |
| 31-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
When store nodes or memcpy nodes are created to copy the function call arguments to the stack in MipsISelLowering::LowerCall, use stack pointer and integer offset operands rather than frame object op
When store nodes or memcpy nodes are created to copy the function call arguments to the stack in MipsISelLowering::LowerCall, use stack pointer and integer offset operands rather than frame object operands.
llvm-svn: 161068
show more ...
|
#
5a69c235 |
| 25-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Eliminate the stack slot used to save the global base register. The long branch pass (fixed in r160601) no longer uses the global base register to compute addresses of branch destinations, so it is
Eliminate the stack slot used to save the global base register. The long branch pass (fixed in r160601) no longer uses the global base register to compute addresses of branch destinations, so it is not necessary to reserve a slot on the stack.
llvm-svn: 160703
show more ...
|
#
26e9ecb7 |
| 23-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Add basic ability to setup call frame, and make procedure calls. Hello world will compile and execute with this patch.
Patch by Reed Kotler.
llvm-svn: 160651
|
#
b49c68a6 |
| 21-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Revert accidental commit.
llvm-svn: 160598
|
#
f73e3627 |
| 21-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Add VK_Mips_HIGHER and VK_Mips_HIGHEST to MCSymbolRefExpr::VariantKind.
Test case will be added later when long branch patch is checked in.
llvm-svn: 160597
|
#
878ad8b2 |
| 11-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Lower RETURNADDR node in Mips backend.
Patch by Sasa Stankovic.
llvm-svn: 160031
|
#
efff7b76 |
| 10-Jul-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Make register Mips::RA allocatable if not in mips16 mode.
llvm-svn: 159971
|
#
62871a34 |
| 27-Jun-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Fix bug in computation of stack size in MipsFrameLowering.cpp.
llvm-svn: 159240
|
#
765c3123 |
| 21-Jun-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
1. fix null program output after some other changes 2. re-enable null.ll test 3. fix some minor style violations
Patch by Reed Kotler.
llvm-svn: 158935
|
#
5fd22485 |
| 14-Jun-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Fix coding style violations. Remove white spaces and tabs.
llvm-svn: 158471
|
#
2372c8bb |
| 14-Jun-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
In MipsFrameLowering::emitPrologue and emitEpilogue, call Mips::loadImmediate to load an immediate that does not fit into 16-bit. Also, take into consideration the global base register slot on the st
In MipsFrameLowering::emitPrologue and emitEpilogue, call Mips::loadImmediate to load an immediate that does not fit into 16-bit. Also, take into consideration the global base register slot on the stack when computing the stack size.
llvm-svn: 158430
show more ...
|
#
ad8103dc |
| 30-May-2012 |
Jakob Stoklund Olesen <stoklund@2pi.dk> |
Fix some uses of getSubRegisters() to use getSubReg() instead.
It is better to address sub-registers directly by name instead of relying on their position in the sub-register list.
llvm-svn: 157703
|
Revision tags: llvmorg-3.1.0 |
|
#
c980f845 |
| 12-May-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Make the following changes in MipsFrameLowering.cpp:
- Stop emitting instructions needed to initialize the global pointer register. - Stop emitting .cprestore directive. - Do not take into account t
Make the following changes in MipsFrameLowering.cpp:
- Stop emitting instructions needed to initialize the global pointer register. - Stop emitting .cprestore directive. - Do not take into account the $gp save slot when computing stack size.
llvm-svn: 156691
show more ...
|
Revision tags: llvmorg-3.1.0-rc3, llvmorg-3.1.0-rc2 |
|
#
c7242e05 |
| 20-Apr-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert more uses of XXXRegisterClass to &XXXRegClass. No functional change since they are equivalent.
llvm-svn: 155188
|
Revision tags: llvmorg-3.1.0-rc1 |
|
#
34ee3ff8 |
| 28-Mar-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Emit all directives except for ".cprestore" during asm printing rather than emit them as machine instructions. Directives ".set noat" and ".set at" are now emitted only at the beginning and end of a
Emit all directives except for ".cprestore" during asm printing rather than emit them as machine instructions. Directives ".set noat" and ".set at" are now emitted only at the beginning and end of a function except in the case where they are emitted to enclose .cpload with an immediate operand that doesn't fit in 16-bit field or unaligned load/stores.
Also, make the following changes: - Remove function isUnalignedLoadStore and use a switch-case statement to determine whether an instruction is an unaligned load or store.
- Define helper function CreateMCInst which generates an instance of an MCInst from an opcode and a list of operands.
llvm-svn: 153552
show more ...
|
#
b25fda95 |
| 17-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Reorder includes in Target backends to following coding standards. Remove some superfluous forward declarations.
llvm-svn: 152997
|
#
4b02a29e |
| 05-Mar-2012 |
Craig Topper <craig.topper@gmail.com> |
Convert more GenRegisterInfo tables from unsigned to uint16_t to reduce static data size.
llvm-svn: 152016
|
#
f54f60f3 |
| 28-Feb-2012 |
Jia Liu <proljc@gmail.com> |
remove blanks, and some code format
llvm-svn: 151625
|
#
b049aef2 |
| 24-Feb-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Add an option to use a virtual register as the global base register instead of reserving a physical register ($gp or $28) for that purpose.
This will completely eliminate loads that restore the valu
Add an option to use a virtual register as the global base register instead of reserving a physical register ($gp or $28) for that purpose.
This will completely eliminate loads that restore the value of $gp after every function call, if the register allocator assigns a callee-saved register, or eliminate unnecessary loads if it assigns a temporary register.
example:
.cpload $25 // set $gp. ... .cprestore 16 // store $gp to stack slot 16($sp). ... jalr $25 // function call. clobbers $gp. lw $gp, 16($sp) // not emitted if callee-saved reg is chosen. ... lw $2, 4($gp) ... jalr $25 // function call. lw $gp, 16($sp) // not emitted if $gp is not live after this instruction. ...
llvm-svn: 151402
show more ...
|
#
9f610119 |
| 17-Feb-2012 |
Jia Liu <proljc@gmail.com> |
remove Emacs-tag form .cpp files in Mips Backend, and fix some typo.
llvm-svn: 150805
|
#
012f041b |
| 25-Jan-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Mark 64-bit register RA_64 unused too.
llvm-svn: 148918
|
#
01d3c42f |
| 25-Jan-2012 |
Akira Hatanaka <ahatanaka@mips.com> |
Modify MipsFrameLowering::emitPrologue and emitEpilogue.
- Use MipsAnalyzeImmediate to expand immediates that do not fit in 16-bit. - Change the types of variables so that they are sufficiently larg
Modify MipsFrameLowering::emitPrologue and emitEpilogue.
- Use MipsAnalyzeImmediate to expand immediates that do not fit in 16-bit. - Change the types of variables so that they are sufficiently large to handle 64-bit pointers. - Emit instructions to set register $28 in a function prologue after instructions which store callee-saved registers have been emitted.
llvm-svn: 148917
show more ...
|
#
50f02cb2 |
| 02-Dec-2011 |
Nick Lewycky <nicholas@mxc.ca> |
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow.
One small functionality c
Move global variables in TargetMachine into new TargetOptions class. As an API change, now you need a TargetOptions object to create a TargetMachine. Clang patch to follow.
One small functionality change in PTX. PTX had commented out the machine verifier parts in their copy of printAndVerify. That now calls the version in LLVMTargetMachine. Users of PTX who need verification disabled should rely on not passing the command-line flag to enable it.
llvm-svn: 145714
show more ...
|
Revision tags: llvmorg-3.0.0, llvmorg-3.0.0-rc4 |
|
#
6ee8fc88 |
| 15-Nov-2011 |
Akira Hatanaka <ahatanaka@mips.com> |
Fix functions in MipsFrameLowering.cpp and MipsRegisterInfo.cpp. Use 64-bit registers and instructions when ABI is N64.
llvm-svn: 144666
|
#
49491327 |
| 15-Nov-2011 |
Akira Hatanaka <ahatanaka@mips.com> |
Set nomacro before emitting the sequence of instructions that set global pointer register.
llvm-svn: 144665
|