1944 Commits

Author SHA1 Message Date
Vikram S. Adve
03f12f521f Fixed function getEscapedString to follow the Sparc assembly rules
for symbol names!  (And renamed it to getValidSymbolName).
Fixed format for float and other constants.

llvm-svn: 1195
2001-11-08 05:12:37 +00:00
Vikram S. Adve
f889a11590 Fix bugs in FITOS/D instruction generation.
The space for optional args in the stack frame is now being computed,
so finish the code generation for the variable `alloca'.
Finally, made a major overhaul of how stack frame is managed.

llvm-svn: 1194
2001-11-08 05:04:09 +00:00
Vikram S. Adve
503d3098fa Added new function UltraSparcInstrInfo::CreateCodeToCopyIntToFloat.
Also major overhaul of how stack frame is managed.

llvm-svn: 1193
2001-11-08 04:57:53 +00:00
Vikram S. Adve
7a1524f971 Removed class RegStackOffsets and used class MachineCodeForMethod
directly to manage stack frame.

llvm-svn: 1192
2001-11-08 04:56:41 +00:00
Vikram S. Adve
6fcb28924b Use MachineFrameInfo as base class of UltraSparcFrameInfo, and made
a major overhaul of this class and how stack frames are managed.

llvm-svn: 1191
2001-11-08 04:55:13 +00:00
Chris Lattner
e147d062fa Killing warnings
llvm-svn: 1175
2001-11-07 14:01:59 +00:00
Chris Lattner
5e030830a3 Squelch warnings about not returning a value
llvm-svn: 1173
2001-11-07 13:49:12 +00:00
Vikram S. Adve
f5b4f47cff Bug fix: Printing AdIBef and AdIAft outside the scope where they
were declared, and in some cases when they were unintialized.

llvm-svn: 1146
2001-11-06 05:01:54 +00:00
Vikram S. Adve
80cf60687d Generate code for Rem instruction.
llvm-svn: 1124
2001-11-04 21:59:14 +00:00
Vikram S. Adve
ea5d1f5db8 Fixed instruction information for RDCCR and WRCCR.
Fixed selection to create a TmpInstruction for each integer CC register
(since it is an implicit side-effect, unlike FP CC registers which are
explicit operands).

llvm-svn: 1120
2001-11-04 19:34:49 +00:00
Chris Lattner
33d9cb9903 Minor method rename
llvm-svn: 1119
2001-11-04 08:08:34 +00:00
Ruchira Sasanka
9d8950d240 Added code to support correct saving of %ccr across calls
llvm-svn: 1111
2001-11-03 19:59:59 +00:00
Ruchira Sasanka
b7a397253f Arranged stack frame - needs furhter organization
Moved InsertCallerSaveInstr to the SparcRegInfo.cpp

llvm-svn: 1106
2001-11-03 17:13:27 +00:00
Chris Lattner
41a8289eb8 Check in to use moved stringizing code
llvm-svn: 1024
2001-10-29 13:39:38 +00:00
Vikram S. Adve
5ff15721c9 Minor fix I omitted to check in.
llvm-svn: 1012
2001-10-28 22:19:06 +00:00
Vikram S. Adve
2f72cdd756 Generate SETX for 64-bit integers!
llvm-svn: 1007
2001-10-28 21:41:46 +00:00
Vikram S. Adve
a5619eb835 Add SETX instruction for 64-bit constants.
Add M_CC_FLAG for many instructions that use int or fp CC registers.

llvm-svn: 1006
2001-10-28 21:41:01 +00:00
Vikram S. Adve
b31f9c3ea6 Need to subtract, not add, stack size in SAVE instruction!
llvm-svn: 1005
2001-10-28 21:39:47 +00:00
Vikram S. Adve
71b265a848 Major overhaul to print globals and constants.
llvm-svn: 1004
2001-10-28 21:38:52 +00:00
Ruchira Sasanka
9c38dbc249 Added support for spilling
llvm-svn: 992
2001-10-28 18:15:12 +00:00
Ruchira Sasanka
0863c161e9 Fixed load syntax in EmitAssembly
Fixed cpReg2Mem (store) operand oreder in SparcRegInfo.cpp

llvm-svn: 984
2001-10-24 22:05:34 +00:00
Ruchira Sasanka
36bcd79050 Fixed logic for checking whether a LR received the correct color.
llvm-svn: 976
2001-10-24 15:56:58 +00:00
Ruchira Sasanka
6a7f02082b Corrected a bug in SparcRegInfo.cpp - to add inserted instructions before a return
llvm-svn: 969
2001-10-23 21:40:39 +00:00
Vikram S. Adve
18a9e39214 UNUSED.
llvm-svn: 944
2001-10-22 13:46:38 +00:00
Vikram S. Adve
a0177cdca5 Split JMPL into JMPLCALL and JMPLRET.
llvm-svn: 943
2001-10-22 13:44:53 +00:00
Vikram S. Adve
9090b50ba9 Added a frame layout class, and code to insert prolog/epilog code.
llvm-svn: 942
2001-10-22 13:44:23 +00:00
Vikram S. Adve
5462dca9f1 Reordered registers slightly to simplify a new check.
Added a function to map between the caller's and callee's register windows.

llvm-svn: 941
2001-10-22 13:43:08 +00:00
Vikram S. Adve
8498277e77 Split JMPL into JMPLCALL and JMPLRET so that IsCall and IsReturn can
be used to distinguish those uses of the `jmpl' instruction.

