diff options
| author | Rose Hogenson <rhogenson@posteo.net> | 2023-02-12 15:37:25 -0800 |
|---|---|---|
| committer | Rose Hogenson <rhogenson@posteo.net> | 2023-02-12 15:37:25 -0800 |
| commit | d940187fd8720e0ab3c00e5a6a7ae8f181c7752d (patch) | |
| tree | 69df829ae1e7fb9454008920b49db08489d939a6 /linker.sml | |
| parent | 5989629a7951e544ad4656672025a99ecd08c7c9 (diff) | |
| download | sml-d940187fd8720e0ab3c00e5a6a7ae8f181c7752d.tar.zst | |
Add lambda functions.
Diffstat (limited to 'linker.sml')
| -rw-r--r-- | linker.sml | 10 |
1 files changed, 5 insertions, 5 deletions
@@ -31,14 +31,14 @@ struct end fun writeVar w v = - if v > 7 + if v > CodeGen.tempReg then raise Fail ("var out of range: " ^ Int.toString v) else lowByte w (Word.fromInt v) fun writeOffset w i = - if ~128 > i orelse i > 127 + if 0 > i orelse i > 127 then raise Fail ("offset out of range: " ^ Int.toString i) - else lowByte w + else lowByte w (Word.fromInt i) structure IntMap = Map(type k = int val cmp = Int.compare); @@ -58,13 +58,13 @@ struct makeOpcode w 2 false false | Syntax.OPoke (off, p, v) => (makeOpcode w 3 (isConst v) false ; - writeInt w off ; + writeOffset w off ; writeVar w p ; writeValue w v) | Syntax.OPeek (r, off, v) => (makeOpcode w 4 (isConst v) false ; writeVar w r ; - writeInt w off ; + writeOffset w off ; writeValue w v) | Syntax.OShuf (r, v) => (makeOpcode w 5 (isConst v) false ; |
