100 Commits
Author SHA1 Message Date
Ilya Rezvov f300874996 fail on too big align value deserialization 2025-01-17 20:19:23 -07:00
Ilya Rezvov 37833b67c1 fix comments lexing 2025-01-15 17:31:51 -07:00
Ilya Rezvov 64e2e14562 validate table type for call_indirect 2025-01-15 17:26:16 -07:00
Ilya Rezvov 78a2f33176 update spec global imports 2025-01-15 17:18:28 -07:00
Ilya Rezvov 720c234df8 fix table import initialization 2025-01-15 17:01:21 -07:00
Ilya Rezvov 001f4c92a9 update tests 2025-01-14 11:52:06 -07:00
Ilya Rezvov b9bb378d21 implement all simd instructiions 2025-01-14 11:32:25 -07:00
Ilya Rezvov c96456414c implement simd integer narrow instruction 2025-01-14 10:42:18 -07:00
Ilya Rezvov 8742966ece implement more simd conversions 2025-01-13 20:32:47 -07:00
Ilya Rezvov 727fc8694b parse and implement simd_i32x4_trunc_sat_f64x2 instruction 2025-01-13 10:22:06 -07:00
Ilya Rezvov 662b57326c parse and implement I32x4TruncSatF32x4 instruction 2025-01-12 21:25:53 -07:00
Ilya Rezvov 6637aa7275 implement simd int extensions 2025-01-12 20:58:28 -07:00
Ilya Rezvov 10d1db7b96 parse most of conversion simd instructions 2023-09-25 21:26:39 -06:00
Ilya Rezvov 3d77f80484 implement pseudo min/max simd operations 2023-09-24 19:52:09 -06:00
Ilya Rezvov 902819aee7 implement extadd simd operation 2023-09-24 19:32:10 -06:00
Ilya Rezvov ac2a326f18 implement extmul operation 2023-09-24 19:20:21 -06:00
Ilya Rezvov 22198d8d76 implement rest of unary float operations for simd 2023-09-10 17:28:37 -06:00
Ilya Rezvov 368ab45de5 implement min and max ops 2023-09-10 17:10:35 -06:00
Ilya Rezvov 6298be49b8 implement float cmp operations for simd 2023-09-10 16:30:12 -06:00
Ilya Rezvov a4a96af6aa implement unary float operations for simd 2023-09-10 14:27:28 -06:00
Ilya Rezvov 0d8159e553 reimplement script value matching logic and implement part of simd float arithmetic 2023-09-10 10:30:40 -06:00
Ilya Rezvov 6d6d21265a implement lanewise integer cmp operations 2023-09-09 10:22:18 -06:00
Ilya Rezvov d98d1b718f implement v128.imul 2023-09-08 22:39:12 -06:00
Ilya Rezvov 369cad8a25 saturated ops, neg and abs 2023-09-08 22:30:37 -06:00
Ilya Rezvov 707288debd implement bit shift operations 2023-09-08 21:44:02 -06:00
Ilya Rezvov d25e96d91c implement ishape.bitmask 2023-09-08 19:11:58 -06:00
Ilya Rezvov 6bb5ea841c implement v128.load[8|16|32|64}_lane 2023-09-08 18:34:55 -06:00
Ilya Rezvov 3944bf9113 implement bitwise operations 2023-09-08 18:08:35 -06:00
Ilya Rezvov f16ccb85a9 implement v128.load with signed and unsigined extend 2023-09-08 11:32:13 -06:00
Ilya Rezvov dad521025e implement v128.load[32|64]_zero 2023-09-08 10:40:27 -06:00
Ilya Rezvov d406776095 implement v128.load[8|16|32|64]_splat 2023-09-08 10:29:30 -06:00
Ilya Rezvov d9803479a0 implement v128.store[8|16|32|64]_lane 2023-09-06 21:35:16 -06:00
Ilya Rezvov 5c6e9b59bc implement extract_lane and replace_lane 2023-09-06 21:09:23 -06:00
Ilya Rezvov 4302e4b32f parse shuffle and replace_lane 2023-09-05 22:38:47 -06:00
Ilya Rezvov b4acb0e1e8 implement i8x16.swizzle and extract_lane 2023-09-04 21:21:12 -06:00
Ilya Rezvov daa52f0c40 implement v128_splat instruction 2023-09-04 19:18:09 -06:00
Ilya Rezvov c6e0bfea89 implement basic load/store for v128 2023-09-04 18:35:59 -06:00
Ilya Rezvov d81143e5f8 implement binary for v128const 2023-09-04 18:02:00 -06:00
Ilya Rezvov 170d828713 Use ByteArray as V128 storage and basic const interpretation 2023-08-28 09:29:07 -06:00
Ilya Rezvov 6c2bbc8478 parse v128 literals 2023-08-27 21:24:23 -06:00
Ilya Rezvov 7810040226 all tests are green 2023-08-26 21:44:36 -06:00
Ilya Rezvov d112b28233 fix parsing of select instruction and evaluation of const expressions 2023-08-26 21:35:36 -06:00
Ilya Rezvov be13488f69 update tests and fix some 2023-08-23 22:58:19 -06:00
Ilya Rezvov 7fab53969a merge artifact 2023-08-21 21:23:07 -06:00
Ilya Rezvov a3de890895 Merge branch 'references-simd' of github.com:SPY/haskell-wasm into references-simd 2023-08-21 21:22:20 -06:00
Ilya Rezvov 9eadc50ee3 all tests are green 2023-08-21 21:15:53 -06:00
Ilya Rezvov 5b6b043049 more green test 2023-08-21 21:15:53 -06:00
Ilya Rezvov bb2a6cea7f fix reexports 2023-08-21 21:15:53 -06:00
Ilya Rezvov f23dc20d57 fix more tests 2023-08-21 21:15:44 -06:00
Ilya Rezvov 2b822a8d44 validate and interprete bulk memory instructions 2023-08-21 21:11:39 -06:00
Ilya Rezvov 46f95dd11d parse memory instructions 2023-08-21 21:11:39 -06:00
Ilya Rezvov 2d4ad42549 add syntax support for extended data segments 2023-08-21 21:11:39 -06:00
Ilya Rezvov c044f3f556 add return type for select 2023-08-21 21:11:39 -06:00
Ilya Rezvov d0403ad554 forbid special nan values for non-script contexts 2023-08-21 21:11:39 -06:00
Ilya Rezvov d321bf6a9c implement table.fill 2023-08-21 21:11:39 -06:00
Ilya Rezvov ec83b12ccd keep track of defined references and store global function address for table.set instructions 2023-08-21 21:11:39 -06:00
Ilya Rezvov 9f17885106 better bounds check for table.get and table.set 2023-08-21 21:11:39 -06:00
Ilya Rezvov ea50c54900 parse externref elems, but fail on validation 2023-08-21 21:11:39 -06:00
Ilya Rezvov 4e9cb99e69 change table storage format to allow growing and implement table.grow and table.size 2023-08-21 21:11:39 -06:00
Ilya Rezvov b2f001aea8 implement table.copy 2023-08-21 21:11:39 -06:00
Ilya Rezvov f445340568 add elem.drop and extend call_indirect to accept table index 2023-08-21 21:11:39 -06:00
Ilya Rezvov 2d15ddfa36 implement table.get and table.set and pass ref_is_null test suit 2023-08-21 21:11:39 -06:00
Ilya Rezvov 0b44ee13b8 pass tests in elem.wat test suit 2023-08-21 21:11:39 -06:00
Ilya Rezvov e9140ae70c drop flag for elems was added. initial table.init implementation 2023-08-21 21:11:39 -06:00
Ilya Rezvov cbeb4bb61d validate table.init and use mutable vector as a table storage 2023-08-21 21:11:39 -06:00
Ilya Rezvov 8c97e2c328 syntax support for table.init 2023-08-21 21:11:39 -06:00
Ilya Rezvov 6e9c4d969a update initialization sequence for elems 2023-08-21 21:11:39 -06:00
Ilya Rezvov 179b7ce180 fix validator for new elems 2023-08-21 21:11:39 -06:00
Ilya Rezvov fd72ee9d23 newtype for expressions to serialize in vectors 2023-08-21 21:11:39 -06:00
Ilya Rezvov b6c0ef4462 update text and binary parsers to new elem formats 2023-08-21 21:11:39 -06:00
Ilya Rezvov 51cf7e753b syntax support for ref.ops and pass ref_null.wast 2023-08-21 21:11:39 -06:00
Ilya Rezvov f2f5fcc56f all tests are green 2023-08-21 21:11:14 -06:00
Ilya Rezvov a5ffe38a1c more green test 2023-08-21 19:28:54 -06:00
Ilya Rezvov 724973b15e fix reexports 2023-08-21 08:23:58 -06:00
Ilya Rezvov a58bb32d98 Merge pull request #22 from chrbauer/chrbauer/update-stack-lts
Stack lts-16.5 -> 20.23 and URLs in Cabal
2023-08-20 21:02:54 -06:00
Ilya Rezvov 0e0b1abbba fix more tests 2023-08-20 21:00:46 -06:00
Ilya Rezvov efba9c2b50 Merge pull request #21 from RyanGlScott/bump-dependencies
Allow building with `mtl-2.3`, `transformers-0.6`, `vector-0.13`
2023-02-16 09:30:48 -07:00
Ilya Rezvov 57c4184c18 Merge pull request #20 from carbolymer/master
Expose mutable memory access
2023-01-09 10:22:22 -07:00
Ilya Rezvov 5256d5063f validate and interprete bulk memory instructions 2022-06-12 21:12:19 -06:00
Ilya Rezvov 2bf6e88072 parse memory instructions 2022-06-10 22:29:31 -06:00
Ilya Rezvov 32392dcc29 add syntax support for extended data segments 2022-06-09 20:21:57 -06:00
Ilya Rezvov c743e11ffd add return type for select 2022-06-08 21:12:00 -06:00
Ilya Rezvov 32357d68fe forbid special nan values for non-script contexts 2022-06-07 20:28:02 -06:00
Ilya Rezvov 83fea36c02 implement table.fill 2022-06-07 19:41:03 -06:00
Ilya Rezvov 43cbfe653f keep track of defined references and store global function address for table.set instructions 2022-06-06 20:34:59 -06:00
Ilya Rezvov 71d332e3dc better bounds check for table.get and table.set 2022-06-06 18:44:42 -06:00
Ilya Rezvov 4e9105717b parse externref elems, but fail on validation 2022-06-06 18:41:22 -06:00
Ilya Rezvov df15d3c4d1 change table storage format to allow growing and implement table.grow and table.size 2022-06-06 18:27:26 -06:00
Ilya Rezvov b1da37ac03 implement table.copy 2022-06-05 21:45:58 -06:00
Ilya Rezvov 82defff076 add elem.drop and extend call_indirect to accept table index 2022-06-04 21:58:34 -06:00
Ilya Rezvov 6eb3acde17 implement table.get and table.set and pass ref_is_null test suit 2022-06-04 16:32:20 -06:00
Ilya Rezvov e388e21370 pass tests in elem.wat test suit 2022-06-02 20:54:15 -06:00
Ilya Rezvov 95fdcc2f80 drop flag for elems was added. initial table.init implementation 2022-05-31 19:39:06 -06:00
Ilya Rezvov 5bcd863671 validate table.init and use mutable vector as a table storage 2022-05-30 21:43:44 -06:00
Ilya Rezvov 4753ebceb4 syntax support for table.init 2022-05-30 18:57:21 -06:00
Ilya Rezvov de40134caf update initialization sequence for elems 2022-02-15 21:43:45 -07:00
Ilya Rezvov 286ee40489 fix validator for new elems 2022-02-09 21:49:03 -07:00
Ilya Rezvov c08e81fa40 newtype for expressions to serialize in vectors 2022-02-01 21:22:09 -07:00
Ilya Rezvov 8af7b45681 update text and binary parsers to new elem formats 2022-02-01 21:18:12 -07:00
Ilya Rezvov 960acac955 syntax support for ref.ops and pass ref_null.wast 2022-01-30 16:23:02 -07:00