summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2004-09-28 18:33:50 +0000
committerChris Lattner <sabre@nondot.org>2004-09-28 18:33:50 +0000
commitdcc4a6f705bacb66b98c58bb3b8c738d3e6df37b (patch)
tree2b3d18f430d7ed9891bff91ab4ec0786fe3ae0a4 /include
parent18d19ca6df0dd3e33c1e4459ffe513084a7acac9 (diff)
downloadllvm-dcc4a6f705bacb66b98c58bb3b8c738d3e6df37b.tar.gz
llvm-dcc4a6f705bacb66b98c58bb3b8c738d3e6df37b.tar.bz2
llvm-dcc4a6f705bacb66b98c58bb3b8c738d3e6df37b.tar.xz
Capture information about whether the target instructions have delay slots
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16550 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include')
-rw-r--r--include/llvm/Target/TargetInstrInfo.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/llvm/Target/TargetInstrInfo.h b/include/llvm/Target/TargetInstrInfo.h
index d5f4b94d96..fe4922a5ab 100644
--- a/include/llvm/Target/TargetInstrInfo.h
+++ b/include/llvm/Target/TargetInstrInfo.h
@@ -48,6 +48,7 @@ const unsigned M_BRANCH_FLAG = 1 << 1;
const unsigned M_CALL_FLAG = 1 << 2;
const unsigned M_RET_FLAG = 1 << 3;
const unsigned M_BARRIER_FLAG = 1 << 4;
+const unsigned M_DELAY_SLOT = 1 << 5;
const unsigned M_CC_FLAG = 1 << 6;
const unsigned M_LOAD_FLAG = 1 << 10;
const unsigned M_STORE_FLAG = 1 << 12;
@@ -193,6 +194,7 @@ public:
bool isBarrier(MachineOpCode Opcode) const {
return get(Opcode).Flags & M_BARRIER_FLAG;
}
+
bool isCall(MachineOpCode Opcode) const {
return get(Opcode).Flags & M_CALL_FLAG;
}
@@ -202,6 +204,13 @@ public:
bool isStore(MachineOpCode Opcode) const {
return get(Opcode).Flags & M_STORE_FLAG;
}
+
+ /// hasDelaySlot - Returns true if the specified instruction has a delay slot
+ /// which must be filled by the code generator.
+ bool hasDelaySlot(unsigned Opcode) const {
+ return get(Opcode).Flags & M_DELAY_SLOT;
+ }
+
virtual bool hasResultInterlock(MachineOpCode Opcode) const {
return true;
}