summary refs log tree commit diff
path: root/doc
diff options
context:
space:
mode:
authorQuentin Rameau <quinq@fifth.space>2017-01-20 17:15:46 +0100
committerQuentin Carbonneaux <quentin.carbonneaux@yale.edu>2017-02-03 09:26:43 -0500
commit835b2b4910c19ee2a9411da55080be6b1e30a722 (patch)
treeb9c82103d1eeb525b73feb1671223fcdcd5daf02 /doc
parentd4be94bae0aa7af8a20372d41a4ae95a881b783c (diff)
downloadroux-835b2b4910c19ee2a9411da55080be6b1e30a722.tar.gz
create an index for the instructions in the IL doc
Diffstat (limited to 'doc')
-rw-r--r--doc/il.txt72
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`