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 593, Tue Apr 4 07:26:33 2000 UTC revision 624, Fri Apr 21 03:06:21 2000 UTC
# Line 936  Line 936
936        and expr(T.REG(_,r)) = r        and expr(T.REG(_,r)) = r
937          | expr(T.LI 0) = zeroR          | expr(T.LI 0) = zeroR
938          | expr(T.LI32 0w0) = zeroR          | expr(T.LI32 0w0) = zeroR
939                (* On the alpha: all 32 bit values are already sign extended.
940                 * So no sign extension is necessary
941                 *)
942            | expr(T.CVTI2I(64, T.SIGN_EXTEND, 32, e)) = expr e
943            | expr(T.CVTI2I(64, T.ZERO_EXTEND, 32, e)) = expr e
944
945          | expr e = let val r = newReg()          | expr e = let val r = newReg()
946                     in  doExpr(e,r,[]); r end                     in  doExpr(e,r,[]); r end
947
# Line 1425  Line 1431
1431        and goto(lab,an) = mark(I.BRANCH{b=I.BR,r=zeroR,lab=lab},an)        and goto(lab,an) = mark(I.BRANCH{b=I.BR,r=zeroR,lab=lab},an)
1432
1433           (* generate an call instruction *)           (* generate an call instruction *)
1434        and call(ea,flow,def,use,mem,an) =        and call(ea,flow,defs,uses,mem,an) =
1435         let val pv = expr ea         let val defs=cellset defs
1436             val returnPtrR = 26             val uses=cellset uses
1437         in  mark(I.JSR{r=returnPtrR,b=pv,d=0,defs=cellset def,uses=cellset use,             val instr =
1438                        mem=mem}, an)                 case (ea, flow) of
1439                     (T.LABEL(LE.LABEL lab), [_]) =>
1441                   | _ => I.JSR{r=C.returnAddr,b=expr ea,
1442                                d=0,defs=defs,uses=uses,mem=mem}
1443           in  mark(instr,an)
1444         end         end
1445

1446        and doCCexpr(T.CC(_,r),d,an) = move(r,d,an)        and doCCexpr(T.CC(_,r),d,an) = move(r,d,an)
1447          | doCCexpr(T.FCC(_,r),d,an) = fmove(r,d,an)          | doCCexpr(T.FCC(_,r),d,an) = fmove(r,d,an)
1448          | doCCexpr(T.CMP(ty,cond,e1,e2),d,an)  = compare(ty,cond,e1,e2,d,an)          | doCCexpr(T.CMP(ty,cond,e1,e2),d,an)  = compare(ty,cond,e1,e2,d,an)

Legend:
 Removed from v.593 changed lines Added in v.624