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.sml
ViewVC logotype

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

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : monnier 245 (* mltree.sml
2 :     *
3 :     * COPYRIGHT (c) 1994 AT&T Bell Laboratories.
4 :     *
5 :     *)
6 :    
7 :     functor MLTreeF(structure Const : CONSTANT
8 :     structure P : PSEUDO_OPS
9 :     structure R : REGION
10 :     structure B : BLOCK_NAMES) : MLTREE =
11 :     struct
12 :     structure Constant = Const
13 :     structure PseudoOp = P
14 :     structure Region = R
15 :     structure BNames = B
16 :    
17 :     datatype cond = LT | LTU | LE | LEU | EQ | NEQ | GE | GEU | GT | GTU
18 :     datatype fcond =
19 :     == | ?<> | ? | <=> | > | >= | ?> | ?>= | < | <= | ?< | ?<= | <> | ?=
20 :     datatype order = LR | RL
21 :    
22 :     datatype stm =
23 :     MV of int * rexp (* REG(dest) := src *)
24 :     | FMV of int * fexp
25 :     | CCMV of int * ccexp
26 :    
27 :     | COPY of int list * int list
28 :     | FCOPY of int list * int list
29 :    
30 :     | JMP of rexp * Label.label list
31 :     | CALL of rexp * mlrisc list * mlrisc list
32 :     | RET
33 :    
34 :     | STORE8 of rexp * rexp * Region.region (* address, data *)
35 :     | STORE32 of rexp * rexp * Region.region
36 :     | STORED of rexp * fexp * Region.region
37 :     | STORECC of rexp * ccexp * Region.region
38 :    
39 :     | BCC of cond * ccexp * Label.label
40 :     | FBCC of fcond * ccexp * Label.label
41 :    
42 :     and rexp =
43 :     REG of int
44 :     | LI of int
45 :     | LI32 of Word32.word
46 :     | LABEL of LabelExp.labexp
47 :     | CONST of Constant.const
48 :    
49 :     | ADD of rexp * rexp
50 :     | SUB of rexp * rexp * order
51 :     | MULU of rexp * rexp
52 :     | DIVU of rexp * rexp * order
53 :    
54 :     | ADDT of rexp * rexp
55 :     | MULT of rexp * rexp
56 :     | SUBT of rexp * rexp * order
57 :     | DIVT of rexp * rexp * order
58 :    
59 :     | LOAD8 of rexp * Region.region
60 :     | LOAD32 of rexp * Region.region
61 :    
62 :     | ANDB of rexp * rexp
63 :     | ORB of rexp * rexp
64 :     | XORB of rexp * rexp
65 :    
66 :     | SRA of rexp * rexp * order (* value, shift *)
67 :     | SRL of rexp * rexp * order
68 :     | SLL of rexp * rexp * order
69 :    
70 :     | SEQ of stm * rexp
71 :    
72 :     and fexp =
73 :     FREG of int
74 :     | LOADD of rexp * Region.region
75 :    
76 :     | FADDD of fexp * fexp
77 :     | FMULD of fexp * fexp
78 :     | FSUBD of fexp * fexp * order
79 :     | FDIVD of fexp * fexp * order
80 :     | FABSD of fexp
81 :     | FNEGD of fexp
82 :    
83 :     | CVTI2D of rexp
84 :    
85 :     | FSEQ of stm * fexp
86 :    
87 :     and ccexp =
88 :     CC of int
89 :     | LOADCC of rexp * Region.region
90 :     | CMP of cond * rexp * rexp * order
91 :     | FCMP of fcond * fexp * fexp * order
92 :    
93 :     and mlrisc = CCR of ccexp | GPR of rexp | FPR of fexp
94 :    
95 :     datatype mltree =
96 :     BEGINCLUSTER
97 :     | PSEUDO_OP of PseudoOp.pseudo_op
98 :     | DEFINELABEL of Label.label
99 :     | ENTRYLABEL of Label.label
100 :     | CODE of stm list
101 :     | BLOCK_NAME of BNames.name
102 :     | ORDERED of mltree list
103 :     | ESCAPEBLOCK of mlrisc list
104 :     | ENDCLUSTER of int Intmap.intmap
105 :     end (* MLTree *)
106 :    
107 :     (*
108 :     * $Log: mltree.sml,v $
109 :     * Revision 1.2 1998/07/25 03:08:21 george
110 :     * added to support block names in MLRISC
111 :     *
112 :     * Revision 1.1.1.1 1998/04/08 18:39:02 george
113 :     * Version 110.5
114 :     *
115 :     *)

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