diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-07-06 11:13:12 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-07-06 11:13:12 -0700 |
commit | 3ae9d0ed54f7cd13a1672d0f5ae29d3f9baf4027 (patch) | |
tree | fa9b52bb561e859e2585c8824c27bde5403585c9 | |
parent | 8620c1edc329bb30e19419b55654b540712b6033 (diff) | |
download | mu-3ae9d0ed54f7cd13a1672d0f5ae29d3f9baf4027.tar.gz |
6621
-rw-r--r-- | mu.md | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/mu.md b/mu.md index 26d04eec..cf855615 100644 --- a/mu.md +++ b/mu.md @@ -127,6 +127,11 @@ or memory. Variables on the stack are never initialized. (They're always implicitly zeroed them out.) Variables in registers are always initialized. +Register variables can go in 6 registers: `eax`, `ebx`, `ecx`, `edx`, `esi` +and `edi`. Defining a variable in a register either clobbers the previous +variable (if it was defined in the same block) or shadows it temporarily (if +it was defined in an outer block). + Variables exist from their definition until the end of their containing block. Register variables may also die earlier if their register is clobbered by a new variable. |