diff options
author | Kartik Agaram <vc@akkartik.com> | 2020-10-14 10:52:03 -0700 |
---|---|---|
committer | Kartik Agaram <vc@akkartik.com> | 2020-10-14 10:52:03 -0700 |
commit | 28274eebc3211c25cfb39f962cb1140dc210994f (patch) | |
tree | 55609ed91171c305c3942c0889f50796017a3e87 | |
parent | d93841e347032f68268c02c9f84abe799edc5dbf (diff) | |
download | mu-28274eebc3211c25cfb39f962cb1140dc210994f.tar.gz |
7026
-rw-r--r-- | mu.md | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/mu.md b/mu.md index 5d431c79..5a178bd9 100644 --- a/mu.md +++ b/mu.md @@ -617,12 +617,16 @@ copy-handle x, y I said at the start that most instructions map 1:1 to x86 machine code. To enforce type- and memory-safety, I was forced to carve out a few exceptions: -* the `index` instruction on arrays, for bounds-checking +* the `index` instruction on arrays, for bounds-checking (not yet implemented) * the `length` instruction on arrays, for translating the array size in bytes into the number of elements. * the `lookup` instruction on handles, for validating fat-pointer metadata * `var` instructions, for initializing memory +If you're curious, [the compiler summary page](http://akkartik.github.io/mu/html/mu_instructions.html) +has the complete nitty-gritty on how each instruction is implemented. Including +the above exceptions. + ## Conclusion Anything not allowed here is forbidden. Even if the compiler doesn't currently |