Nate Begeman
7792aa1f8b
Convert A-Form instructions to auto-generated asm writer
...
llvm-svn: 16107
2004-08-29 22:45:13 +00:00
Nate Begeman
68e2dd66af
Improvements to int->float cast code for PPC-64
...
llvm-svn: 16105
2004-08-29 22:02:43 +00:00
Nate Begeman
923af3763d
Implement the following missing functionality in the PPC backend:
...
cast fp->bool
cast ulong->fp
algebraic right shift long by non-constant value
These changes tested across most of the test suite. Fixes Regression/casts
llvm-svn: 16081
2004-08-29 08:19:32 +00:00
Nate Begeman
c0e42be976
Register sizes are in bits, not bytes
...
llvm-svn: 16070
2004-08-27 04:28:10 +00:00
Nate Begeman
0069f07741
Kill a majority of unnecessary sign extensions for byte loads
...
llvm-svn: 15991
2004-08-22 08:10:15 +00:00
Nate Begeman
72ec463dc7
Don't hard code the offset of the saved R31 in functions with frame pointers
...
llvm-svn: 15990
2004-08-22 08:09:17 +00:00
Nate Begeman
e6aace2ecb
Back out branchless SetCC code. While it helped a lot in some cases, it
...
hurt a lot in others. Instead, improve branching version of SetCC and
Select instructions. The old code will be in CVS should we ever need to
dig it up again.
llvm-svn: 15979
2004-08-21 20:42:14 +00:00
Chris Lattner
15593f74c1
Switch from bytes to bits for alignment.
...
Also, change GPRC for PPC32 to align on 32-bit boundary instead of 64-bit
llvm-svn: 15975
2004-08-21 20:14:40 +00:00
Chris Lattner
db3e26f50a
Reduce uses of getRegClass
...
llvm-svn: 15968
2004-08-21 19:51:17 +00:00
Chris Lattner
23a0219a11
Fix warning
...
llvm-svn: 15964
2004-08-21 19:11:03 +00:00
Nate Begeman
dd700ce5e4
Move XForm instructions over to the auto-generated asm writer
...
llvm-svn: 15962
2004-08-21 05:56:39 +00:00
Nate Begeman
6c4bd28dc1
remove some things from the todo list.
...
llvm-svn: 15956
2004-08-20 18:46:54 +00:00
Chris Lattner
cd2b92c36e
Do not register ppc64 yet, as it breaks the SparcV9 backend
...
llvm-svn: 15955
2004-08-20 18:09:18 +00:00
Nate Begeman
2f68d05d47
Implement code to convert SetCC into straight line code where appropriate. Add necessary instructions for this transformation to the .td file.
...
llvm-svn: 15952
2004-08-20 09:56:22 +00:00
Misha Brukman
8bfcf0d2e9
Fix opcodes being printed in caps (the more general fix may be `AsmWriter')
...
llvm-svn: 15932
2004-08-19 21:56:12 +00:00
Misha Brukman
1bdac3b68d
Stack space for argument passing is 32 regardless of 32- vs. 64-bit arch.
...
Thanks to Nate Begeman for pointing this out.
llvm-svn: 15930
2004-08-19 21:51:19 +00:00
Misha Brukman
70f027b623
LR needs to be saved at 16-byte offset on a 64-bit arch
...
llvm-svn: 15929
2004-08-19 21:36:14 +00:00
Misha Brukman
2c3423694a
On 64-bit PowerPC, pointers are 8 bytes, so parameter area offset is 48, not 24
...
llvm-svn: 15928
2004-08-19 21:34:05 +00:00
Misha Brukman
21df6f6757
This PHI has 4 additional operands, not 2.
...
llvm-svn: 15926
2004-08-19 21:00:12 +00:00
Misha Brukman
e438dc224e
Use the appropriate 64-bit register description file.
...
llvm-svn: 15922
2004-08-19 19:36:57 +00:00
Misha Brukman
ffaa056155
Fix more remaining 32-bit vestiges of PowerPC
...
llvm-svn: 15919
2004-08-19 18:49:58 +00:00
Misha Brukman
409030d6b4
Fix another vestige of the 32-bit PowerPC backend.
...
llvm-svn: 15918
2004-08-19 16:50:30 +00:00
Misha Brukman
9ec6a58d15
Correct character prepended to global symbols ('.'), use Mangler consistently
...
llvm-svn: 15917
2004-08-19 16:33:56 +00:00
Misha Brukman
b2f68d6752
* Eliminate global base register, r2 is used for that on AIX/PowerPC
...
* Fix bug from 32-bit PowerPC days of 2-register long split
llvm-svn: 15916
2004-08-19 16:29:25 +00:00
Misha Brukman
7a0735b46b
Wrap long lines.
...
llvm-svn: 15915
2004-08-19 16:28:30 +00:00
Nate Begeman
0975cdde75
Convert casts that will have no effect into move instructions.
...
llvm-svn: 15914
2004-08-19 08:07:50 +00:00
Nate Begeman
81c97654da
Clean up floating point instruction selection.
...
Change int->float cast code to put conversion constants in constant pool.
Shorten code sequence for constant pool fp loads.
Remove LOADLoDirect/LOADLoIndirect psuedo instructions and tweak asmwriter
llvm-svn: 15913
2004-08-19 05:20:54 +00:00
Chris Lattner
8c5096d223
Rename var
...
llvm-svn: 15897
2004-08-18 02:22:55 +00:00
Misha Brukman
631bd1c155
This file is no longer used.
...
llvm-svn: 15893
2004-08-17 20:23:33 +00:00
Chris Lattner
8b5695de66
Start using alignment output routines from AsmPrinter.
...
Changes to make this more similar to the X86 asmprinter
Fix overalignment of globals.
llvm-svn: 15891
2004-08-17 19:26:03 +00:00
Chris Lattner
7ab985b9a2
Print comments with ;
...
llvm-svn: 15881
2004-08-17 16:27:26 +00:00
Nate Begeman
ca0ea7b9ba
Re-fix hiding the Frame Pointer from the register allocator in functions
...
that have a frame pointer. This change fixes Burg. In addition, make
the necessary changes to floating point code gen and constant loading after
Chris Lattner's fixes to the asm writer. These changes fix MallocBench/gs
llvm-svn: 15873
2004-08-17 07:17:44 +00:00
Chris Lattner
2e24f55588
Use the emitGlobalConstant defined in AsmPrinter
...
llvm-svn: 15869
2004-08-17 06:37:12 +00:00
Chris Lattner
3bc964c8fb
New, more general, interface.
...
llvm-svn: 15866
2004-08-17 06:07:43 +00:00
Misha Brukman
4434e4ce05
Rewrite targets/rules to generate files for just PowerPC or PPC{32,64}
...
llvm-svn: 15862
2004-08-17 05:11:54 +00:00
Misha Brukman
35826543f8
Register classes are target-dependent
...
llvm-svn: 15861
2004-08-17 05:10:31 +00:00
Misha Brukman
47fc7a5955
#include <map> is not necessary here
...
llvm-svn: 15860
2004-08-17 05:09:39 +00:00
Misha Brukman
c358f5b8ef
`PowerPC' is no longer a real target
...
llvm-svn: 15859
2004-08-17 05:09:10 +00:00
Misha Brukman
a73414f1da
Move variables and methods which need PPC{32,64}* distinction to subclasses
...
llvm-svn: 15858
2004-08-17 05:08:44 +00:00
Misha Brukman
17c41c8bed
No need for an `is64bit' flag
...
llvm-svn: 15857
2004-08-17 05:06:47 +00:00
Misha Brukman
471143bc94
PowerPCInstrInfo and PowerPCRegisterInfo have gone away; they are replaced
...
by 32- and 64-bit customized files, named appropriately.
llvm-svn: 15856
2004-08-17 05:05:00 +00:00
Misha Brukman
d5acc2ec78
Consistently name passed with 32 or 64 in their name
...
llvm-svn: 15855
2004-08-17 05:02:58 +00:00
Misha Brukman
52079a6264
PowerPCRegisterInfo no longer takes a bool to differentiate 32 vs 64 bits
...
llvm-svn: 15854
2004-08-17 05:02:18 +00:00
Misha Brukman
5e14dba4fa
The PowerPCInstrInfo class has gone away.
...
llvm-svn: 15853
2004-08-17 05:00:46 +00:00
Misha Brukman
daf998c35f
PowerPCInstrInfo has gone away, PPC32 and PPC64 share opcodes.
...
llvm-svn: 15852
2004-08-17 04:58:50 +00:00
Misha Brukman
38fe66d9d2
PowerPC 32-/64-bit split: Part II, 64-bit customizations on PowerPC
...
llvm-svn: 15851
2004-08-17 04:57:37 +00:00
Misha Brukman
6ce030bf87
PowerPC 32-/64-bit split: Part I, PPC32* bit files, adapted from former PowerPC*
...
llvm-svn: 15850
2004-08-17 04:55:41 +00:00
Chris Lattner
e4eb00de15
Print float constants as 4 byte values.
...
Also, fix endianness problems when cross compiling from little-endian host.
llvm-svn: 15847
2004-08-17 02:48:44 +00:00
Chris Lattner
e3af4ad9b9
Make sure to put an _ prefix on all identifiers!
...
Also, add some (currently disabled) code to print float's as 32-bits.
llvm-svn: 15846
2004-08-17 02:29:00 +00:00
Chris Lattner
b8bb516d6f
More changes to make PPC32 and X86 more similar
...
llvm-svn: 15842
2004-08-16 23:38:36 +00:00