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/branches/SMLNJ/src/compiler/CodeGen/cpscompile/invokegc.sml
ViewVC logotype

Diff of /sml/branches/SMLNJ/src/compiler/CodeGen/cpscompile/invokegc.sml

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

revision 468, Wed Nov 10 22:42:52 1999 UTC revision 469, Wed Nov 10 22:42:52 1999 UTC
# Line 92  Line 92 
92            T.CALL(            T.CALL(
93              T.LOAD(32, T.ADD(addrTy,C.stackptr,T.LI MS.startgcOffset), R.stack),              T.LOAD(32, T.ADD(addrTy,C.stackptr,T.LI MS.startgcOffset), R.stack),
94                     def, use, R.stack),                     def, use, R.stack),
95            BasicAnnotations.COMMENT "call gc")            #create BasicAnnotations.COMMENT "call gc")
96     end     end
97    
98       val CALLGC = #create BasicAnnotations.CALLGC ()
99    
100         (*         (*
101          * record descriptors          * record descriptors
102          *)          *)
# Line 108  Line 110 
110         (* what type of comparison to use for GC test? *)         (* what type of comparison to use for GC test? *)
111     val gcCmp = if C.signedGCTest then T.GT else T.GTU     val gcCmp = if C.signedGCTest then T.GT else T.GTU
112    
113     val unlikely = BasicAnnotations.BRANCH_PROB 0     val unlikely = #create BasicAnnotations.BRANCH_PROB 0
114    
115     val normalTestLimit = T.CMP(pty, gcCmp, C.allocptr, C.limitptr)     val normalTestLimit = T.CMP(pty, gcCmp, C.allocptr, C.limitptr)
116    
# Line 450  Line 452 
452    
453         fun mark(call) =         fun mark(call) =
454             if !debug then             if !debug then
455                T.ANNOTATION(call,BasicAnnotations.COMMENT                T.ANNOTATION(call,#create BasicAnnotations.COMMENT
456                   ("roots="^setToString gcrootAvail^                   ("roots="^setToString gcrootAvail^
457                    " boxed="^setToString boxedRoots))                    " boxed="^setToString boxedRoots))
458             else call             else call
# Line 472  Line 474 
474         val (extraRoots,unpack) = pack(emit, gcroots, boxed, int32, float)         val (extraRoots,unpack) = pack(emit, gcroots, boxed, int32, float)
475    
476     in  initRoots(emit, extraRoots);     in  initRoots(emit, extraRoots);
477         annotation(BasicAnnotations.CALLGC);         annotation(CALLGC);
478         emit(mark(gcCall));         emit(mark(gcCall));
479         if known then computeBasePtr(emit,defineLabel) else ();         if known then computeBasePtr(emit,defineLabel) else ();
480         unpack();         unpack();

Legend:
Removed from v.468  
changed lines
  Added in v.469

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