Changes between Version 11 and Version 12 of SemiTagging


Ignore:
Timestamp:
Oct 30, 2006 4:32:27 PM (8 years ago)
Author:
alexey
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SemiTagging

    v11 v12  
    2828}}} 
    2929 
    30 The case frame points to a table that has pointers to the alternatives of the case. Below you see the {{{False}}} 
     30Before looking at the rest of the {{{not}}} function, let's look at the code for the {{{True}}} and {{{False}}} closures 
     31{{{ 
     32True_info: 
     33        jump <address to True alternative>; 
     34 
     35False_info: 
     36        jump <address to False alternative>; 
     37}}} 
     38they just jump to the appropriate case alternative that is evaluating the closure. These addresses are calculated from the case frame that is on the top of the stack. In this case they select the alternatives from the jump table that is referred to by the {{{not}}} case frame. Below you see the {{{True}}} alternative 
    3139{{{ 
    3240sej_0_alt() { 
    3341        R1 = False_closure; 
    3442        Sp = Sp + 8; 
    35         jump <vectored return to False alternative>; 
     43        jump <address to False alternative>; 
    3644} 
    3745}}} 
    38 and {{{True}}} alternatives of the not function. 
     46and the {{{False}}} alternative of the {{{not}}} function. 
    3947{{{ 
    4048sej_1_alt() { 
    4149        R1 = True_closure; 
    4250        Sp = Sp + 8; 
    43         jump <vectored return to True alternative>; 
     51        jump <address to True alternative>; 
    4452} 
    4553}}} 
     54Just like the constructor closures, they jump to the appropriate branch of the case expression that is evaluating the {{{not}}} function. 
    4655 
    4756== Testing before jumping ==