src/virtual-machines/source-1-with-mark-region-gc.js
// returns line node address in RES
returns line node address in RES
returns line node address in RES
function GET_LINE() {
  C = math_floor(A / BLOCK_SIZE) * BLOCK_SIZE;                 
  RES = HEAP[C + HEAP[C + FIRST_CHILD_SLOT] + LINE_ADDRESS_SLOT]; 
  A = math_floor((A - RES) / LINE_SIZE);                       
  RES = C + HEAP[C + FIRST_CHILD_SLOT] + A * LINE_BK_SIZE;            
  if (RES < 0) {
    error(RES, "negative line number");
  } else {}
}
function GET_LINE ( ) { C = math_floor ( A / BLOCK_SIZE ) * BLOCK_SIZE ; RES = HEAP [ C + HEAP [ C + FIRST_CHILD_SLOT ] + LINE_ADDRESS_SLOT ] ; A = math_floor ( ( A - RES ) / LINE_SIZE ) ; RES = C + HEAP [ C + FIRST_CHILD_SLOT ] + A * LINE_BK_SIZE ; if ( RES < 0 ) { error ( RES , "negative line number" ) ; } else { } }
returns line node address in RES
returns line node address in RES
// block address in C // find offset from start of block // start of addressable space in RES // line offset number in A // line node address in RES // debugging