aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/Sparc
diff options
context:
space:
mode:
authorMisha Brukman <brukman+llvm@gmail.com>2004-02-26 00:37:12 +0000
committerMisha Brukman <brukman+llvm@gmail.com>2004-02-26 00:37:12 +0000
commit23e6c1ff454a5d3d148ca3816562d7da49ac9c85 (patch)
tree77dfba79fc15e502326ec31af8531323c7961fe6 /lib/Target/Sparc
parent3a9ec199b52a9df1bce3ab8ff2996ac4bcb32ddd (diff)
Instructions to call and return from functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11858 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/Sparc')
-rw-r--r--lib/Target/Sparc/SparcV8Instrs.td26
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/Target/Sparc/SparcV8Instrs.td b/lib/Target/Sparc/SparcV8Instrs.td
index b006161a67..eda5f68088 100644
--- a/lib/Target/Sparc/SparcV8Instrs.td
+++ b/lib/Target/Sparc/SparcV8Instrs.td
@@ -15,7 +15,7 @@ include "../Target.td"
include "SparcV8Reg.td"
//===----------------------------------------------------------------------===//
-// Instructions
+// Instruction format superclass
//===----------------------------------------------------------------------===//
class InstV8 : Instruction { // SparcV8 instruction baseline
@@ -34,3 +34,27 @@ class InstV8 : Instruction { // SparcV8 instruction baseline
include "SparcV8Instrs_F2.td"
include "SparcV8Instrs_F3.td"
+//===----------------------------------------------------------------------===//
+// Instructions
+//===----------------------------------------------------------------------===//
+
+// Section B.20: SAVE and RESTORE - p117
+def SAVEr : F3_1<2, 0b111100, "save">; // save r, r, r
+def SAVEi : F3_2<2, 0b111100, "save">; // save r, i, r
+def RESTOREr : F3_1<2, 0b111101, "restore">; // restore r, r, r
+def RESTOREi : F3_2<2, 0b111101, "restore">; // restore r, i, r
+
+// Section B.24: Call and Link - p125
+// This is the only Format 1 instruction
+def CALL : InstV8 {
+ bits<30> disp;
+
+ let op = 1;
+ let Inst{29-0} = disp;
+ let Name = "call";
+}
+
+// Section B.25: Jump and Link - p126
+def JMPLr : F3_1<2, 0b111000, "jmpl">; // jmpl [rs1+rs2], rd
+def JMPLi : F3_2<2, 0b111000, "jmpl">; // jmpl [rs1+imm], rd
+