summaryrefslogtreecommitdiffstats
path: root/linker.sml
diff options
context:
space:
mode:
Diffstat (limited to 'linker.sml')
-rw-r--r--linker.sml17
1 files changed, 17 insertions, 0 deletions
diff --git a/linker.sml b/linker.sml
index 927bf48..1515079 100644
--- a/linker.sml
+++ b/linker.sml
@@ -102,6 +102,23 @@ struct
; 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
+ )
+ | Syntax.OEq (r, v1, 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)
+ )
| Syntax.OLabel _ => ()
end