commit 835b2b4910c19ee2a9411da55080be6b1e30a722
parent d4be94bae0aa7af8a20372d41a4ae95a881b783c
Author: Quentin Rameau <quinq@fifth.space>
Date: Fri, 20 Jan 2017 17:15:46 +0100
create an index for the instructions in the IL doc
Diffstat:
M | doc/il.txt | | | 72 | ++++++++++++++++++++++++++++++------------------------------------------ |
1 file changed, 30 insertions(+), 42 deletions(-)
diff --git 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`