Anton Korobeynikov
|
b6831cb044
|
Unbreak mvi and friends - emit only 'significant' part of the operand
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76041 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:26:38 +00:00 |
|
Anton Korobeynikov
|
98db78a28b
|
Expand fp_to_uint too
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76040 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:26:06 +00:00 |
|
Anton Korobeynikov
|
20d062fcc1
|
We don't have FP truncstores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76039 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:25:46 +00:00 |
|
Anton Korobeynikov
|
a89430e468
|
Expand uint_to_fp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76038 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:25:30 +00:00 |
|
Anton Korobeynikov
|
4971e1ebb7
|
Emit proper rounding mode for fp_to_sint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76037 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:25:12 +00:00 |
|
Anton Korobeynikov
|
3a9959fd4e
|
f32/f64 regs are stored on stack if we're short in FP regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76036 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:24:57 +00:00 |
|
Anton Korobeynikov
|
75eef89ddb
|
Lower anyext to zext, 32-bit stuff does not have any implicit zero-extension side effects
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76035 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:24:41 +00:00 |
|
Anton Korobeynikov
|
1ada84daaf
|
Make FP zero to be legal FP immediate via LOAD ZERO
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76034 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:24:16 +00:00 |
|
Anton Korobeynikov
|
5753f47f5b
|
Loads are not two-address in any way
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76033 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:24:01 +00:00 |
|
Anton Korobeynikov
|
a61a4f669b
|
Add LOAD NEGATIVE instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76032 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:23:44 +00:00 |
|
Anton Korobeynikov
|
03f60001df
|
LOAD COMPLEMENT instruction is not really two-addr
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76031 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:23:30 +00:00 |
|
Anton Korobeynikov
|
6495063386
|
Add multiple add/sub instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76030 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:23:16 +00:00 |
|
Anton Korobeynikov
|
1733124507
|
Handle FP callee-saved regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76029 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:23:01 +00:00 |
|
Anton Korobeynikov
|
85c5c3f138
|
Proper FP extloads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76028 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:22:46 +00:00 |
|
Anton Korobeynikov
|
299dc78d67
|
Add proper PWS impdef's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76027 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:22:30 +00:00 |
|
Anton Korobeynikov
|
da723d7d91
|
Propagate FP select_cc to dag inserters
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76026 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:22:15 +00:00 |
|
Anton Korobeynikov
|
55e96fb1c6
|
Implement fp_to_sint
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76025 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:21:57 +00:00 |
|
Anton Korobeynikov
|
92ac82abb4
|
Implement FP regs spills / restores
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76024 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:21:41 +00:00 |
|
Anton Korobeynikov
|
c79465df08
|
Add fabs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76023 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:21:27 +00:00 |
|
Anton Korobeynikov
|
f1e82ce480
|
Add fneg
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76022 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:21:12 +00:00 |
|
Anton Korobeynikov
|
9b4ae577ce
|
We don't have native sine / cosine instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76021 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:20:56 +00:00 |
|
Anton Korobeynikov
|
1d0ec0b4fc
|
More sint_to_fp stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76020 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:20:39 +00:00 |
|
Anton Korobeynikov
|
7aa03ac827
|
Add bunch of FP instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76019 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:20:24 +00:00 |
|
Anton Korobeynikov
|
23eff5c75a
|
We don't have any FP extloads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76018 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:20:08 +00:00 |
|
Anton Korobeynikov
|
10c086cd77
|
Implement all comparisons
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76017 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:19:54 +00:00 |
|
Anton Korobeynikov
|
ae53567de1
|
Add constpool lowering / printing
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76016 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:19:35 +00:00 |
|
Anton Korobeynikov
|
0e31d5cf80
|
Allow FP arguments pass / return
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76015 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:19:16 +00:00 |
|
Anton Korobeynikov
|
2c97ae8826
|
Register FP regclasses
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76014 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:19:02 +00:00 |
|
Anton Korobeynikov
|
b13057bafa
|
Add FP regs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76013 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:18:48 +00:00 |
|
Anton Korobeynikov
|
81d533c76a
|
Fix fallout from prev. patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76012 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:18:31 +00:00 |
|
Anton Korobeynikov
|
8bd0db7615
|
Provide consistent subreg idx scheme. This (hopefully) fixes remaining divide problems
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76011 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:18:17 +00:00 |
|
Anton Korobeynikov
|
09e39001da
|
Use divide single for 32 bit signed divides
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76010 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:17:52 +00:00 |
|
Anton Korobeynikov
|
cd3dfafef1
|
Add missed operands types
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76009 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:17:07 +00:00 |
|
Anton Korobeynikov
|
e1c9aabd77
|
Missed part of prev. patch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76008 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:16:45 +00:00 |
|
Anton Korobeynikov
|
9b812b0131
|
Another attempt to fix prologue emission
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76007 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:16:26 +00:00 |
|
Anton Korobeynikov
|
6fe326c713
|
Implement 'large' PIC model
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76006 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:16:05 +00:00 |
|
Anton Korobeynikov
|
48e8b3cc58
|
Implement shifts properly (hopefilly - finally!)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76005 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:15:24 +00:00 |
|
Anton Korobeynikov
|
e3a7f7a2b2
|
Remove redundand register move
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76004 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:14:54 +00:00 |
|
Anton Korobeynikov
|
0a42d2b437
|
Properly handle divides. As a bonus - implement memory versions of them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76003 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:14:33 +00:00 |
|
Anton Korobeynikov
|
d20af96f5b
|
Fix epic fail: full-width muls are not commutable. This unbreaks bunch of stuff from SingleSource/Benchmarks/Stanford
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76002 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:14:01 +00:00 |
|
Anton Korobeynikov
|
c097d5cc74
|
32 bit rotate is not twoaddr instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76001 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:13:43 +00:00 |
|
Anton Korobeynikov
|
014d4639d8
|
32 bit shifts have only 12 bit displacements
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76000 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:13:24 +00:00 |
|
Anton Korobeynikov
|
54cea741ca
|
Add proper register aliases
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75999 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:12:54 +00:00 |
|
Anton Korobeynikov
|
c3a5196133
|
Properly generate stack frame
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75998 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:12:36 +00:00 |
|
Anton Korobeynikov
|
0ba60d9658
|
Unbreak indirect branches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75997 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:12:18 +00:00 |
|
Anton Korobeynikov
|
78085ee80c
|
Unbreak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75996 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:12:00 +00:00 |
|
Anton Korobeynikov
|
66f1b378bc
|
Do not forget to save R15 when we allocate stack frame
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75995 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:11:40 +00:00 |
|
Anton Korobeynikov
|
c94fdf76dd
|
All calls clobbers R14
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75994 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:11:22 +00:00 |
|
Anton Korobeynikov
|
6f66f0556c
|
Unbreak calls to vararg functions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75993 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:11:03 +00:00 |
|
Anton Korobeynikov
|
2bbbd5bc59
|
Stupid typo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@75992 91177308-0d34-0410-b5e6-96231b3b80d8
|
2009-07-16 14:10:49 +00:00 |
|