diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2022-04-01 06:13:20 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2022-04-01 06:13:20 -0700 |
commit | b351ca6ed44f7389c5a158ed069dbace16b50c12 (patch) | |
tree | 84098e9d57a291cf7b8547d6d29e7a07477f17c6 /html | |
parent | 66a74fdb72b12419707850bc05637ba62b2b42b5 (diff) | |
download | mu-b351ca6ed44f7389c5a158ed069dbace16b50c12.tar.gz |
tweaks to compiler doc
Diffstat (limited to 'html')
-rw-r--r-- | html/mu_instructions.html | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/html/mu_instructions.html b/html/mu_instructions.html index b12e3f12..3988277b 100644 --- a/html/mu_instructions.html +++ b/html/mu_instructions.html @@ -31,10 +31,11 @@ body { font-family: monospace; color: #000000; background-color: #ffffd7; } <span class="muComment">## Mu's instructions and their table-driven translation</span> See <a href="http://akkartik.name/akkartik-convivial-20200607.pdf">http://akkartik.name/akkartik-convivial-20200607.pdf</a> for the complete -story. In brief: Mu is a statement-oriented language. Blocks consist of flat -lists of instructions. Instructions can have inputs after the operation, and -outputs to the left of a '<span class="Special"><-</span>'. Inputs and outputs must be variables. They can't -include nested expressions. Variables can be literals ('n'), or live in a +story. In brief: Mu is a memory-safe statement-oriented language where most +statements translate to a single instruction of machine code. Blocks consist of +flat lists of instructions. Instructions can have inputs after the operation, +and outputs to the left of a '<span class="Special"><-</span>'. Inputs and outputs must be variables. They +can't include nested expressions. Variables can be literals ('n'), or live in a register ('var/reg') or in memory ('var') at some 'stack-offset' from the 'ebp' register. Outputs must be registers. To modify a variable in memory, pass it in by reference as an input. (Inputs are more precisely called 'inouts'.) |