summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorRichard Osborne <richard@xmos.com>2011-02-23 18:35:59 +0000
committerRichard Osborne <richard@xmos.com>2011-02-23 18:35:59 +0000
commit4995b05f56a0993f03f57536129a44d33971dd95 (patch)
tree27957ecbb0ec81ab5a730046d5c0b65334b51097 /llvm/lib
parented172998a6bcf52755e67f50e472eb50cbbbc071 (diff)
downloadbcm5719-llvm-4995b05f56a0993f03f57536129a44d33971dd95.tar.gz
bcm5719-llvm-4995b05f56a0993f03f57536129a44d33971dd95.zip
Add llvm.xcore.waitevent intrinsic. The effect of this intrinsic is to enable
events on the thread and wait until a resource is ready to event. The vector of the resource that is ready is returned. llvm-svn: 126320
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Target/XCore/XCoreInstrInfo.td8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/Target/XCore/XCoreInstrInfo.td b/llvm/lib/Target/XCore/XCoreInstrInfo.td
index b89f6769971..90a725220f2 100644
--- a/llvm/lib/Target/XCore/XCoreInstrInfo.td
+++ b/llvm/lib/Target/XCore/XCoreInstrInfo.td
@@ -895,7 +895,7 @@ def SETV_1r : _F1R<(outs), (ins GRRegs:$r),
[(int_xcore_setv GRRegs:$r, R11)]>;
// Zero operand short
-// TODO waiteu, clre, ssync, freet, ldspc, stspc, ldssr, stssr, ldsed, stsed,
+// TODO clre, ssync, freet, ldspc, stspc, ldssr, stssr, ldsed, stsed,
// stet, geted, getet, getkep, getksp, setkep, getid, kret, dcall, dret,
// dentsp, drestsp
@@ -904,6 +904,12 @@ def GETID_0R : _F0R<(outs), (ins),
"get r11, id",
[(set R11, (int_xcore_getid))]>;
+let isBranch=1, isIndirectBranch=1, isTerminator=1, isBarrier = 1,
+ hasSideEffects = 1 in
+def WAITEU_0R : _F0R<(outs), (ins),
+ "waiteu",
+ [(brind (int_xcore_waitevent))]>;
+
//===----------------------------------------------------------------------===//
// Non-Instruction Patterns
//===----------------------------------------------------------------------===//
OpenPOWER on IntegriCloud