From 95318c86fc37882e99f181aa17e70fb8fda66a1c Mon Sep 17 00:00:00 2001 From: Ilya Rezvov Date: Fri, 25 May 2018 11:30:08 -0700 Subject: [PATCH] wrap instruction for builder --- src/Language/Wasm/Builder.hs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Language/Wasm/Builder.hs b/src/Language/Wasm/Builder.hs index 90156bb..0683a83 100644 --- a/src/Language/Wasm/Builder.hs +++ b/src/Language/Wasm/Builder.hs @@ -31,7 +31,7 @@ module Language.Wasm.Builder ( add, inc, sub, dec, mul, div_u, div_s, rem_u, rem_s, and, or, xor, shl, shr_u, shr_s, rotl, rotr, eq, ne, lt_s, lt_u, gt_s, gt_u, le_s, le_u, ge_s, ge_u, eqz, - extend_s, extend_u, + extend_s, extend_u, wrap, load, load8u, load8s, load16u, load16s, load32u, load32s, store, store8, store16, store32, nop, @@ -306,6 +306,12 @@ extend_s small = do appendExpr [I64ExtendUI32] return Proxy +wrap :: (Producer i, OutType i ~ Proxy I64) => i -> GenFun (Proxy I32) +wrap big = do + produce big + appendExpr [I32WrapI64] + return Proxy + load :: (ValueTypeable t, Producer addr, OutType addr ~ Proxy I32, Integral offset, Integral align) => Proxy t -> addr