Commit Graph

26845 Commits

Author SHA1 Message Date
Nikolay Nikolov
15c95e0ac7 + initial implementation of WebAssembly promising exports 2023-06-11 16:43:45 +03:00
Nikolay Nikolov
80c8575636 * fixed creating suspended wrappers for functions without parameters 2023-06-11 15:24:55 +03:00
Nikolay Nikolov
1a4b97a62a * fixed compilation with -Sew 2023-06-11 15:09:49 +03:00
Nikolay Nikolov
b247302871 + initial attempt (not fully working, yet) at implementing WebAssembly suspending externals 2023-06-11 14:07:35 +03:00
Nikolay Nikolov
b891cef5d2 * ppudump compilation fixed 2023-06-11 12:00:54 +03:00
Nikolay Nikolov
95d7bdc3da + added parser support for the 'suspending' directive 2023-06-11 11:57:33 +03:00
Nikolay Nikolov
9b4366e4f6 + support externref and funcref WebAssembly globals in the internal object writer 2023-06-11 10:41:56 +03:00
Nikolay Nikolov
8eea58f649 + support WebAssembly reference types as WebAssembly globals 2023-06-11 10:31:12 +03:00
Nikolay Nikolov
d38dbcac8f * use tcallparanode.parasym to find the tparavarsym in twasmcallnode.pass_typecheck 2023-06-11 09:29:07 +03:00
Nikolay Nikolov
e6cbdba0bd * fixed crash in twasmcallnode.pass_typecheck when there is no procdefinition (for generic methods) 2023-06-11 09:23:56 +03:00
Nikolay Nikolov
c117c0abf5 * fixed another crash, introduced in 6ff566350c 2023-06-11 09:06:59 +03:00
Nikolay Nikolov
3d55ac9d09 * fixed bug, introduced in 6ff566350c, due to
missing parenthesis
2023-06-11 09:01:07 +03:00
Nikolay Nikolov
6ff566350c * disallow passing WebAssembly reference types as untyped var/constref/const parameters 2023-06-11 08:56:27 +03:00
Nikolay Nikolov
f670ebbb28 * disallow WebAssembly reference types to be declared as var, constref or out parameters 2023-06-11 08:17:06 +03:00
Nikolay Nikolov
8cd6606970 + support nil comparison of WebAssembly reference types (externref and funcref) 2023-06-11 07:17:04 +03:00
Nikolay Nikolov
9daabb2123 + support using nil constants for setting values of WebAssembly reference types (funcref and externref) 2023-06-11 06:23:02 +03:00
Nikolay Nikolov
ca03841724 - removed redundant semicolon 2023-06-11 06:07:13 +03:00
Nikolay Nikolov
a47a1c093a * disallow conversion between regular pointers and WasmExternRef 2023-06-11 05:28:39 +03:00
Nikolay Nikolov
8b138aa059 + also check for assigned(left) after calling inherited in twasmaddrnode.pass_typecheck, to avoid another crash 2023-06-11 04:11:02 +03:00
Nikolay Nikolov
84b60d3f00 * check for codegenerror in twasmaddrnode.pass_typecheck and exit early, to avoid crashes 2023-06-11 04:05:17 +03:00
Nikolay Nikolov
8743f72f11 + disallow taking the address of WebAssembly externref type 2023-06-11 04:01:58 +03:00
Nikolay Nikolov
fa9873c6eb Merge branch 'main' into wasm_reference_types 2023-06-11 03:08:40 +03:00
Nikolay Nikolov
a0b78ad1f7 + WebAssembly internal assembler support for the ref.is_null instruction 2023-06-07 06:38:25 +03:00
Nikolay Nikolov
2039509cfb + WebAssembly internal asm support for the ref.null instruction 2023-06-07 06:13:17 +03:00
Nikolay Nikolov
11712658b0 + implemented WebAssembly code generator support for funcref and externref data
types, using new register types R_FUNCREFREGISTER and R_EXTERNREFREGISTER
2023-06-07 05:25:57 +03:00
Nikolay Nikolov
e555eddeda * fixed the textual representation of the ref.null instruction for llvm-mc 2023-06-07 03:36:28 +03:00
Nikolay Nikolov
48556ab039 + enable the reference types extension in llvm-mc via a command line option 2023-06-07 03:30:40 +03:00
Pierre Muller
3770b55ce1 Disable substitution by environment variables in message comment related functions 2023-06-07 01:02:28 +02:00
Pierre Muller
627fd6bce1 Add new substitute_env_variables parameter for DefaultReplacements function (with default true value) 2023-06-07 01:02:28 +02:00
Nikolay Nikolov
3b3a0a660c * the a_ref_null instruction split into two subinstructions - a_ref_null_externref and a_ref_null_funcref 2023-06-07 01:42:46 +03:00
Nikolay Nikolov
1f76366125 + introduced the is_wasm_reference_type(tdef) helper 2023-06-05 05:00:31 +03:00
Nikolay Nikolov
5cc4096f41 * formatting 2023-06-05 04:56:03 +03:00
Nikolay Nikolov
c33f47a707 + introduced is_wasm_externref(tdef) helper 2023-06-05 04:55:33 +03:00
Nikolay Nikolov
022d2804a9 + introduced is_wasm_funcref(tdef) helper 2023-06-05 04:51:03 +03:00
Nikolay Nikolov
dd09bf64b3 + handle externref parameters in create_functype_common 2023-06-05 04:37:54 +03:00
Nikolay Nikolov
a778fb2eaa + support externref in defToWasmBasic 2023-06-05 04:31:53 +03:00
Nikolay Nikolov
3e21d24098 + magically insert a void externref type in the System unit, called WasmExternRef 2023-06-05 04:26:57 +03:00
Nikolay Nikolov
c925c1aaa6 + introduced flag is_wasm_externref to tcpupointerdef for wasm32. This is to be
used for declaring WebAssembly externref reference types.
2023-06-05 04:09:56 +03:00
Nikolay Nikolov
ad69c6e1b5 + also support funcref parameters in create_functype_common 2023-06-05 02:53:44 +03:00
Nikolay Nikolov
bebe53ef9f * added support and simplified the handling of results in create_functype_common for reference types 2023-06-05 02:46:34 +03:00
Nikolay Nikolov
60cde554fd + handle wasm funcrefs in tgcpu.defToWasmBasic 2023-06-05 02:44:34 +03:00
Nikolay Nikolov
33fb887479 * ppudump compilation fixed 2023-06-05 01:45:30 +03:00
Nikolay Nikolov
93438ef1a5 + added the wasmfuncref directive for procvars. Not actually implemented, just
parsed.
2023-06-05 01:29:22 +03:00
florian
52147baa04 * correct tripletcpustr, resolves #40301 2023-05-31 20:26:50 +02:00
Michael VAN CANNEYT
a3f441b590 * loongarch64 architecture reinstated 2023-05-31 09:40:43 +02:00
Michael VAN CANNEYT
babcb631f8 * Delegate darwin ifdef out of program flow, towards const, for clarity 2023-05-31 09:34:24 +02:00
Michael VAN CANNEYT
c0893e5c16 * get rid os some warnings 2023-05-31 09:34:24 +02:00
Michael VAN CANNEYT
c6effbd676 * Refactor: add utility routine to handle command-line changes 2023-05-31 09:34:24 +02:00
Michael VAN CANNEYT
a52b3522dc * Refactor: Rename some variables for clarity 2023-05-31 09:34:24 +02:00
Michael VAN CANNEYT
647f211aa5 Refactor check for -PB and -PP for clarity of flow 2023-05-31 09:34:23 +02:00