Commit Graph

155 Commits

Author SHA1 Message Date
Anton Korobeynikov
b1f61e24d1 Add carry producing / using versions of add / sub
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76316 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 14:16:06 +00:00
Anton Korobeynikov
6323a83e2c Expand frem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76315 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 13:44:25 +00:00
Anton Korobeynikov
6d94eff354 Turn abort() into unreachable
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76314 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 13:34:59 +00:00
Anton Korobeynikov
31e874490a Turn few asserts into errors / unreachable's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76313 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 13:33:17 +00:00
Anton Korobeynikov
87e412b921 Handle vector returns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76312 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 12:51:06 +00:00
Anton Korobeynikov
0cca06905b Provide expansion for ct* intrinsics
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76311 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 12:26:13 +00:00
Anton Korobeynikov
e37a37de77 Expand sext_inreg for i1
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76310 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-18 12:20:36 +00:00
Anton Korobeynikov
bb496a358e Add missed return
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76209 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 18:28:59 +00:00
Duncan Sands
3e11988c42 Avoid a compiler warning when assertions are turned off.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76176 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 12:25:14 +00:00
Daniel Dunbar
19c29f53f2 Fix 'may be used uninitialized' warning.
- Anton, please review.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76144 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-17 02:19:26 +00:00
Anton Korobeynikov
7df8462038 Unbreak
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76064 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:36:52 +00:00
Anton Korobeynikov
c975180624 Temporary disable 16 bit bswap
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76063 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:35:57 +00:00
Anton Korobeynikov
6d4b270e38 Add instruction formats and few opcodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76062 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:35:20 +00:00
Anton Korobeynikov
6ff3f2c710 Add bswap patterns
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76061 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:34:52 +00:00
Anton Korobeynikov
21ddf779bf Provide crazy pseudos for regpairs spills / reloads
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76060 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:34:15 +00:00
Anton Korobeynikov
9de2848fac Handle long-disp stuff more consistently
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76059 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:33:52 +00:00
Anton Korobeynikov
74e2dc446c All FP instructions have 12 bit memory displacement field
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76058 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:33:27 +00:00
Anton Korobeynikov
f1106c4247 Another predicate routine
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76057 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:33:01 +00:00
Anton Korobeynikov
27bf677e59 More helpers
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76056 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:32:41 +00:00
Anton Korobeynikov
ae46db85a9 Add bunch of branch folding stuff
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76055 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:32:19 +00:00
Anton Korobeynikov
27766b548f Add missed opcodes to short => long displacement conversion
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76054 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:31:52 +00:00
Anton Korobeynikov
c3e48b06fb Cleanup
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76053 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:31:32 +00:00
Anton Korobeynikov
54681eca69 Fix logic inversion for RI-mode address selection
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76052 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:31:14 +00:00
Anton Korobeynikov
bb8a04806d Expand 32-bit bitconverts via memory
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76050 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:30:29 +00:00
Anton Korobeynikov
f2fd8ea1c9 Fix incomin arg stack frame offset in case we need to generate stack frame
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76049 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:29:57 +00:00
Anton Korobeynikov
8b75813687 Fix instruction mnemonics for some fp_to_sint operations
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76048 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:29:26 +00:00
Anton Korobeynikov
c1a1e4adb7 i32 values are passed extended also on stack. Handle this in generic way
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76047 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:29:05 +00:00
Anton Korobeynikov
159ac63ba1 We definitely have 1-0 bools
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76046 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:28:46 +00:00
Anton Korobeynikov
5dd38de2c2 Revert the commit, it just hides the real bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76045 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:28:26 +00:00
Anton Korobeynikov
361a78756b Out GR128 regclass is not a 'real' i128 one.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76044 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:27:53 +00:00
Anton Korobeynikov
628d419520 Add missed condbranch opcodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76043 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:27:26 +00:00
Anton Korobeynikov
05a0b8bc66 Handle bitconverts
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76042 91177308-0d34-0410-b5e6-96231b3b80d8
2009-07-16 14:27:01 +00:00
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