Commit Graph

93 Commits

Author SHA1 Message Date
Ilya Rezvov c044f3f556 add return type for select 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 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 6e9c4d969a update initialization sequence for elems 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
Mateusz Galazyn 3be70781b8 Expose mutable memory access 2022-10-22 09:37:50 +02:00
Ilya Rezvov 0bf74253cb fix serialization/deserialization and complete saturated data conversions 2021-04-12 23:01:39 -07:00
Ilya Rezvov 93a79badbe fix multivalue return typecheck and some execution rules 2021-04-06 23:20:03 -07:00
Ilya Rezvov b816e04b6d type signature parsing for loop and if blocks 2021-04-04 17:30:38 -07:00
Ilya Rezvov b1874dfcea start multivalue proposal implementation for block instruction 2021-04-04 17:23:43 -07:00
Ilya Rezvov 1e7afd94fc change instansiating to be stateful 2021-04-04 17:23:43 -07:00
Ilya Rezvov 01e0ab8d44 added line position for failed asserts and implemented mutable globals import/export proposal 2021-04-04 17:23:43 -07:00
Ilya Rezvov d61926e18a implement sign-extension operators proposal 2021-04-04 17:23:43 -07:00
Ilya Rezvov 4fb4da0f2f more grammar fixes 2021-04-04 17:23:43 -07:00
Ilya Rezvov 88a31548b8 replace hardcoded tests with submodule to the official testsuit 2021-04-04 17:23:43 -07:00
Ilya Rezvov bcb83798cb implemented fast-path for aligned addresses on memory read/write 2020-02-19 16:07:18 -08:00
Ilya Rezvov 915b705ed2 using primitive's ByteArray for memory instance's backend storage in the interpreter instead of IOVector 2020-02-19 14:36:03 -08:00
Ilya Rezvov f8d008bb04 small clean up 2020-01-14 17:00:41 -08:00
Ilya Rezvov d7e1b803f5 fix build and tests for ghc >8.6 2020-01-13 21:56:06 -08:00
Ilya Rezvov 709c8d994c bump version to 1.0 tag 2018-06-20 16:33:52 -07:00
Ilya Rezvov 1330eb41f6 start builder api 2018-05-12 22:37:50 -07:00
Ilya Rezvov 0a7b417605 reduce deep of code 2018-04-25 13:47:11 -07:00
Ilya Rezvov abc546723d reduce code duplication 2018-04-25 11:16:41 -07:00
Ilya Rezvov fc2eb97647 use ExceptT transformer to clarify interpreter code 2018-04-25 10:49:58 -07:00
Ilya Rezvov 70f207d02d extract storing code to common function 2018-04-24 21:07:12 -07:00
Ilya Rezvov a619e1b742 extract load instructions to generic function 2018-04-24 19:08:31 -07:00
Ilya Rezvov 5356e0b435 pass all tests 2018-04-21 11:24:05 -07:00
Ilya Rezvov d0b5535bb2 pass all assert_trap tests 2018-04-21 10:58:34 -07:00
Ilya Rezvov c073d85d74 calculate offset without uint32 overflow 2018-04-21 10:46:29 -07:00
Ilya Rezvov 56f9aea99d check if target and local type of call_indirect are the same 2018-04-21 10:39:23 -07:00
Ilya Rezvov 7726eb7505 protect memory access with traps 2018-04-21 10:11:37 -07:00
Ilya Rezvov e99c7c427b check sign-sensitive division arguments for trap conditions 2018-04-21 09:40:18 -07:00
Ilya Rezvov 49719b64cd implement assert_trap assertion 2018-04-21 08:59:31 -07:00
Ilya Rezvov 3c882a97d1 check validity of all data and elem segments before updating store on initialization 2018-04-20 19:24:39 -07:00
Ilya Rezvov 108eb0c0ee check imported values types 2018-04-20 19:11:09 -07:00
Ilya Rezvov a8459fb541 do not grow tables on initialization. again 2018-04-19 16:25:27 -07:00
Ilya Rezvov 80f61158d7 do not grow memory for data segments 2018-04-19 16:17:28 -07:00
Ilya Rezvov a7962d69c2 implemented assert_unlinkable assertion 2018-04-19 13:32:07 -07:00
Ilya Rezvov b2a0d2c86e pass return_nan tests 2018-04-12 14:17:01 -07:00
Ilya Rezvov 2955456e26 pass all assert_return tests 2018-04-11 21:15:56 -07:00
Ilya Rezvov 7a4735bbfc fix some conversions 2018-04-11 15:29:51 -07:00
Ilya Rezvov d64854aac1 clean up labels on exit from blocks and return correct type for i64 unary operations 2018-04-11 15:24:27 -07:00