llvm-svn: 940
2001-10-22 13:41:12 +00:00
Vikram S. Adve
52e41008e3 Added functions to generate prolog and epilog code.
Use JMPLRET instead of RETURN for method returns so that

llvm-svn: 939
2001-10-22 13:36:31 +00:00
Vikram S. Adve
6b492ddc15 Added SAVE and RESTORE. Duplicated JMPL into JMPLCALL and JMPLRET,
which have the same opcode and operands but different flags.

llvm-svn: 938
2001-10-22 13:32:55 +00:00
Vikram S. Adve
7c1a8d6d53 Reordered a couple of registers to simplify some new checks.
Added code to map between caller's and callee's register windows.
Added frame layout class.

llvm-svn: 937
2001-10-22 13:31:53 +00:00
Ruchira Sasanka
24729a34ce Added support for both call/jmpl instructions
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Vikram S. Adve
9bc488984f Fixed printing of offset operand for RETURN instruction.
llvm-svn: 928
2001-10-20 21:33:50 +00:00
Vikram S. Adve
5731249137 Use CALL for direct function calls; JMPL for indirect ones.
llvm-svn: 927
2001-10-20 20:57:06 +00:00
Vikram S. Adve
72ebb454d0 Minor bug fix in printing operands of JMPL.
llvm-svn: 926
2001-10-20 20:56:40 +00:00
Ruchira Sasanka
6a073498ba Added code so that colorIGNode does not unnecessarily reserve unusable
Suggested colors for neighbors.

llvm-svn: 921
2001-10-19 21:41:16 +00:00
Ruchira Sasanka
d77a1bbc2f Corrected call interference bug - suggested color not allocated if
volatile and there are call interferences

llvm-svn: 918
2001-10-19 17:23:43 +00:00
Ruchira Sasanka
5f629318fa Added support for condition code loading/stroing in methods cpReg2Reg etc.
llvm-svn: 911
2001-10-18 22:38:52 +00:00
Chris Lattner
ee6e199f0e Change Sources specifier to ExtraSources
llvm-svn: 874
2001-10-18 01:48:09 +00:00
Vikram S. Adve
6c697526bf 1. Move most of the constant-fixup code into machine-independent file
InstrSelectionSupport.cpp.  It now happens in a bottom-up pass on
   each BURG tree after the original top-down selection pass on the tree.
2. Handle global values as constants (viz., constant addresses).

llvm-svn: 868
2001-10-18 00:26:20 +00:00
Vikram S. Adve
cc776df39c Sparc-specific code shared between local files.
llvm-svn: 864
2001-10-18 00:03:20 +00:00
Vikram S. Adve
01e57a481e Moved implementation of class UltraSparcInstrInfo to SparcInstrInfo.cpp.
llvm-svn: 863
2001-10-18 00:02:32 +00:00
Vikram S. Adve
505130cb30 Added virtual function to generate an instruction sequence to
load a constant into a register.

llvm-svn: 862
2001-10-18 00:02:06 +00:00
Vikram S. Adve
4cc2b3b155 Moved implementation of class UltraSparcInstrInfo here.
llvm-svn: 861
2001-10-18 00:01:48 +00:00
Vikram S. Adve
6b4ba47f31 Only list automatically generated .cpp files.
llvm-svn: 854
2001-10-17 12:34:26 +00:00
Ruchira Sasanka
5b8971f418 Added support for caller saving
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner
3294e7c14b Emit the proper .type declarations to tell the debugger what a function is
llvm-svn: 845
2001-10-15 19:34:17 +00:00
Chris Lattner
77d2c22d94 Handle abnormal jmpl syntax correctly
llvm-svn: 844
2001-10-15 19:21:31 +00:00
Chris Lattner
f3f1e452ea Output to cerr rather than cout so that debug info doesn't mess up assembly generation
llvm-svn: 840
2001-10-15 18:15:27 +00:00
Ruchira Sasanka
086bf0fe3a updated suggesting/coloring of call & return args & implicit operands
llvm-svn: 830
2001-10-15 16:25:28 +00:00