1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-20 03:23:01 +02:00
Commit Graph

84 Commits

Author SHA1 Message Date
Anton Korobeynikov
3434b05a2c Fix epic fail: full-width muls are not commutable. This unbreaks bunch of stuff from SingleSource/Benchmarks/Stanford
llvm-svn: 76002
2009-07-16 14:14:01 +00:00
Anton Korobeynikov
ca4d4129c6 32 bit rotate is not twoaddr instruction
llvm-svn: 76001
2009-07-16 14:13:43 +00:00
Anton Korobeynikov
e6b7c15a63 32 bit shifts have only 12 bit displacements
llvm-svn: 76000
2009-07-16 14:13:24 +00:00
Anton Korobeynikov
cffc479110 Add proper register aliases
llvm-svn: 75999
2009-07-16 14:12:54 +00:00
Anton Korobeynikov
2954802d28 Properly generate stack frame
llvm-svn: 75998
2009-07-16 14:12:36 +00:00
Anton Korobeynikov
0e3d764cc1 Unbreak indirect branches
llvm-svn: 75997
2009-07-16 14:12:18 +00:00
Anton Korobeynikov
07380f3ab0 Unbreak
llvm-svn: 75996
2009-07-16 14:12:00 +00:00
Anton Korobeynikov
1764c55d85 Do not forget to save R15 when we allocate stack frame
llvm-svn: 75995
2009-07-16 14:11:40 +00:00
Anton Korobeynikov
31bef4e21c All calls clobbers R14
llvm-svn: 75994
2009-07-16 14:11:22 +00:00
Anton Korobeynikov
a04cb342a7 Unbreak calls to vararg functions
llvm-svn: 75993
2009-07-16 14:11:03 +00:00
Anton Korobeynikov
decd66501b Stupid typo
llvm-svn: 75992
2009-07-16 14:10:49 +00:00
Anton Korobeynikov
6d0c8510ab Typos
llvm-svn: 75991
2009-07-16 14:10:35 +00:00
Anton Korobeynikov
6c1091e7f3 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
292a84921d 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
9a1ad49207 Add support for 12 bit displacements
llvm-svn: 75988
2009-07-16 14:09:35 +00:00
Anton Korobeynikov
c2ec4e23f6 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
a809635fc8 Emit proper lowering of load from arg stack slot
llvm-svn: 75986
2009-07-16 14:08:42 +00:00
Anton Korobeynikov
9013a1ee39 Implement dynamic allocas
llvm-svn: 75985
2009-07-16 14:08:15 +00:00
Anton Korobeynikov
ee8ce5b760 Add jump tables
llvm-svn: 75984
2009-07-16 14:07:50 +00:00
Anton Korobeynikov
cb3ee3ee90 Exapnd br_jt into indirect branch. Provide pattern for indirect branches.
llvm-svn: 75983
2009-07-16 14:07:24 +00:00
Anton Korobeynikov
21e498ac1c Implement 64 bit immediates
llvm-svn: 75982
2009-07-16 14:07:06 +00:00
Anton Korobeynikov
ab90a05ff3 Add rotates
llvm-svn: 75981
2009-07-16 14:06:49 +00:00
Anton Korobeynikov
ff5b07e994 Add patterns for integer negate
llvm-svn: 75980
2009-07-16 14:06:27 +00:00
Anton Korobeynikov
335aeecedc 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
49d065e9c9 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
c9778b81c9 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
0cc45f7a03 Fix MUL64rm instruction asmprinting
llvm-svn: 75976
2009-07-16 14:04:38 +00:00
Anton Korobeynikov
34fae672be Preliminary asmprinting of globals
llvm-svn: 75975
2009-07-16 14:04:22 +00:00
Anton Korobeynikov
2fb805526a Implement asmprinting for odd-even regpairs
llvm-svn: 75974
2009-07-16 14:04:01 +00:00
Anton Korobeynikov
0fd61ed25a 32-bit ri addressing mode has only 12-bit displacement
llvm-svn: 75973
2009-07-16 14:03:41 +00:00
Anton Korobeynikov
77a5da3f8f Forgot to add
llvm-svn: 75972
2009-07-16 14:03:24 +00:00
Anton Korobeynikov
0be41e9cc1 Print signed imms properly
llvm-svn: 75970
2009-07-16 14:02:45 +00:00
Anton Korobeynikov
9ddb4978ed Provide hooks for spilling / restoring stuff
llvm-svn: 75969
2009-07-16 14:01:27 +00:00
Anton Korobeynikov
7d9fd11d73 Revert thinko
llvm-svn: 75968
2009-07-16 14:01:10 +00:00
Anton Korobeynikov
2bdca8fa4c Temporary workaround problem with signed 32-bit imm's
llvm-svn: 75967
2009-07-16 14:00:42 +00:00
Anton Korobeynikov
0ed25fd249 Implement InsertBranch() hook
llvm-svn: 75966
2009-07-16 14:00:10 +00:00
Anton Korobeynikov
484e1956df Pipehole pattern for i32 imm's
llvm-svn: 75965
2009-07-16 13:59:49 +00:00
Anton Korobeynikov
dfc4f762b3 Bunch of sext_inreg patterns
llvm-svn: 75964
2009-07-16 13:59:18 +00:00
Anton Korobeynikov
1030c0611e Provide normal 32 bit load and store
llvm-svn: 75963
2009-07-16 13:58:43 +00:00
Anton Korobeynikov
1e1f1a789b Proper lower 'small' results
llvm-svn: 75962
2009-07-16 13:58:24 +00:00
Anton Korobeynikov
db9fb21b48 Completel forgot about unconditional branches
llvm-svn: 75961
2009-07-16 13:57:52 +00:00
Anton Korobeynikov
ce2b70586e Lower addresses of globals
llvm-svn: 75960
2009-07-16 13:57:27 +00:00
Anton Korobeynikov
d984dc6c9d Provide "wide" muls and divs/rems
llvm-svn: 75958
2009-07-16 13:56:42 +00:00
Anton Korobeynikov
6ad41d1540 Fix thinko
llvm-svn: 75957
2009-07-16 13:56:11 +00:00
Anton Korobeynikov
72a2743b16 Fix epic bug with invalid regclass for R0D
llvm-svn: 75956
2009-07-16 13:55:51 +00:00
Anton Korobeynikov
c4e9f407ae More register pairs (now 32 bit ones)
llvm-svn: 75954
2009-07-16 13:55:04 +00:00
Anton Korobeynikov
ffea8dd106 Add even-odd register pairs
llvm-svn: 75953
2009-07-16 13:54:45 +00:00
Anton Korobeynikov
6a90c957dd Unbreak due to mainline api change
llvm-svn: 75952
2009-07-16 13:54:20 +00:00
Anton Korobeynikov
c42f164135 Preliminary mul lowering
llvm-svn: 75951
2009-07-16 13:53:55 +00:00
Anton Korobeynikov
f93f6b0ed3 More extloads
llvm-svn: 75950
2009-07-16 13:53:35 +00:00