Commit Graph

65328 Commits

Author SHA1 Message Date
Jonas Maebe
8c67a4370b rautils: don't interpret ".L3" as potentially meaning "unitx.identifier"
Fixes compilation of webtbs/tw10641.pp with a compiler compiled with
range checking
2022-05-29 13:33:27 +02:00
florian
390084d59e * tests fixed 2022-05-29 10:37:24 +02:00
Marcus Sackrow
638de87a5a AThreads: prevent deadlock for event set before waited 2022-05-28 22:46:50 +02:00
florian
4556cb35d1 + completed Risc-V 64 pseudo instructions
* typo fixed
2022-05-28 21:22:11 +02:00
florian
6a00f9f403 * unified Risc-V 32 and 64 cpubase.pas 2022-05-28 21:15:53 +02:00
florian
09587d0c1b * standard Risc-V pseudo instructions for Risc-V 32 completed 2022-05-28 20:47:58 +02:00
florian
b29b81ae7b * pseudo instructions for flag handling 2022-05-28 20:25:28 +02:00
florian
1c7626715d * the stack pointer on Risc-V points always at the last used position, resolves #39739 2022-05-28 20:10:49 +02:00
Nikolay Nikolov
34ebeb15ed * pass the option to create shared, imported memory to the linker, in case the module is compiled with -CTwasmthreads
Note that this breaks running programs compiled with -CTwasmthreads with "wasmtime run --wasm-features threads", but
  there's not much we can do about that, since shared memory is required for threading, and wasmtime still doesn't
  support it.
