diff options
-rw-r--r-- | doc/il.txt | 72 |
1 files changed, 30 insertions, 42 deletions
diff --git a/doc/il.txt b/doc/il.txt index 08ded34..7295b3b 100644 --- a/doc/il.txt +++ b/doc/il.txt @@ -30,7 +30,7 @@ * <@ Cast > * <@ Call > * <@ Phi > - * <@ Instructions index > + 7. <@ Instructions Index > - 1. Basic Concepts ------------------- @@ -434,7 +434,7 @@ the following list. a return type, no return value can be used. - 6. Instructions -------------------------- +----------------- Instructions are the smallest piece of code in the IL, they form the body of <@ Blocks >. The IL uses a three-address @@ -802,51 +802,39 @@ assumes that if a variable is defined by a phi it respects all the SSA invariants. So it is critical to not use phi instructions unless you know exactly what you are doing. -~ Instructions index -~~~~~~~~~~~~~~~~~~~~~ - -List of all QBE IL instructions, linked to their respective -section. - - * <@ Arithmetic and Bits > - - `add`, `sub`, `div`, `mul` - - `udiv`, `rem`, `urem` - - `or`, `xor`, `and` - - `sar`, `shr`, `shl` - - * <@ Memory > - - `stored`, `stores`, `storel`, `storew`, `storeh`, `storeb` - - `loadd`, `loads`, `loadl`, `loadsw`, `loadsh`, `loadsb` - - `alloc4`, `alloc8`, `alloc16` +- 7. Instructions Index +----------------------- - * <@ Comparisons > +<@ Arithmetic and Bits >: + `add`, `sub`, `div`, `mul`, `udiv`, `rem`, `urem`, `or`, + `xor`, `and`, `sar`, `shr`, `shl` - `ceqb`, `ceqh`, `ceqw`, `ceql`, `cneb`, `cneh`, `cnew`, - `cnel`, `csleb`, `csleh`, `cslew`, `cslel`, `csltb`, - `cslth`, `csltw`, `csltl`, `csgeb`, `csgeh`, `csgew`, - `csgel`, `csgtb`, `csgth`, `csgtw`, `csgtl`, `culeb`, - `culeh`, `culew`, `culel`, `cultb`, `culth`, `cultw`, - `cultl`, `cugeb`, `cugeh`, `cugew`, `cugel`, `cugtb`, - `cugth`, `cugtw`, `cugtl` +<@ Memory >: + `storeb`, `storeh`, `storew`, `storel`, `stores`, `stored`, + `loadd`, `loads`, `loadl`, `loadw`, `loadsw`, `loaduw`, + `loadsh`, `loaduh`, `loadsb`, `loadub`, `alloc4`, `alloc8`, + `alloc16` - `ceqs`, `ceqd`, `cnes`, `cned`, `cles`, `cled`, `clts`, - `cltd`, `cges`, `cged`, `cgts`, `cgtd`, `cos`, `cod`, - `cuos`, `cuod` +<@ Comparisons >: + `ceqw`, `ceql`, `cnew`, `cnel`, `cslew`, `cslel`, `csltw`, + `csltl`, `csgew`, `csgel`, `csgtw`, `csgtl`, `culew`, + `culel`, `cultw`, `cultl`, `cugew`, `cugel`, `cugtw`, + `cugtl`, `ceqs`, `ceqd`, `cnes`, `cned`, `cles`, `cled`, + `clts`, `cltd`, `cges`, `cged`, `cgts`, `cgtd`, `cos`, + `cod`, `cuos`, `cuod` - * <@ Conversions > +<@ Conversions >: + `extsw`, `extsh`, `extsb`, `exts`, `extuw`, `extuh`, + `extub`, `truncd`, `stosi`, `dtosi`, `swtof`, `sltof` - `extsw`, `extsh`, `extsb`, `exts` - `extuw`, `extuh`, `extub`, `truncd` - `stosi`, `dtosi`, `swtof`, `sltof` +<@ Cast >: + `cast` - * <@ Cast > +<@ Call >: + `call` - `cast` +<@ Phi >: + `phi` +<@ Jumps >: + `jmp`, `jnz`, `ret` |