From 54668d3ba2c23694b2c4c8fcfb09c571e0c55829 Mon Sep 17 00:00:00 2001 From: Adam Sampson Date: Sat, 15 Mar 2008 11:00:11 +0000 Subject: [PATCH] Implement the RESCHEDULE intrinsic. --- backends/GenerateC.hs | 1 + common/Intrinsics.hs | 1 + testcases/reschedule.occ | 3 +++ 3 files changed, 5 insertions(+) create mode 100644 testcases/reschedule.occ diff --git a/backends/GenerateC.hs b/backends/GenerateC.hs index f45789d..bd3c59f 100644 --- a/backends/GenerateC.hs +++ b/backends/GenerateC.hs @@ -1709,6 +1709,7 @@ cgenProcCall n as --{{{ intrinsic procs cgenIntrinsicProc :: Meta -> String -> [A.Actual] -> CGen () cgenIntrinsicProc m "ASSERT" [A.ActualExpression A.Bool e] = call genAssert m e +cgenIntrinsicProc _ "RESCHEDULE" [] = tell ["Reschedule (wptr);\n"] cgenIntrinsicProc _ s _ = call genMissing $ "intrinsic PROC " ++ s cgenAssert :: Meta -> A.Expression -> CGen () diff --git a/common/Intrinsics.hs b/common/Intrinsics.hs index 0647560..c97a5f0 100644 --- a/common/Intrinsics.hs +++ b/common/Intrinsics.hs @@ -30,5 +30,6 @@ intrinsicFunctions = intrinsicProcs :: [(String, [(A.AbbrevMode, A.Type, String)])] intrinsicProcs = [ ("ASSERT", [(A.ValAbbrev, A.Bool, "value")]) + , ("RESCHEDULE", []) ] diff --git a/testcases/reschedule.occ b/testcases/reschedule.occ new file mode 100644 index 0000000..76b43ed --- /dev/null +++ b/testcases/reschedule.occ @@ -0,0 +1,3 @@ +PROC main () + RESCHEDULE () +: