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/alpha/mltree/alpha.sml
 [smlnj] / sml / trunk / src / MLRISC / alpha / mltree / alpha.sml

# Diff of /sml/trunk/src/MLRISC/alpha/mltree/alpha.sml

revision 888, Thu Jul 19 20:24:21 2001 UTC revision 889, Thu Jul 19 20:35:20 2001 UTC
# Line 41  Line 41
41    structure W32 = Word32    structure W32 = Word32
42    structure P   = PseudoInstrs    structure P   = PseudoInstrs
43    structure A   = MLRiscAnnotations    structure A   = MLRiscAnnotations
44      structure CB  = CellsBasis
45
46   (*********************************************************   (*********************************************************
47
# Line 169  Line 170
170    functor Multiply32 = MLTreeMult    functor Multiply32 = MLTreeMult
171      (structure I = I      (structure I = I
172       structure T = T       structure T = T
173         structure CB = CellsBasis
174
175       val intTy = 32       val intTy = 32
176
177       type arg  = {r1:C.cell,r2:C.cell,d:C.cell}       type arg  = {r1:CB.cell,r2:CB.cell,d:CB.cell}
178       type argi = {r:C.cell,i:int,d:C.cell}       type argi = {r:CB.cell,i:int,d:CB.cell}
179
180       fun mov{r,d}    = I.COPY{dst=[d],src=[r],tmp=NONE,impl=ref NONE}       fun mov{r,d}    = I.COPY{dst=[d],src=[r],tmp=NONE,impl=ref NONE}
# Line 211  Line 213
213    functor Multiply64 = MLTreeMult    functor Multiply64 = MLTreeMult
214      (structure I = I      (structure I = I
215       structure T = T       structure T = T
216         structure CB = CellsBasis
217
218       val intTy = 64       val intTy = 64
219
220       type arg  = {r1:C.cell,r2:C.cell,d:C.cell}       type arg  = {r1:CB.cell, r2:CB.cell, d:CB.cell}
221       type argi = {r:C.cell,i:int,d:C.cell}       type argi = {r:CB.cell, i:int, d:CB.cell}
222
223       fun mov{r,d}    = I.COPY{dst=[d],src=[r],tmp=NONE,impl=ref NONE}       fun mov{r,d}    = I.COPY{dst=[d],src=[r],tmp=NONE,impl=ref NONE}
# Line 413  Line 416
416                             [_] => NONE | _ => SOME(I.FDirect(newFreg()))},an)                             [_] => NONE | _ => SOME(I.FDirect(newFreg()))},an)
417
418        and move(s,d,an) =        and move(s,d,an) =
419            if C.sameCell(s,d) orelse C.sameCell(d,zeroR) then () else            if CB.sameCell(s,d) orelse CB.sameCell(d,zeroR) then () else
420            mark(I.COPY{dst=[d],src=[s],impl=ref NONE,tmp=NONE},an)            mark(I.COPY{dst=[d],src=[s],impl=ref NONE,tmp=NONE},an)
421
422        and fmove(s,d,an) =        and fmove(s,d,an) =
423            if C.sameCell(s,d) orelse C.sameCell(d,zeroFR) then () else            if CB.sameCell(s,d) orelse CB.sameCell(d,zeroFR) then () else
424            mark(I.FCOPY{dst=[d],src=[s],impl=ref NONE,tmp=NONE},an)            mark(I.FCOPY{dst=[d],src=[s],impl=ref NONE,tmp=NONE},an)
425
426         (* emit an sign extension op *)         (* emit an sign extension op *)

Legend:
 Removed from v.888 changed lines Added in v.889