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

SCM Repository

[smlnj] Diff of /sml/trunk/src/MLRISC/ppc/ra/ppcRewrite.sml
ViewVC logotype

Diff of /sml/trunk/src/MLRISC/ppc/ra/ppcRewrite.sml

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 651, Thu Jun 1 18:34:03 2000 UTC revision 657, Fri Jun 9 05:20:54 2000 UTC
# Line 1  Line 1 
1  functor PPCRewrite(Instr : PPCINSTR) = struct  functor PPCRewrite(Instr : PPCINSTR) = struct
2    structure I = Instr    structure I = Instr
3      structure C = I.C
4    
5    fun ea(NONE, _, _, _) = NONE    fun ea(NONE, _, _, _) = NONE
6      | ea(e as SOME(I.Direct r), rs, rt, mapr : I.C.cell -> I.C.cell) =      | ea(e as SOME(I.Direct r), rs, rt, mapr : I.C.cell -> I.C.cell) =
# Line 46  Line 47 
47          I.COPY{dst=dst, src=map rplac src, impl=impl, tmp=tmp}          I.COPY{dst=dst, src=map rplac src, impl=impl, tmp=tmp}
48       | I.FCOPY{dst, src, impl, tmp} =>       | I.FCOPY{dst, src, impl, tmp} =>
49          I.FCOPY{dst=dst, src=src, impl=impl, tmp=ea(tmp, rs, rt, mapr)}          I.FCOPY{dst=dst, src=src, impl=impl, tmp=ea(tmp, rs, rt, mapr)}
50       | I.ANNOTATION{i,a} => I.ANNOTATION{i=rewriteUse(mapr,i,rs,rt),a=a}       | I.ANNOTATION{i,a} =>
51             I.ANNOTATION{i=rewriteUse(mapr,i,rs,rt),
52                            a=case a of
53                               C.DEF_USE{cellkind=C.GP,defs,uses} =>
54                                 C.DEF_USE{cellkind=C.GP,uses=map rplac uses,
55                                           defs=defs}
56                              | _ => a}
57       | _ => instr       | _ => instr
58    end    end
59    
# Line 71  Line 78 
78          I.CALL{def=(map rplac r, f, c), use=use, mem=mem}          I.CALL{def=(map rplac r, f, c), use=use, mem=mem}
79       | I.COPY {dst, src, impl, tmp} =>       | I.COPY {dst, src, impl, tmp} =>
80          I.COPY{dst=map rplac dst, src=src, impl=impl, tmp=ea(tmp,rs,rt,mapr)}          I.COPY{dst=map rplac dst, src=src, impl=impl, tmp=ea(tmp,rs,rt,mapr)}
81       | I.ANNOTATION{i,a} => I.ANNOTATION{i=rewriteDef(mapr,i,rs,rt),a=a}       | I.ANNOTATION{i,a} =>
82            I.ANNOTATION{i=rewriteDef(mapr,i,rs,rt),
83                            a=case a of
84                               C.DEF_USE{cellkind=C.GP,defs,uses} =>
85                                 C.DEF_USE{cellkind=C.GP,uses=uses,
86                                           defs=map rplac defs}
87                              | _ => a}
88       | _ => instr       | _ => instr
89    end    end
90    
# Line 93  Line 106 
106           I.FARITH3{oper=oper,ft=ft,fa=rplac fa, fb=rplac fb, fc=rplac fc,Rc=Rc}           I.FARITH3{oper=oper,ft=ft,fa=rplac fa, fb=rplac fb, fc=rplac fc,Rc=Rc}
107       | I.FCOPY {dst, src, impl, tmp} =>       | I.FCOPY {dst, src, impl, tmp} =>
108           I.FCOPY{dst=dst, src=map rplac src, impl=impl, tmp=tmp}           I.FCOPY{dst=dst, src=map rplac src, impl=impl, tmp=tmp}
109       | I.ANNOTATION{i,a} => I.ANNOTATION{i=frewriteUse(mapr,i,fs,ft),a=a}       | I.ANNOTATION{i,a} =>
110             I.ANNOTATION{i=frewriteUse(mapr,i,fs,ft),
111                            a=case a of
112                               C.DEF_USE{cellkind=C.FP,defs,uses} =>
113                                 C.DEF_USE{cellkind=C.FP,uses=map rplac uses,
114                                           defs=defs}
115                              | _ => a}
116       | _ => instr       | _ => instr
117    end    end
118    
# Line 115  Line 134 
134          I.CALL{def=(r, map rplac f, c), use=use, mem=mem}          I.CALL{def=(r, map rplac f, c), use=use, mem=mem}
135       | I.FCOPY {dst, src, impl, tmp} =>       | I.FCOPY {dst, src, impl, tmp} =>
136          I.FCOPY{dst=map rplac dst, src=src, impl=impl, tmp=ea(tmp,fs,ft,mapr)}          I.FCOPY{dst=map rplac dst, src=src, impl=impl, tmp=ea(tmp,fs,ft,mapr)}
137       | I.ANNOTATION{i,a} => I.ANNOTATION{i=frewriteDef(mapr,i,fs,ft),a=a}       | I.ANNOTATION{i,a} =>
138            I.ANNOTATION{i=frewriteDef(mapr,i,fs,ft),
139                            a=case a of
140                               C.DEF_USE{cellkind=C.FP,defs,uses} =>
141                                 C.DEF_USE{cellkind=C.FP,uses=uses,
142                                           defs=map rplac defs}
143                              | _ => a}
144       | _ => instr       | _ => instr
145    end    end
146  end  end

Legend:
Removed from v.651  
changed lines
  Added in v.657

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