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

Diff of /sml/trunk/src/MLRISC/backpatch/spanDep.sml

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

revision 1008, Fri Dec 14 21:01:29 2001 UTC revision 1009, Wed Jan 9 19:44:22 2002 UTC
# Line 280  Line 280 
280            in  strategy1()            in  strategy1()
281            end            end
282    
283              and process(instrs, others) = let
           and process([],others) = others  
             | process(instrs as jmp::body,others) = let  
284                 fun alignIt(chunks) =                 fun alignIt(chunks) =
285                   (case !align of NONE => chunks | SOME p => PSEUDO(p)::chunks)                   (case !align of NONE => chunks | SOME p => PSEUDO(p)::chunks)
286                val code =
287                  (case instrs
288                    of [] => []
289                     | jmp::body =>
290                        (case Props.instrKind jmp
291                           of Props.IK_JUMP => fitDelaySlot(jmp, body)
292                            | _ => scan(instrs, [], 0, [])
293                        (*esac*))
294                  (*esac*))
295                in                in
296                  alignIt                  alignIt
297                     (map LABEL (!labels) @                     (map LABEL (!labels) @
298                        CODE                     CODE (A.sub(labelMap, id), code) :: others)
299                          (A.sub(labelMap, id),  
                          case Props.instrKind jmp  
                           of Props.IK_JUMP => fitDelaySlot(jmp,body)  
                            | _             => scan(instrs,[],0,[])  
                          )::others)  
300                end                end
301          in          in
302            process(!insns,compress rest)            process(!insns,compress rest)
# Line 423  Line 426 
426    
427      val E.S.STREAM{defineLabel,pseudoOp,emit,beginCluster,...} =      val E.S.STREAM{defineLabel,pseudoOp,emit,beginCluster,...} =
428          E.makeStream []          E.makeStream []
429    
430        val debug = MLRiscControl.getFlag "dump-cfg-after-spandep"
431    
432      fun emitCluster(CLUSTER{comp},loc) = let      fun emitCluster(CLUSTER{comp},loc) = let
433        val emitInstrs = app emit        val emitInstrs = app emit
434        fun nops 0 = ()        fun nops 0 = ()

Legend:
Removed from v.1008  
changed lines
  Added in v.1009

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