Anton Korobeynikov
|
d8458e6c09
|
Typos
llvm-svn: 75991
|
2009-07-16 14:10:35 +00:00 |
Anton Korobeynikov
|
1eb6262b4b
|
Consolidate reg-imm / reg-reg-imm address mode selection logic in one place.
llvm-svn: 75990
|
2009-07-16 14:10:17 +00:00 |
Anton Korobeynikov
|
3db6283188
|
Fix fallout from 12-bit stuff landing: decide whether 20 bit displacements are needed during elimination of frame indexes.
llvm-svn: 75989
|
2009-07-16 14:09:56 +00:00 |
Anton Korobeynikov
|
62f8515b1c
|
Add support for 12 bit displacements
llvm-svn: 75988
|
2009-07-16 14:09:35 +00:00 |
Anton Korobeynikov
|
432d4cd915
|
We already have reserved call frame regardless whether variable sized frame objects were present or not
llvm-svn: 75987
|
2009-07-16 14:09:04 +00:00 |
Anton Korobeynikov
|
43d33bd6d2
|
Emit proper lowering of load from arg stack slot
llvm-svn: 75986
|
2009-07-16 14:08:42 +00:00 |
Anton Korobeynikov
|
a8197bb651
|
Implement dynamic allocas
llvm-svn: 75985
|
2009-07-16 14:08:15 +00:00 |
Anton Korobeynikov
|
7193e2670e
|
Add jump tables
llvm-svn: 75984
|
2009-07-16 14:07:50 +00:00 |
Anton Korobeynikov
|
5dfac244a0
|
Exapnd br_jt into indirect branch. Provide pattern for indirect branches.
llvm-svn: 75983
|
2009-07-16 14:07:24 +00:00 |
Anton Korobeynikov
|
d52a95f170
|
Implement 64 bit immediates
llvm-svn: 75982
|
2009-07-16 14:07:06 +00:00 |
Anton Korobeynikov
|
2ff298fad0
|
Add rotates
llvm-svn: 75981
|
2009-07-16 14:06:49 +00:00 |
Anton Korobeynikov
|
9362d9aa76
|
Add patterns for integer negate
llvm-svn: 75980
|
2009-07-16 14:06:27 +00:00 |
Anton Korobeynikov
|
f07c7941f0
|
Provide proper patterns for and with imm instructions. Tune the tests accordingly.
llvm-svn: 75979
|
2009-07-16 14:06:00 +00:00 |
Anton Korobeynikov
|
59049d9176
|
Add 32 bit and reg-imm and disable invalid patterns for now
llvm-svn: 75978
|
2009-07-16 14:05:32 +00:00 |
Anton Korobeynikov
|
2d218394c6
|
Add z9 and z10 target processors. Mark z10-only instructions as such.
llvm-svn: 75977
|
2009-07-16 14:05:00 +00:00 |
Anton Korobeynikov
|
68b8486fde
|
Fix MUL64rm instruction asmprinting
llvm-svn: 75976
|
2009-07-16 14:04:38 +00:00 |
Anton Korobeynikov
|
edba6f3af7
|
Preliminary asmprinting of globals
llvm-svn: 75975
|
2009-07-16 14:04:22 +00:00 |
Anton Korobeynikov
|
a2afc692f6
|
Implement asmprinting for odd-even regpairs
llvm-svn: 75974
|
2009-07-16 14:04:01 +00:00 |
Anton Korobeynikov
|
ec66c122e0
|
32-bit ri addressing mode has only 12-bit displacement
llvm-svn: 75973
|
2009-07-16 14:03:41 +00:00 |
Anton Korobeynikov
|
7b2353595d
|
Forgot to add
llvm-svn: 75972
|
2009-07-16 14:03:24 +00:00 |
Anton Korobeynikov
|
12b4b7c5f6
|
Do not put bunch of target-specific stuff into common namespace
llvm-svn: 75971
|
2009-07-16 14:03:08 +00:00 |
Anton Korobeynikov
|
59ef95bfc1
|
Print signed imms properly
llvm-svn: 75970
|
2009-07-16 14:02:45 +00:00 |
Anton Korobeynikov
|
5af8f0ebf1
|
Provide hooks for spilling / restoring stuff
llvm-svn: 75969
|
2009-07-16 14:01:27 +00:00 |
Anton Korobeynikov
|
b284c9d876
|
Revert thinko
llvm-svn: 75968
|
2009-07-16 14:01:10 +00:00 |
Anton Korobeynikov
|
abbae3bc5e
|
Temporary workaround problem with signed 32-bit imm's
llvm-svn: 75967
|
2009-07-16 14:00:42 +00:00 |
Anton Korobeynikov
|
ace2a02a84
|
Implement InsertBranch() hook
llvm-svn: 75966
|
2009-07-16 14:00:10 +00:00 |
Anton Korobeynikov
|
73bf01f236
|
Pipehole pattern for i32 imm's
llvm-svn: 75965
|
2009-07-16 13:59:49 +00:00 |
Anton Korobeynikov
|
ff1edc23ac
|
Bunch of sext_inreg patterns
llvm-svn: 75964
|
2009-07-16 13:59:18 +00:00 |
Anton Korobeynikov
|
c3170f5236
|
Provide normal 32 bit load and store
llvm-svn: 75963
|
2009-07-16 13:58:43 +00:00 |
Anton Korobeynikov
|
d568f6dce2
|
Proper lower 'small' results
llvm-svn: 75962
|
2009-07-16 13:58:24 +00:00 |
Anton Korobeynikov
|
f1bf3176c6
|
Completel forgot about unconditional branches
llvm-svn: 75961
|
2009-07-16 13:57:52 +00:00 |
Anton Korobeynikov
|
15d6e8785b
|
Lower addresses of globals
llvm-svn: 75960
|
2009-07-16 13:57:27 +00:00 |
Anton Korobeynikov
|
a442cdfb04
|
Test (incomplete) for easy muls
llvm-svn: 75959
|
2009-07-16 13:57:03 +00:00 |
Anton Korobeynikov
|
f0d7d6ce65
|
Provide "wide" muls and divs/rems
llvm-svn: 75958
|
2009-07-16 13:56:42 +00:00 |
Anton Korobeynikov
|
d919010b6a
|
Fix thinko
llvm-svn: 75957
|
2009-07-16 13:56:11 +00:00 |
Anton Korobeynikov
|
4ee0acd326
|
Fix epic bug with invalid regclass for R0D
llvm-svn: 75956
|
2009-07-16 13:55:51 +00:00 |
Anton Korobeynikov
|
12996eabbd
|
Let RegisterInfo decide whether it can emit cross-class copy or not
llvm-svn: 75955
|
2009-07-16 13:55:26 +00:00 |
Anton Korobeynikov
|
590f99b18b
|
More register pairs (now 32 bit ones)
llvm-svn: 75954
|
2009-07-16 13:55:04 +00:00 |
Anton Korobeynikov
|
ccde90b83c
|
Add even-odd register pairs
llvm-svn: 75953
|
2009-07-16 13:54:45 +00:00 |
Anton Korobeynikov
|
31e9a53d17
|
Unbreak due to mainline api change
llvm-svn: 75952
|
2009-07-16 13:54:20 +00:00 |
Anton Korobeynikov
|
071178ea15
|
Preliminary mul lowering
llvm-svn: 75951
|
2009-07-16 13:53:55 +00:00 |
Anton Korobeynikov
|
23e3c6657c
|
More extloads
llvm-svn: 75950
|
2009-07-16 13:53:35 +00:00 |
Anton Korobeynikov
|
b04a4fa5c1
|
Tests for cmp / br_cc / select_cc
llvm-svn: 75949
|
2009-07-16 13:53:15 +00:00 |
Anton Korobeynikov
|
0f59e1e874
|
SELECT_CC lowering
llvm-svn: 75948
|
2009-07-16 13:52:51 +00:00 |
Anton Korobeynikov
|
ac4fb7f977
|
Conditional branches and comparisons
llvm-svn: 75947
|
2009-07-16 13:52:31 +00:00 |
Anton Korobeynikov
|
11665a64b0
|
Emit correct offset for PseudoSourceValue
llvm-svn: 75946
|
2009-07-16 13:52:10 +00:00 |
Anton Korobeynikov
|
29329a0695
|
Provide proper stack offsets for outgoing arguments
llvm-svn: 75945
|
2009-07-16 13:51:53 +00:00 |
Anton Korobeynikov
|
44483f9eb3
|
Change register allocation order to reduce amount of callee-saved regs to be spilled.
llvm-svn: 75944
|
2009-07-16 13:51:34 +00:00 |
Anton Korobeynikov
|
8695a30066
|
Emit callee-saved regs spills / restores
llvm-svn: 75943
|
2009-07-16 13:51:12 +00:00 |
Anton Korobeynikov
|
b638a8fd73
|
Scan for presence of calls and determine max callframe size early. To allow ProcessFunctionBeforeCalleeSaveScan() use this information
llvm-svn: 75942
|
2009-07-16 13:50:40 +00:00 |