annotate boolean.rhope @ 170:ac5c2d78663f

Inline calls to If@Boolean when static type info is present
author Mike Pavone <pavone@retrodev.com>
date Sun, 08 May 2011 18:21:19 -0700
parents 38d9cd036d49
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
68
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
1
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
2 Generate Boolean Methods[backend:out]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
3 {
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
4 func,inval <- [[[[[backend]Create Function["If@Boolean",("in"),("yes","no"),"rhope"]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
5 ]Set Input Type[Type Instance["Boolean"], 0]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
6 ]Set Output Type[Type Instance["Boolean"], 0]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
7 ]Set Output Type[Type Instance["Boolean"], 1]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
8 ]Read Field["in", "Val"]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
9
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
10 ifyes <- [[[func]Instruction Stream
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
11 ]Move["in","yes"]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
12 ]Set Null["no"]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
13
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
14 ifno <- [[[func]Instruction Stream
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
15 ]Move["in","no"]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
16 ]Set Null["yes"]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
17
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
18 ffunc <- [[func]Do If[inval, ifyes]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
19 ]Do If[NotCond[inval], ifno]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
20
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
21 out <- [backend]Store Function[ffunc]
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
22 }
38d9cd036d49 Add missing file
Mike Pavone <pavone@retrodev.com>
parents:
diff changeset
23
170
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
24 Compile Boolean Inline Check[func,op,type,in,outyes,outno:out,no inline]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
25 {
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
26 ,no inline <- If[[op]=["If"]]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
27 {
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
28 ,no inline <- If[[[type]Name >>]=["Boolean"]]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
29 {
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
30 ifyes <- [[func]Instruction Stream
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
31 ]Move[in, outyes]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
32
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
33 ifno <- [[func]Instruction Stream
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
34 ]Move[in, outno]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
35
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
36 ,inval <- [func]Read Field[Cast[in, type] "Val"]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
37 {
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
38 out <- [[~]Do If[inval, ifyes]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
39 ]Do If[NotCond[inval], ifno]
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
40 }
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
41
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
42 }
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
43 }
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
44 }
ac5c2d78663f Inline calls to If@Boolean when static type info is present
Mike Pavone <pavone@retrodev.com>
parents: 68
diff changeset
45