Home My Page Projects Code Snippets Project Openings SML/NJ
Summary Activity Forums Tracker Lists Tasks Docs Surveys News SCM Files

SCM Repository

[smlnj] Annotation of /sml/trunk/src/MLRISC/mltree/mltree-util.sml
ViewVC logotype

Annotation of /sml/trunk/src/MLRISC/mltree/mltree-util.sml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 410 - (view) (download)
Original Path: sml/branches/SMLNJ/src/MLRISC/mltree/mltree-util.sml

1 : monnier 409 (*
2 :     * Basic utility functions for MLTREE
3 :     *
4 :     * -- Allen
5 :     *)
6 :    
7 :     structure MLTreeUtil : MLTREE_UTIL =
8 :     struct
9 :    
10 :     structure Basis = MLTreeBasis
11 :     structure B = Basis
12 :    
13 :     fun swapCond cond =
14 :     case cond of
15 :     B.LT => B.GT
16 :     | B.LTU => B.GTU
17 :     | B.LE => B.GE
18 :     | B.LEU => B.GEU
19 :     | B.EQ => B.EQ
20 :     | B.NE => B.NE
21 :     | B.GE => B.LE
22 :     | B.GEU => B.LEU
23 :     | B.GT => B.LT
24 :     | B.GTU => B.LTU
25 :    
26 :     fun negateCond cond =
27 :     case cond of
28 :     B.LT => B.GE
29 :     | B.LTU => B.GEU
30 :     | B.LE => B.GT
31 :     | B.LEU => B.GTU
32 :     | B.EQ => B.NE
33 :     | B.NE => B.EQ
34 :     | B.GE => B.LT
35 :     | B.GEU => B.LTU
36 :     | B.GT => B.LE
37 :     | B.GTU => B.LEU
38 :    
39 :     fun hashCond cond =
40 :     case cond of
41 :     B.LT => 0w123
42 :     | B.LTU => 0w758
43 :     | B.LE => 0w81823
44 :     | B.LEU => 0w1231
45 :     | B.EQ => 0w987
46 :     | B.NE => 0w8819
47 :     | B.GE => 0w88123
48 :     | B.GEU => 0w975
49 :     | B.GT => 0w1287
50 :     | B.GTU => 0w2457
51 :    
52 :     fun condToString cond =
53 :     case cond of
54 :     B.LT => "<"
55 :     | B.LTU => "<u"
56 :     | B.LE => "<="
57 :     | B.LEU => "<=u"
58 :     | B.EQ => "="
59 :     | B.NE => "<>"
60 :     | B.GE => ">="
61 :     | B.GEU => ">=u"
62 :     | B.GT => ">"
63 :     | B.GTU => ">u"
64 :    
65 :     fun hashFcond fcond =
66 :     case fcond of
67 :     B.? => 0w123
68 :     | B.!<=> => 0w1234
69 :     | B.== => 0w12345
70 :     | B.?= => 0w123456
71 :     | B.!<> => 0w234
72 :     | B.!?>= => 0w2345
73 :     | B.< => 0w23456
74 :     | B.?< => 0w345
75 :     | B.!>= => 0w3456
76 :     | B.!?> => 0w34567
77 :     | B.<= => 0w456
78 :     | B.?<= => 0w4567
79 :     | B.!> => 0w45678
80 :     | B.!?<= => 0w567
81 :     | B.> => 0w5678
82 :     | B.?> => 0w56789
83 :     | B.!<= => 0w678
84 :     | B.!?< => 0w6789
85 :     | B.>= => 0w67890
86 :     | B.?>= => 0w789
87 :     | B.!< => 0w7890
88 :     | B.!?= => 0w78901
89 :     | B.<> => 0w890
90 :     | B.!= => 0w8901
91 :     | B.!? => 0w89012
92 :     | B.<=> => 0w991
93 :     | B.?<> => 0w391
94 :    
95 :     fun fcondToString fcond =
96 :     case fcond of
97 :     B.? => "?"
98 :     | B.!<=> => "!<=>"
99 :     | B.== => "=="
100 :     | B.?= => "?="
101 :     | B.!<> => "!<>"
102 :     | B.!?>= => "!?>="
103 :     | B.< => "<"
104 :     | B.?< => "?<"
105 :     | B.!>= => "!>="
106 :     | B.!?> => "!?>"
107 :     | B.<= => "<="
108 :     | B.?<= => "?<="
109 :     | B.!> => "!>"
110 :     | B.!?<= => "!?<="
111 :     | B.> => ">"
112 :     | B.?> => "?>"
113 :     | B.!<= => "!<="
114 :     | B.!?< => "!?<"
115 :     | B.>= => ">="
116 :     | B.?>= => "?>="
117 :     | B.!< => "!<"
118 :     | B.!?= => "!?="
119 :     | B.<> => "<>"
120 :     | B.!= => "!="
121 :     | B.!? => "!?"
122 :     | B.<=> => "<=>"
123 :     | B.?<> => "?<>"
124 :    
125 :     fun hashExt B.SIGN_EXTEND = 0w121287
126 :     | hashExt B.ZERO_EXTEND = 0w71287
127 :    
128 :     fun extToString B.SIGN_EXTEND = "sext"
129 :     | extToString B.ZERO_EXTEND = "zext"
130 :    
131 :     fun hashRoundingMode m =
132 :     case m of
133 :     B.TO_NEAREST => 0w1
134 :     | B.TO_NEGINF => 0w10
135 :     | B.TO_POSINF => 0w100
136 :     | B.TO_ZERO => 0w1000
137 :    
138 :     fun roundingModeToString m =
139 :     case m of
140 :     B.TO_NEAREST => "to_nearest"
141 :     | B.TO_NEGINF => "to_neginf"
142 :     | B.TO_POSINF => "to_posinf"
143 :     | B.TO_ZERO => "to_zero"
144 :    
145 :     end

root@smlnj-gforge.cs.uchicago.edu
ViewVC Help
Powered by ViewVC 1.0.0