Akira Hatanaka
|
cb518ee5dd
|
Add patterns for unaligned load and store instructions and enable the
instruction selector to generate them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141471 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-08 02:24:10 +00:00 |
|
Peter Collingbourne
|
de8f33c199
|
Build system infrastructure for multiple tblgens.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141266 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-06 01:51:51 +00:00 |
|
Akira Hatanaka
|
42be280a28
|
Fix assertion string.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141197 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 18:17:49 +00:00 |
|
Akira Hatanaka
|
41a796e9cc
|
Make sure candidate for delay slot filler is not a return instruction.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141196 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 18:16:09 +00:00 |
|
Akira Hatanaka
|
2f52338f50
|
Add RA to the set of registers that are defined if instruction is a call.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141194 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 18:11:44 +00:00 |
|
NAKAMURA Takumi
|
4cbc5a1118
|
MipsDelaySlotFiller.cpp: Appease msvc to specify llvm::next() explicitly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141174 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 10:11:02 +00:00 |
|
Akira Hatanaka
|
176965f46b
|
Insert space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141158 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 02:22:49 +00:00 |
|
Akira Hatanaka
|
6e4e64859f
|
Do not examine variadic or implicit operands if instruction is a return (jr).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141157 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 02:21:58 +00:00 |
|
Akira Hatanaka
|
0c419a7c4b
|
Clean up function Filler::delayHasHazard.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141156 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 02:18:58 +00:00 |
|
Akira Hatanaka
|
0f0c59a0f8
|
Remove function Filler::insertCallUses.
Record the registers used and defined by a call in Filler::insertDefsUses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141154 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 02:04:17 +00:00 |
|
Akira Hatanaka
|
7d8e04d5f1
|
Clean up Filler::findDelayInstr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141152 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:57:46 +00:00 |
|
Akira Hatanaka
|
53120e0a9f
|
Remove function Filler::isDelayFiller. Check if I is the same instruction that
filled the last delay slot visited.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141151 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:30:09 +00:00 |
|
Akira Hatanaka
|
6f818abbe3
|
Clean up Filler::runOnMachineBasicBlock. Change interface of
Filler::findDelayInstr.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141150 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:23:39 +00:00 |
|
Akira Hatanaka
|
98f4d4d2db
|
Define a statistic for the number of slots that were filled with useful
instructions (instructions that are not NOP).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141149 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:19:13 +00:00 |
|
Akira Hatanaka
|
f2f70c2493
|
Remove unnecessary check. isDelayFiller(MBB, I) will evaluate to true before
I->getDesc().hasDelaySlot() does.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141148 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:15:31 +00:00 |
|
Akira Hatanaka
|
cfc3fb5737
|
Add comments and move assignment statement. If sawStore is true, sawLoad does
not have to be set.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141147 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:09:37 +00:00 |
|
Akira Hatanaka
|
6585b51821
|
Correct description string of enable-mips-delay-filler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141146 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-05 01:06:57 +00:00 |
|
Akira Hatanaka
|
43e43f7d8b
|
Add support for 64-bit logical NOR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141029 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-03 21:23:18 +00:00 |
|
Akira Hatanaka
|
2d57088ff0
|
Add support for 64-bit count leading ones and zeros instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141028 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-03 21:16:50 +00:00 |
|
Akira Hatanaka
|
dda4a07cd8
|
Add support for 64-bit divide instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141024 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-03 21:06:13 +00:00 |
|
Akira Hatanaka
|
2ad766851d
|
Clean up MipsInstrInfo::copyPhysReg and handle copies from and to 64-bit integer
registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141019 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-03 20:38:08 +00:00 |
|
Akira Hatanaka
|
04d3762ff1
|
Add support for 64-bit integer multiply instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141017 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-03 20:01:11 +00:00 |
|
Akira Hatanaka
|
36787939b2
|
Add definitions of instructions which move values between 64-bit integer
registers and 64-bit HI and LO registers. Fix encoding of the 32-bit versions
of the instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141015 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-10-03 19:28:44 +00:00 |
|
Akira Hatanaka
|
09a2e0f794
|
Register the MC object streamer.
Patch by Reed Kotler at Mips Technologies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140887 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 21:29:38 +00:00 |
|
Akira Hatanaka
|
4b6ee7a352
|
Register Asm backend. Add functions to MipsAsmBackend.
Patch by Reed Kotler at Mips Technologies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140886 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 21:23:45 +00:00 |
|
Akira Hatanaka
|
82ea7314ca
|
Add MCELFObjectTargetWriter and MCAsmBackend classes.
Patch by Reed Kotler at Mips Technologies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140885 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 21:04:02 +00:00 |
|
Benjamin Kramer
|
310c9ea874
|
Update CMake build.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140879 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 20:44:33 +00:00 |
|
Akira Hatanaka
|
4520a10fdb
|
Initial implementation of MipsMCCodeEmitter.
Patch by Reed Kotler at Mips Technologies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140878 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 20:40:03 +00:00 |
|
Akira Hatanaka
|
c7bafe9241
|
Add definitions of Mips64 rotate instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140870 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 18:51:46 +00:00 |
|
Akira Hatanaka
|
a64556ffda
|
isCommutable should be 0 for DSUBu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140862 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 17:26:36 +00:00 |
|
Akira Hatanaka
|
25a7d94e81
|
Mips64 shift instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140841 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 03:18:46 +00:00 |
|
Akira Hatanaka
|
f549ab7853
|
Mips64 arithmetic and logical instructions with one source register and
immediate.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140839 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-30 02:08:54 +00:00 |
|
Akira Hatanaka
|
a3defb07a0
|
Fill delay slot with useful instructions. Modified from Sparc's version of delay
slot filler.
Patch by Reed Kotler at Mips Technologies.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140825 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-29 23:52:13 +00:00 |
|
Akira Hatanaka
|
c0be26909f
|
Mips64 arithmetic and logical instructions with two source registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140806 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-29 20:37:56 +00:00 |
|
Jakob Stoklund Olesen
|
5cd4ee7770
|
Revert r140731, "Define classes for unary and binary FP instructions and use them to define"
It broke the unit tests. Please reapply with tests fixed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140735 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-28 23:59:28 +00:00 |
|
Akira Hatanaka
|
d42ca4607b
|
Define classes for unary and binary FP instructions and use them to define
multiclasses.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140731 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-28 21:58:01 +00:00 |
|
Akira Hatanaka
|
aa7579025f
|
Rename predicate In32BitMode to NotFP64bit and add definition of IsFP64bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140705 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-28 18:11:19 +00:00 |
|
Akira Hatanaka
|
d9f958375f
|
Remove definitions of branch-on-FP-likely instructions. They are deprecated.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140704 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-28 17:56:55 +00:00 |
|
Akira Hatanaka
|
d2d00edc01
|
Mips64 predicate definitions. Patch by Liu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140703 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-28 17:50:27 +00:00 |
|
Akira Hatanaka
|
6c6db25c10
|
Remove MipsFPRound. Mips1 is no longer supported.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140661 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-27 23:55:37 +00:00 |
|
Akira Hatanaka
|
8eea4616bf
|
Embed patterns in definitions of MFC1 and MTC1 instead of defining them outside
of the instruction definitions using Pat<>.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140644 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-27 22:01:01 +00:00 |
|
Akira Hatanaka
|
237e7a278a
|
Fix function MipsRegisterInfo::getRegisterNumbering.
Return numbers of 64-bit registers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140609 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-27 17:15:27 +00:00 |
|
Akira Hatanaka
|
78fec58c07
|
Do not add the pass that restores $gp if target is Mips64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140607 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-27 16:58:43 +00:00 |
|
Akira Hatanaka
|
854222fa47
|
Mark MipsPseudo isPseudo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140598 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-27 04:57:54 +00:00 |
|
Akira Hatanaka
|
f40de9d287
|
Set register class of a register according to value of HasMips64.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140570 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-26 21:55:17 +00:00 |
|
Akira Hatanaka
|
8b4198da9d
|
Define variable HasMips64 in MipsTargetLowering.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140569 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-26 21:47:02 +00:00 |
|
Akira Hatanaka
|
09dd60feef
|
In single float mode, double precision FP arguments are passed in integer
registers, so there is no need to check here.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140568 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-26 21:37:50 +00:00 |
|
Akira Hatanaka
|
8aa4b4cb6f
|
Add .td file.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140446 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-24 01:40:18 +00:00 |
|
Akira Hatanaka
|
95934844e3
|
Preparation for adding simple Mips64 instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140443 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-24 01:34:44 +00:00 |
|
Akira Hatanaka
|
45b73e2f3f
|
Implement N32/64 calling convention. Patch by Liu.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@140401 91177308-0d34-0410-b5e6-96231b3b80d8
|
2011-09-23 19:08:15 +00:00 |
|