1.1 --- a/docs/concepts.txt Sun Aug 07 23:01:35 2011 +0200
1.2 +++ b/docs/concepts.txt Sun Aug 21 14:24:28 2011 +0200
1.3 @@ -565,15 +565,26 @@
1.4 ==============
1.5
1.6 During code generation, much of the evaluation produces results which are
1.7 -implicitly recorded in the "active value" register, and various instructions
1.8 -will consume the active value. In addition, some instructions will consume a
1.9 -separate "active source value" from a register, typically those which are
1.10 -assigning the result of an expression to an assignment target.
1.11 +implicitly recorded in the "active value" or "working" register, and various
1.12 +instructions will consume this active value. In addition, some instructions
1.13 +will consume a separate "active source value" from a register, typically those
1.14 +which are assigning the result of an expression to an assignment target.
1.15
1.16 Since values often need to be retained for later use, a set of temporary
1.17 storage locations are typically employed. However, optimisations may reduce
1.18 the need to use such temporary storage where instructions which provide the
1.19 -"active value" can be re-executed and will produce the same result.
1.20 +"active value" can be re-executed and will produce the same result. Whether
1.21 +re-use of instructions is possible or not, values still need to be loaded into
1.22 +a "source" register to be accessed by an assignment instruction.
1.23 +
1.24 +RSVP instructions generally have the notion of working, target and source
1.25 +registers (see registers.txt). These register "roles" are independent from the
1.26 +actual registers defined for the RSVP machine itself, even though the naming
1.27 +is similar. Generally, instructions do regard the RSVP "working" registers as
1.28 +the class of register in the "working" role, although some occurrences of
1.29 +instruction usage may employ other registers (such as the "result" registers)
1.30 +and thus take advantage of the generality of the RSVP implementation of such
1.31 +instructions.
1.32
1.33 List and Tuple Representations
1.34 ==============================