diff doc/internals.txt @ 365:6a98cc90c14f

Added resolve passes
author lost@starbug
date Wed, 14 Apr 2010 20:49:04 -0600
parents d96c30e60ddf
children 34dfc9747f23
line wrap: on
line diff
--- a/doc/internals.txt	Tue Apr 06 21:35:09 2010 -0600
+++ b/doc/internals.txt	Wed Apr 14 20:49:04 2010 -0600
@@ -24,38 +24,13 @@
 ------
 
 This pass resolves all instruction sizes that can be resolved without
-setting addresses for instructions. This process is repeated until no
-further instructions sizes are resolved.
+forcing any instruction sizes. This pass will run repeatedly until no
+no new resolution occurs.
 
 Pass 4
 ------
 
-This pass assigns addresses to all symbols where values are known. It does
-the same for instructions. Then a repeat of similar algorithms as in the
-previous pass is used to resolve as many operands as possible.
-
-This pass is repeated multiple times until no further instructions or
-symbols are resolved.
-
-Pass 5
-------
-
-Finalization of all instruction sizes by forcing them to the maximum
-addressing mode. Then all remaining instruction addresses and symbol values
-are resolved.
-
-Pass 6
-------
-
-This pass does actual code generation. This is the notional second pass. All
-other passes are the notional first pass.
-
-
-Expression Evaluation
-=====================
-
-Each expression carries a certainty flag. Any expression in which any term
-is flagged as uncertain is, itself, uncertain. There are a few specific
-cases where such uncertainty can cancel out. For instance, X-X where X is
-uncertain is guaranteed to be 0 and so there is no uncertainty.
-
+Work through all un-resolved instructions and force sizes. After each size
+is forced, try re-resolving all other instructions. This is done starting
+at the beginning of the source and working forward. If any instruction does
+not resolve when forced, an error will be thrown.