2022-05-28 20:06:34 +03:00
Nikolay Nikolov
d378240134 + added the WebAssembly saturating truncation instructions to the internal assembler 2022-05-28 17:41:28 +03:00
Nikolay Nikolov
0ba7ef98b3 + support the memory.init and the data.drop instructions in the internal asm writer for WebAssembly 2022-05-28 16:00:43 +03:00
Jonas Maebe
83604b709c ngtcon: fix def of emitted vmt in procedure of object typed constants
Fixes compilation of tests/test/tprocvar17 with the LLVM backend, and probably
some other tests as well
2022-05-28 11:21:39 +02:00
Nikolay Nikolov
7cd082ba5f + produce a target_features section when compiling with -CTwasmthreads 2022-05-28 04:04:02 +03:00
Nikolay Nikolov
1dd80d596d + added a 'producers' custom section to WebAssembly object modules, containing the FPC version 2022-05-28 03:33:04 +03:00
Nikolay Nikolov
1ce1a0fe1f * added non-atomic implementations of the atomic operations in the WebAssembly unit, used when the RTL is compiled without -CTwasmthreads 2022-05-28 02:17:20 +03:00
Nikolay Nikolov
bf41245549 * fixed compilation of ppudump 2022-05-28 01:26:17 +03:00
Nikolay Nikolov
1fce5121f3 + added the 'wasmthreads' target switch (enabled via -CTwasmthreads) 2022-05-28 01:18:55 +03:00
Nikolay Nikolov
ee89b7c9ec * fixed warning 2022-05-28 00:47:23 +03:00
florian
ca29df1aa9 * Risc-V: return with mret from interrupt handlers, resolves #39737 2022-05-27 23:33:20 +02:00
florian
b810afa193 * test also cmem unit intensively 2022-05-27 23:33:20 +02:00
Nikolay Nikolov
3a095f5ed5 + support all the new types in encode_wasm_basic_type 2022-05-28 00:30:43 +03:00
Nikolay Nikolov
907e8402ab + added the WebAssembly reference and vector types to TWasmBasicType 2022-05-28 00:16:51 +03:00
Nikolay Nikolov
2888710594 + added the WebAssembly table instructions 2022-05-28 00:02:27 +03:00
Nikolay Nikolov
534383f686 + added the WebAssembly reference instructions ref.null, ref.is_null and ref.func 2022-05-27 23:58:27 +03:00
Nikolay Nikolov
e2eadc51a3 + added the memory.init and data.drop instructions 2022-05-27 23:38:49 +03:00
Nikolay Nikolov
dbba2d2746 + implemented popcnt via the popcnt instruction in WebAssembly 2022-05-27 23:23:27 +03:00
Nikolay Nikolov
c9ed14f87b + enable the 64-bit SAR instruction on the WebAssembly target 2022-05-27 22:56:05 +03:00
Nikolay Nikolov
b6aaa06f83 + enable the ROL/ROR instructions for WebAssembly 2022-05-27 22:46:32 +03:00
Michaël Van Canneyt
4765d885df * Export wasiAlloc, wasiFree 2022-05-27 19:16:52 +02:00
Pierre Muller
bb39ec1610 Avoid invalid typecast to tabstractvarsym 2022-05-27 12:32:53 +00:00
mattias
653303274f fcl-passrc: resolver: fixed error when accessing element of forward class 2022-05-27 11:45:24 +02:00
Sven/Sarah Barth
0c9b622a74 * fix compilation with DEBUG_NODE_XML defined 2022-05-27 07:36:50 +02:00
Sven/Sarah Barth
f73fc7d566 * fix #39736: ensure that the capturer object and any converted function reference interface are considered used
+ added test
2022-05-27 07:24:46 +02:00
mattias
02211971a3 fcl-passrc: added enums msFunctionReferences,msAnonymousFunctions 2022-05-27 00:30:06 +02:00
Pierre Muller
2c9776ac6b Remove %OS by %TARGET, as spotted by Gareth 2022-05-26 21:38:31 +00:00
Pierre Muller
e148afd506 Fix cycling with -CR option 2022-05-26 22:43:41 +02:00
florian
45bf47ee05 * compilation with -O3 fixed 2022-05-26 22:34:34 +02:00
Sven/Sarah Barth
39b7b07ebb + add tests for function references, anonymous functions and C-blocks 2022-05-26 21:44:25 +02:00
Sven/Sarah Barth
7974f39522 * implement assignment of procedure and method variables and routines (global, instance and nested) to function references 2022-05-26 21:44:24 +02:00
Sven/Sarah Barth
9f3dcdb211 + add method to find a procinfo for a nested function by the corresponding procdef 2022-05-26 21:44:24 +02:00
Sven/Sarah Barth
c6aba5cd8d * make tprocinfo.addnestedproc public so that it can be used to add generated functions 2022-05-26 21:44:24 +02:00
Sven/Sarah Barth
702f79ec8c + add method tprocsym.Find_procdef_by_funcrefdef to find a procdef that's compatible with the specified function reference 2022-05-26 21:44:24 +02:00
Sven/Sarah Barth
943da88dda * rework tprocsym.Find_procdef_byprocvardef so that its implementation can be used in a more generic manner 2022-05-26 21:44:24 +02:00
Sven/Sarah Barth
f2305d1cee * if an invokable that isn't a function reference is followed by a point in a mode that doesn't use TP/Delphi style calling without parameters then don't call it like is done with normal procvars 2022-05-26 21:44:23 +02:00
Sven/Sarah Barth
76df7144ba * implement necessary conversion functionality for anonymous procdefs to function reference interfaces including capturing of variables 2022-05-26 21:44:23 +02:00
Sven/Sarah Barth
f8b1801a8f + implement necessary functionality in tcgprocinfo to initialize and populate the capturer
Based on code by Blaise.ru
2022-05-26 21:44:23 +02:00
Sven/Sarah Barth
9b9ae2db1a * two function references are equal to each other as long as their signatures match 2022-05-26 21:44:23 +02:00
Sven/Sarah Barth
6fe9a15094 + add function to check whether a procdef can be converted to a function reference 2022-05-26 21:44:22 +02:00
Sven/Sarah Barth
749faa42ee * do not insert the $result symbol again when the VMT for the capturer is built 2022-05-26 21:44:22 +02:00
Sven/Sarah Barth
9aac622dc9 + add necessary core functions and functionality to implement capturing of variables
Based on code by Blaise.ru
2022-05-26 21:44:22 +02:00