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
Vikram S. Adve
1b4a9b22ad
Use CALL for direct function calls; JMPL for indirect ones.
...
llvm-svn: 927
2001-10-20 20:57:06 +00:00
Vikram S. Adve
e98e4a0526
Minor bug fix in printing operands of JMPL.
...
llvm-svn: 926
2001-10-20 20:56:40 +00:00
Ruchira Sasanka
dcac0518dd
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
2c39252eaf
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
7c37ba859b
Added support for condition code loading/stroing in methods cpReg2Reg etc.
...
llvm-svn: 911
2001-10-18 22:38:52 +00:00
Chris Lattner
bfbbc83298
Change Sources specifier to ExtraSources
...
llvm-svn: 874
2001-10-18 01:48:09 +00:00
Vikram S. Adve
0ba9c3d61b
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
abb85bb24c
Sparc-specific code shared between local files.
...
llvm-svn: 864
2001-10-18 00:03:20 +00:00
Vikram S. Adve
00436e5f21
Moved implementation of class UltraSparcInstrInfo to SparcInstrInfo.cpp.
...
llvm-svn: 863
2001-10-18 00:02:32 +00:00
Vikram S. Adve
b66fc8ac17
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
0b1e8f2577
Moved implementation of class UltraSparcInstrInfo here.
...
llvm-svn: 861
2001-10-18 00:01:48 +00:00
Vikram S. Adve
44769fbb57
Only list automatically generated .cpp files.
...
llvm-svn: 854
2001-10-17 12:34:26 +00:00
Ruchira Sasanka
26ab9c8e61
Added support for caller saving
...
llvm-svn: 847
2001-10-16 01:23:19 +00:00
Chris Lattner
4737d9ac3d
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
06e9785523
Handle abnormal jmpl syntax correctly
...
llvm-svn: 844
2001-10-15 19:21:31 +00:00
Chris Lattner
683166c06e
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
de15e9b64e
updated suggesting/coloring of call & return args & implicit operands
...
llvm-svn: 830
2001-10-15 16:25:28 +00:00
Chris Lattner
eba2b7cf61
Be const correct
...
llvm-svn: 826
2001-10-15 15:54:43 +00:00
Vikram S. Adve
54bfbca17f
Forward operands into implicit uses as well as explicit ones.
...
llvm-svn: 808
2001-10-14 23:28:43 +00:00
Vikram S. Adve
45536008e9
Two bug fixes that were suppressing some "load-constant-into-register" instrs.
...
llvm-svn: 795
2001-10-14 18:10:33 +00:00
Chris Lattner
f1104f9d8a
Move the burg file to here. Add .in suffix to indicate that it gets
...
preprocessed before burg gets to it
llvm-svn: 794
2001-10-14 17:26:21 +00:00
Chris Lattner
23de05d818
Make the sparc.burg file be a little more flexible and rubust in the fact of
...
renumbering of instructions. It is still horribly broken and grossly dependant on the number of instructions, but now it is a least a little better.
Oh yeah it also works now.
llvm-svn: 793
2001-10-14 17:25:31 +00:00
Chris Lattner
e479974c19
Fix broken #endif
...
llvm-svn: 768
2001-10-13 06:54:54 +00:00
Chris Lattner
9fb95b57db
* Add #include
...
* Fix #endif problems
* Change to getCalledValue instead of getCalledMethod
llvm-svn: 767
2001-10-13 06:54:30 +00:00
Vikram S. Adve
cc2f052087
Record implicitRefs for each machine instruction instead of
...
each VM instruction.
llvm-svn: 725
2001-10-11 04:23:19 +00:00
Vikram S. Adve
2f08c4c828
Insert code to load constants used as Call or Return arguments.
...
Also, note return value of a Call as an "implicitUse".
llvm-svn: 720
2001-10-10 20:56:33 +00:00
Ruchira Sasanka
b7ab4088e7
--removed %g regs being allocated - fix later
...
llvm-svn: 714
2001-10-09 23:36:13 +00:00
Chris Lattner
a01eda3091
* Both Method & GlobalVariable now subclass GlobalValue
...
* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
llvm-svn: 703
2001-10-03 14:53:21 +00:00
Chris Lattner
08b1dde37e
Commit more code over to new cast style
...
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner
ad1b0a1a83
Convert more code to use new style casts
...
Eliminate old style casts from value.h
llvm-svn: 696
2001-10-01 20:11:19 +00:00
Chris Lattner
4c684cde80
Add more support for new style casts
...
Convert more code to use them
llvm-svn: 695
2001-10-01 18:26:53 +00:00
Chris Lattner
43781f1f96
Add support for new style casts
...
llvm-svn: 694
2001-10-01 16:18:37 +00:00
Chris Lattner
716c1ac09e
Fix emission of return instructions
...
llvm-svn: 688
2001-10-01 02:32:34 +00:00
Vikram S. Adve
4bdadf3b6f
Several fixes:
...
(1) Avoid hard-coding some register numbers.
(2) Fix some incorrect branch opcodes.
(3) Don't try to move int register to float register!
(4) If an operand being forwarded is a constant and it doesn't fit
into the immed field of the copy machine instruction, then
generate a load-constant instead of a copy.
(5) Use (unsigned long) 0 for copying a pointer via "add 0, ptr -> ptr2".
llvm-svn: 683
2001-10-01 00:12:53 +00:00
Vikram S. Adve
5201cd7f93
Change latency of setuw and setsw to 2 cycles.
...
llvm-svn: 681
2001-09-30 23:46:57 +00:00
Ruchira Sasanka
cfc7b10745
added suggesting color support
...
llvm-svn: 673
2001-09-30 23:19:57 +00:00
Ruchira Sasanka
897da2bda1
added support for suggesting colors
...
llvm-svn: 671
2001-09-30 23:16:47 +00:00
Chris Lattner
082a95ea67
* Properly escape function names
...
* Ignore %xcc argument on conditional branches
llvm-svn: 663
2001-09-28 15:07:24 +00:00