summaryrefslogtreecommitdiffstats
path: root/linker.sml
diff options
context:
space:
mode:
Diffstat (limited to 'linker.sml')
-rw-r--r--linker.sml100
1 files changed, 44 insertions, 56 deletions
diff --git a/linker.sml b/linker.sml
index 1515079..d576c24 100644
--- a/linker.sml
+++ b/linker.sml
@@ -40,7 +40,7 @@ struct
then raise Fail ("negative offset: " ^ Int.toString i)
else writeInt w i
- structure IntMap = Map(type k = int val cmp = Int.compare);
+ structure IntMap = Map(type k = int val cmp = Int.compare)
fun encode (m : int IntMap.map) (w : BinIO.outstream) (oper : Syntax.opcode) : unit =
let
@@ -51,74 +51,62 @@ struct
in
case oper of
Syntax.OAlloc (r, v) =>
- ( makeOpcode w 1 (isConst v) false
- ; writeVar w r
- ; writeValue w v
- )
+ (makeOpcode w 1 (isConst v) false ;
+ writeVar w r ;
+ writeValue w v)
| Syntax.OCall =>
makeOpcode w 2 false false
| Syntax.OPoke (off, p, v) =>
- ( makeOpcode w 3 (isConst v) false
- ; writeOffset w off
- ; writeVar w p
- ; writeValue w v
- )
+ (makeOpcode w 3 (isConst v) false ;
+ writeOffset w off ;
+ writeVar w p ;
+ writeValue w v)
| Syntax.OPeek (r, off, v) =>
- ( makeOpcode w 4 (isConst v) false
- ; writeVar w r
- ; writeOffset w off
- ; writeValue w v
- )
+ (makeOpcode w 4 (isConst v) false ;
+ writeVar w r ;
+ writeOffset w off ;
+ writeValue w v)
| Syntax.OShuf (r, v) =>
- ( makeOpcode w 5 (isConst v) false
- ; writeVar w r
- ; writeValue w v
- )
+ (makeOpcode w 5 (isConst v) false ;
+ writeVar w r ;
+ writeValue w v)
| Syntax.OExit v =>
- ( makeOpcode w 6 (isConst v) false
- ; writeValue w v
- )
+ (makeOpcode w 6 (isConst v) false ;
+ writeValue w v)
| Syntax.OAdd (r, v1, v2) =>
- ( makeOpcode w 7 (isConst v1) (isConst v2)
- ; writeVar w r
- ; writeValue w v1
- ; writeValue w v2
- )
+ (makeOpcode w 7 (isConst v1) (isConst v2) ;
+ writeVar w r ;
+ writeValue w v1 ;
+ writeValue w v2)
| Syntax.OSub (r, v1, v2) =>
- ( makeOpcode w 8 (isConst v1) (isConst v2)
- ; writeVar w r
- ; writeValue w v1
- ; writeValue w v2
- )
+ (makeOpcode w 8 (isConst v1) (isConst v2) ;
+ writeVar w r ;
+ writeValue w v1 ;
+ writeValue w v2)
| Syntax.OMul (r, v1, v2) =>
- ( makeOpcode w 9 (isConst v1) (isConst v2)
- ; writeVar w r
- ; writeValue w v1
- ; writeValue w v2
- )
+ (makeOpcode w 9 (isConst v1) (isConst v2) ;
+ writeVar w r ;
+ writeValue w v1 ;
+ writeValue w v2)
| Syntax.ODiv (r, v1, v2) =>
- ( makeOpcode w 10 (isConst v1) (isConst v2)
- ; writeVar w r
- ; writeValue w v1
- ; writeValue w v2
- )
+ (makeOpcode w 10 (isConst v1) (isConst v2) ;
+ writeVar w r ;
+ writeValue w v1 ;
+ writeValue w v2)
| Syntax.OLess (r, v1, v2) =>
- ( makeOpcode w 11 (isConst v1) (isConst v2)
- ; writeVar w r
- ; writeValue w v1
- ; writeValue w v2
- )
+ (makeOpcode w 11 (isConst v1) (isConst v2) ;
+ writeVar w r ;
+ writeValue w v1 ;
+ writeValue w v2)
| Syntax.OEq (r, v1, v2) =>
- ( makeOpcode w 12 (isConst v1) (isConst v2)
- ; writeVar w r
- ; writeValue w v1
- ; writeValue w v2
- )
+ (makeOpcode w 12 (isConst v1) (isConst v2) ;
+ writeVar w r ;
+ writeValue w v1 ;
+ writeValue w v2)
| Syntax.OIf (condition, label) =>
- ( makeOpcode w 13 (isConst condition) false
- ; writeValue w condition
- ; writeValue w (Syntax.VLabel label)
- )
+ (makeOpcode w 13 (isConst condition) false ;
+ writeValue w condition ;
+ writeValue w (Syntax.VLabel label))
| Syntax.OLabel _ => ()
end