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

Diff of /sml/trunk/src/MLRISC/sparc/mltree/sparc.sml

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

revision 838, Tue Jun 5 19:10:21 2001 UTC revision 839, Thu Jun 7 20:28:44 2001 UTC
# Line 409  Line 409 
409        in  g(mlrisc, C.empty) end        in  g(mlrisc, C.empty) end
410    
411        (* emit a function call *)        (* emit a function call *)
412        and call(a,flow,defs,uses,mem,cutsTo,an) =        and call(a,flow,defs,uses,mem,cutsTo,an,0) =
413        let val (r,i) = addr a        let val (r,i) = addr a
414            val defs=cellset(defs)            val defs=cellset(defs)
415            val uses=cellset(uses)            val uses=cellset(uses)
# Line 420  Line 420 
420            | _ => mark(I.JMPL{r=r,i=i,d=C.linkReg,defs=defs,uses=uses,            | _ => mark(I.JMPL{r=r,i=i,d=C.linkReg,defs=defs,uses=uses,
421                               cutsTo=cutsTo,mem=mem,nop=true},an)                               cutsTo=cutsTo,mem=mem,nop=true},an)
422        end        end
423            | call _ = error "pops<>0 not implemented"
424    
425        (* emit an integer branch instruction *)        (* emit an integer branch instruction *)
426        and branch(T.CMP(ty,cond,a,b),lab,an) =        and branch(T.CMP(ty,cond,a,b),lab,an) =
# Line 479  Line 480 
480          | stmt(T.JMP(T.LABEL l,_),an) =          | stmt(T.JMP(T.LABEL l,_),an) =
481              mark(I.Bicc{b=I.BA,a=true,label=l,nop=false},an)              mark(I.Bicc{b=I.BA,a=true,label=l,nop=false},an)
482          | stmt(T.JMP(e,labs),an) = jmp(e,labs,an)          | stmt(T.JMP(e,labs),an) = jmp(e,labs,an)
483          | stmt(T.CALL{funct,targets,defs,uses,region,...},an) =          | stmt(T.CALL{funct,targets,defs,uses,region,pops,...},an) =
484              call(funct,targets,defs,uses,region,[],an)              call(funct,targets,defs,uses,region,[],an,pops)
485          | stmt(T.FLOW_TO          | stmt(T.FLOW_TO
486                   (T.CALL{funct,targets,defs,uses,region,...},cutsTo),an) =                   (T.CALL{funct,targets,defs,uses,region,pops,...},cutsTo),an) =
487              call(funct,targets,defs,uses,region,cutsTo,an)              call(funct,targets,defs,uses,region,cutsTo,an,pops)
488          | stmt(T.RET _,an) = mark(I.RET{leaf=not registerwindow,nop=true},an)          | stmt(T.RET _,an) = mark(I.RET{leaf=not registerwindow,nop=true},an)
489          | stmt(T.STORE(8,a,d,mem),an)   = store(I.STB,a,d,mem,an)          | stmt(T.STORE(8,a,d,mem),an)   = store(I.STB,a,d,mem,an)
490          | stmt(T.STORE(16,a,d,mem),an)  = store(I.STH,a,d,mem,an)          | stmt(T.STORE(16,a,d,mem),an)  = store(I.STH,a,d,mem,an)

Legend:
Removed from v.838  
changed lines
  Added in v.839

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