diff options
| author | Brian Gaeke <gaeke@uiuc.edu> | 2004-05-08 04:21:32 +0000 | 
|---|---|---|
| committer | Brian Gaeke <gaeke@uiuc.edu> | 2004-05-08 04:21:32 +0000 | 
| commit | b56f1c9c10a3ac604b43f9b5ae89f1883eb89d08 (patch) | |
| tree | b6f72395d36dc2329195a888242963071a3c31f9 /llvm/lib | |
| parent | f3a479f04a509b3b0a9d9fde168c34724aeca0f4 (diff) | |
| download | bcm5719-llvm-b56f1c9c10a3ac604b43f9b5ae89f1883eb89d08.tar.gz bcm5719-llvm-b56f1c9c10a3ac604b43f9b5ae89f1883eb89d08.zip  | |
Add forms of CMP, SUBCC, and a few branches, and some comments.
llvm-svn: 13419
Diffstat (limited to 'llvm/lib')
| -rw-r--r-- | llvm/lib/Target/SparcV8/SparcV8InstrInfo.td | 13 | 
1 files changed, 13 insertions, 0 deletions
diff --git a/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td b/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td index ee397c830c1..995d7c7af9f 100644 --- a/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td +++ b/llvm/lib/Target/SparcV8/SparcV8InstrInfo.td @@ -47,10 +47,16 @@ def ADJCALLSTACKUP : InstV8 {  }  // Section A.3 - Synthetic Instructions, p. 85 +// special cases of JMPL:  let isReturn = 1, isTerminator = 1, simm13 = 8 in    def RET : F3_2<2, 0b111000, "ret">;  let isReturn = 1, isTerminator = 1, simm13 = 8 in    def RETL: F3_2<2, 0b111000, "retl">; +// CMP is a special case of SUBCC where destination is ignored, by setting it to +// %g0 (hardwired zero). +// FIXME: should keep track of the fact that it defs the integer condition codes +let rd = 0 in +  def CMPri: F3_2<2, 0b010100, "cmp">;  // Section B.1 - Load Integer Instructions, p. 90  def LDSBmr: F3_2<3, 0b001001, "ldsb">; @@ -96,6 +102,7 @@ def ADDrr : F3_1<2, 0b000000, "add">;  // Section B.15 - Subtract Instructions, p. 110  def SUBrr   : F3_1<2, 0b000100, "sub">;  def SUBCCrr : F3_1<2, 0b010100, "subcc">; +def SUBCCri : F3_2<2, 0b010100, "subcc">;  // Section B.18 - Multiply Instructions, p. 113  def UMULrr : F3_1<2, 0b001010, "umul">; @@ -117,6 +124,12 @@ def SAVEri    : F3_2<2, 0b111100, "save">;           // save    r, i, r  def RESTORErr : F3_1<2, 0b111101, "restore">;        // restore r, r, r  def RESTOREri : F3_2<2, 0b111101, "restore">;        // restore r, i, r +// Section B.21 - Branch on Integer Condition Codes Instructions, p. 119 +def BA  : F2_2<0b1000, 0b010, "ba">; +def BN  : F2_2<0b0000, 0b010, "bn">; +def BNE : F2_2<0b1001, 0b010, "bne">; +def BE  : F2_2<0b0001, 0b010, "be">; +  // Section B.24 - Call and Link Instruction, p. 125  // This is the only Format 1 instruction  def CALL : InstV8 {  | 

