Anton Korobeynikov
|
b22afc7bcc
|
Add bunch of branch folding stuff
llvm-svn: 76055
|
2009-07-16 14:32:19 +00:00 |
Anton Korobeynikov
|
0f8c47a7bb
|
Add missed opcodes to short => long displacement conversion
llvm-svn: 76054
|
2009-07-16 14:31:52 +00:00 |
Anton Korobeynikov
|
201d49d56a
|
Cleanup
llvm-svn: 76053
|
2009-07-16 14:31:32 +00:00 |
Anton Korobeynikov
|
3ae30e08ef
|
Fix logic inversion for RI-mode address selection
llvm-svn: 76052
|
2009-07-16 14:31:14 +00:00 |
Anton Korobeynikov
|
6c2c47ecb2
|
Unbreak the test
llvm-svn: 76051
|
2009-07-16 14:30:49 +00:00 |
Anton Korobeynikov
|
4121039bef
|
Expand 32-bit bitconverts via memory
llvm-svn: 76050
|
2009-07-16 14:30:29 +00:00 |
Anton Korobeynikov
|
bc2ead6ea3
|
Fix incomin arg stack frame offset in case we need to generate stack frame
llvm-svn: 76049
|
2009-07-16 14:29:57 +00:00 |
Anton Korobeynikov
|
3729850b50
|
Fix instruction mnemonics for some fp_to_sint operations
llvm-svn: 76048
|
2009-07-16 14:29:26 +00:00 |
Anton Korobeynikov
|
a293caf2ed
|
i32 values are passed extended also on stack. Handle this in generic way
llvm-svn: 76047
|
2009-07-16 14:29:05 +00:00 |
Anton Korobeynikov
|
1fa01d307c
|
We definitely have 1-0 bools
llvm-svn: 76046
|
2009-07-16 14:28:46 +00:00 |
Anton Korobeynikov
|
bd41c83ab0
|
Revert the commit, it just hides the real bug
llvm-svn: 76045
|
2009-07-16 14:28:26 +00:00 |
Anton Korobeynikov
|
6fb6e09781
|
Out GR128 regclass is not a 'real' i128 one.
llvm-svn: 76044
|
2009-07-16 14:27:53 +00:00 |
Anton Korobeynikov
|
fef4a3b762
|
Add missed condbranch opcodes
llvm-svn: 76043
|
2009-07-16 14:27:26 +00:00 |
Anton Korobeynikov
|
6c01db428f
|
Handle bitconverts
llvm-svn: 76042
|
2009-07-16 14:27:01 +00:00 |
Anton Korobeynikov
|
70d0bceed6
|
Unbreak mvi and friends - emit only 'significant' part of the operand
llvm-svn: 76041
|
2009-07-16 14:26:38 +00:00 |
Anton Korobeynikov
|
573fab1879
|
Expand fp_to_uint too
llvm-svn: 76040
|
2009-07-16 14:26:06 +00:00 |
Anton Korobeynikov
|
d57f8cee1d
|
We don't have FP truncstores
llvm-svn: 76039
|
2009-07-16 14:25:46 +00:00 |
Anton Korobeynikov
|
3f254d536a
|
Expand uint_to_fp
llvm-svn: 76038
|
2009-07-16 14:25:30 +00:00 |
Anton Korobeynikov
|
1ae8098144
|
Emit proper rounding mode for fp_to_sint
llvm-svn: 76037
|
2009-07-16 14:25:12 +00:00 |
Anton Korobeynikov
|
35a5d6f7ca
|
f32/f64 regs are stored on stack if we're short in FP regs
llvm-svn: 76036
|
2009-07-16 14:24:57 +00:00 |
Anton Korobeynikov
|
2acdac0f8e
|
Lower anyext to zext, 32-bit stuff does not have any implicit zero-extension side effects
llvm-svn: 76035
|
2009-07-16 14:24:41 +00:00 |
Anton Korobeynikov
|
8c18d8972c
|
Make FP zero to be legal FP immediate via LOAD ZERO
llvm-svn: 76034
|
2009-07-16 14:24:16 +00:00 |
Anton Korobeynikov
|
3894c8b6c2
|
Loads are not two-address in any way
llvm-svn: 76033
|
2009-07-16 14:24:01 +00:00 |
Anton Korobeynikov
|
c8f76f47dd
|
Add LOAD NEGATIVE instruction
llvm-svn: 76032
|
2009-07-16 14:23:44 +00:00 |
Anton Korobeynikov
|
ae2d8abf2c
|
LOAD COMPLEMENT instruction is not really two-addr
llvm-svn: 76031
|
2009-07-16 14:23:30 +00:00 |
Anton Korobeynikov
|
82af42d361
|
Add multiple add/sub instructions
llvm-svn: 76030
|
2009-07-16 14:23:16 +00:00 |
Anton Korobeynikov
|
b106b60456
|
Handle FP callee-saved regs
llvm-svn: 76029
|
2009-07-16 14:23:01 +00:00 |
Anton Korobeynikov
|
871784ba88
|
Proper FP extloads
llvm-svn: 76028
|
2009-07-16 14:22:46 +00:00 |
Anton Korobeynikov
|
12400008a7
|
Add proper PWS impdef's
llvm-svn: 76027
|
2009-07-16 14:22:30 +00:00 |
Anton Korobeynikov
|
3c44a39156
|
Propagate FP select_cc to dag inserters
llvm-svn: 76026
|
2009-07-16 14:22:15 +00:00 |
Anton Korobeynikov
|
430ab4f382
|
Implement fp_to_sint
llvm-svn: 76025
|
2009-07-16 14:21:57 +00:00 |
Anton Korobeynikov
|
345e08d24c
|
Implement FP regs spills / restores
llvm-svn: 76024
|
2009-07-16 14:21:41 +00:00 |
Anton Korobeynikov
|
0fcdd8d424
|
Add fabs
llvm-svn: 76023
|
2009-07-16 14:21:27 +00:00 |
Anton Korobeynikov
|
50485d65d4
|
Add fneg
llvm-svn: 76022
|
2009-07-16 14:21:12 +00:00 |
Anton Korobeynikov
|
d7416e7c0b
|
We don't have native sine / cosine instructions
llvm-svn: 76021
|
2009-07-16 14:20:56 +00:00 |
Anton Korobeynikov
|
77928399b0
|
More sint_to_fp stuff
llvm-svn: 76020
|
2009-07-16 14:20:39 +00:00 |
Anton Korobeynikov
|
8195797de2
|
Add bunch of FP instructions
llvm-svn: 76019
|
2009-07-16 14:20:24 +00:00 |
Anton Korobeynikov
|
45a56de726
|
We don't have any FP extloads
llvm-svn: 76018
|
2009-07-16 14:20:08 +00:00 |
Anton Korobeynikov
|
ead9b9fb31
|
Implement all comparisons
llvm-svn: 76017
|
2009-07-16 14:19:54 +00:00 |
Anton Korobeynikov
|
7cb00653c1
|
Add constpool lowering / printing
llvm-svn: 76016
|
2009-07-16 14:19:35 +00:00 |
Anton Korobeynikov
|
c806cea4cb
|
Allow FP arguments pass / return
llvm-svn: 76015
|
2009-07-16 14:19:16 +00:00 |
Anton Korobeynikov
|
923b47e89d
|
Register FP regclasses
llvm-svn: 76014
|
2009-07-16 14:19:02 +00:00 |
Anton Korobeynikov
|
5509b58cd7
|
Add FP regs
llvm-svn: 76013
|
2009-07-16 14:18:48 +00:00 |
Anton Korobeynikov
|
570d0c36ee
|
Fix fallout from prev. patch
llvm-svn: 76012
|
2009-07-16 14:18:31 +00:00 |
Anton Korobeynikov
|
b25949b0f5
|
Provide consistent subreg idx scheme. This (hopefully) fixes remaining divide problems
llvm-svn: 76011
|
2009-07-16 14:18:17 +00:00 |
Anton Korobeynikov
|
e5b04d7102
|
Use divide single for 32 bit signed divides
llvm-svn: 76010
|
2009-07-16 14:17:52 +00:00 |
Anton Korobeynikov
|
2799032a45
|
Add missed operands types
llvm-svn: 76009
|
2009-07-16 14:17:07 +00:00 |
Anton Korobeynikov
|
5fd5c3efb6
|
Missed part of prev. patch
llvm-svn: 76008
|
2009-07-16 14:16:45 +00:00 |
Anton Korobeynikov
|
b950f1961b
|
Another attempt to fix prologue emission
llvm-svn: 76007
|
2009-07-16 14:16:26 +00:00 |
Anton Korobeynikov
|
091872cb37
|
Implement 'large' PIC model
llvm-svn: 76006
|
2009-07-16 14:16:05 +00:00 |