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