Vikram S. Adve
bb424a4fe1
Fix dumb bug in alignment adjustment code!
...
llvm-svn: 1260
2001-11-12 05:16:39 +00:00
Vikram S. Adve
2b5e92123c
Fix bogus code that was eliminating needed args.
...
llvm-svn: 1259
2001-11-11 23:11:36 +00:00
Ruchira Sasanka
661bf856f5
Fixed FP and SP usage. SP for outgoing args - for everything else FP
...
llvm-svn: 1258
2001-11-11 22:37:51 +00:00
Ruchira Sasanka
9d20df621c
cahnged StackPointer accesses to FramePointer
...
llvm-svn: 1257
2001-11-11 21:49:37 +00:00
Vikram S. Adve
b98d36462b
Down-growing offsets from FP should start at 0, not -1.
...
llvm-svn: 1255
2001-11-11 21:22:11 +00:00
Ruchira Sasanka
bf341d2d5d
Corrected reodering code for instructions inserted before calls
...
llvm-svn: 1252
2001-11-10 21:20:43 +00:00
Vikram S. Adve
ca73b36000
Several bug fixes in printing constants, particularly with unsized
...
arrays and multi-dimensional arrays.
llvm-svn: 1239
2001-11-10 02:03:06 +00:00
Vikram S. Adve
cbc2cec180
Must generate an instruction for GetElementPtr if single user is not
...
a memory instruction!
llvm-svn: 1238
2001-11-10 01:05:26 +00:00
Ruchira Sasanka
e98f033070
Disabled some debuggin messages
...
llvm-svn: 1237
2001-11-10 00:26:55 +00:00
Ruchira Sasanka
a4a64f3755
Added code for correct reordering of call arguments
...
llvm-svn: 1234
2001-11-09 23:49:14 +00:00
Vikram S. Adve
6c5f14ebbc
Add support to print constant arrays and structures.
...
Align data larger than an L1 cache line on L1 cache line boundary.
llvm-svn: 1228
2001-11-09 02:19:29 +00:00
Vikram S. Adve
91f30ac019
Do the same for float->int that we did for int->float earlier.
...
Also check IsPointerType() in addition to IsIntegral() in several places.
llvm-svn: 1227
2001-11-09 02:18:16 +00:00
Vikram S. Adve
61173418a7
Added function UltraSparcInstrInfo::CreateCodeToCopyFloatToInt.
...
llvm-svn: 1226
2001-11-09 02:16:40 +00:00
Vikram S. Adve
8766f0ad37
Added class UltraSparcCacheInfo.
...
llvm-svn: 1225
2001-11-09 02:16:04 +00:00
Vikram S. Adve
1b7faa892c
Bug fix: Need to include the stack offset "bias" in assembly code itself.
...
Added class UltraSparcCacheInfo.
Added function to convert float to int by copying via memory.
llvm-svn: 1224
2001-11-09 02:15:52 +00:00
Vikram S. Adve
9073d4427a
Bug fix: need to use .reserve for uninitialized data.
...
llvm-svn: 1205
2001-11-08 14:29:57 +00:00
Vikram S. Adve
347a3cab9e
Added support for bitwise logical operators. Use different labels for
...
for these than for boolean logicals to avoid making Burg diverge.
See Burg manual for more information.
llvm-svn: 1196
2001-11-08 05:14:02 +00:00
Vikram S. Adve
ef146ce336
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
a7383895cd
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
61f4694d6e
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
77dca53970
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
1cc04e4908
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
15f524c88e
Killing warnings
...
llvm-svn: 1175
2001-11-07 14:01:59 +00:00
Chris Lattner
bf8d5bd2f7
Squelch warnings about not returning a value
...
llvm-svn: 1173
2001-11-07 13:49:12 +00:00
Vikram S. Adve
d3f33a7d2f
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
843f32ad9b
Generate code for Rem instruction.
...
llvm-svn: 1124
2001-11-04 21:59:14 +00:00
Vikram S. Adve
cb87df31db
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
ea63d43a07
Minor method rename
...
llvm-svn: 1119
2001-11-04 08:08:34 +00:00
Ruchira Sasanka
20c3c4be28
Added code to support correct saving of %ccr across calls
...
llvm-svn: 1111
2001-11-03 19:59:59 +00:00
Ruchira Sasanka
7673c5f6e0
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
1153a795eb
Check in to use moved stringizing code
...
llvm-svn: 1024
2001-10-29 13:39:38 +00:00
Vikram S. Adve
c3bc8c623a
Minor fix I omitted to check in.
...
llvm-svn: 1012
2001-10-28 22:19:06 +00:00
Vikram S. Adve
98a0f1fa14
Generate SETX for 64-bit integers!
...
llvm-svn: 1007
2001-10-28 21:41:46 +00:00
Vikram S. Adve
64c463355b
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
165284e269
Need to subtract, not add, stack size in SAVE instruction!
...
llvm-svn: 1005
2001-10-28 21:39:47 +00:00
Vikram S. Adve
b354629285
Major overhaul to print globals and constants.
...
llvm-svn: 1004
2001-10-28 21:38:52 +00:00
Ruchira Sasanka
3c4d2dea7c
Added support for spilling
...
llvm-svn: 992
2001-10-28 18:15:12 +00:00
Ruchira Sasanka
f8a3d5f0ca
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
603b617221
Fixed logic for checking whether a LR received the correct color.
...
llvm-svn: 976
2001-10-24 15:56:58 +00:00
Ruchira Sasanka
a215e9d233
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
f5810ae651
UNUSED.
...
llvm-svn: 944
2001-10-22 13:46:38 +00:00
Vikram S. Adve
f80c58a7d6
Split JMPL into JMPLCALL and JMPLRET.
...
llvm-svn: 943
2001-10-22 13:44:53 +00:00
Vikram S. Adve
1f7055b694
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
b581a10ba4
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
8d3d8c5788
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
18bfb1399a
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
bebf9c9763
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
3ae28be821
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
6df15c541f
Added support for both call/jmpl instructions
...
llvm-svn: 930
2001-10-21 16:43:41 +00:00
Vikram S. Adve
a52d8bfb65
Fixed printing of offset operand for RETURN instruction.
...
llvm-svn: 928
2001-10-20 21:33:50 +00:00