Nikolay Nikolov
4143912b72
* use a TFPList, instead of a dynamic array in twasmnodeutils.InsertObjectInfo.
...
No functional changes.
2023-04-01 17:17:42 +03:00
Nikolay Nikolov
e82c98bfce
* wasm32: generate module info by traversing through current_module and its
...
used_units list recursively. This should fix #40229
2023-04-01 04:25:15 +03:00
Nikolay Nikolov
c6af4df9b9
+ declare user-defined wasm globals in the llvm-mc assembly output
2022-07-25 05:35:00 +03:00
Nikolay Nikolov
90b8b9d121
* don't reserve bss data for wasm global vars
2022-07-25 01:17:28 +03:00
Nikolay Nikolov
7475d22154
+ declare the three magic global variables (__tls_size, __tls_align, __tls_base), created by the linker, when WebAssembly multithreading is enabled
2022-07-14 03:57:06 +03:00
Nikolay Nikolov
2c0f10d988
* when adding WebAssembly object info, traverse through current_module.used_units,
...
as well as the usedunits global. This resolves #39543
2022-02-12 08:32:48 +02:00
Nikolay Nikolov
6599f1d898
- don't generate any WebAssembly native exception handling instructions, nor
...
relocations, when compiling in branchful exceptions mode. This produces a
currently not working, but accepted by wasmtime binary (otherwise, it
complains it doesn't support exceptions and refuses to try to run it).
2021-10-05 01:01:24 +03:00
Nikolay Nikolov
5124ab2521
* cloned the WebAssembly native exceptions code generation and rtl support into
...
the branchful exceptions (which will be modified later, but we're using this
as their starting point, because we can get a snapshot built, without compiler
internal errors)
2021-10-05 00:37:20 +03:00
Nikolay Nikolov
99dbbcadcd
+ generate functype directives for all functions in all used units, regardless
...
of whether they have paraloc info created. This fixes linking of WebAssembly
programs that declare their own classes, because that causes the compiler to
generate a VMT, containing references to virtual methods, and these don't
necessarily have paraloc info (if they're not called from within the program)
2021-09-29 00:04:23 +03:00
Nikolay Nikolov
cdf1ceca76
* emit a weak symbol for the exception tag, since that's what the LLVM linker
...
wants to treat them as shared between .o files
2021-09-28 02:52:40 +03:00
Nikolay Nikolov
b463f2a141
+ added support for exception tags and for the 'throw' and 'catch' instructions
...
in the wasm internal assembler and object writer
2021-09-27 21:44:09 +03:00
Nikolay Nikolov
e0ad427b6c
+ introduced the FPC_EXCEPTION_TAG_SYM string constant
2021-09-27 17:38:28 +03:00
Nikolay Nikolov
b46c010f82
+ also support immutable wasm globals in the wasm assembler writer (both internal and external)
2021-09-27 05:40:26 +03:00
Nikolay Nikolov
8226233aa3
* introduced the tai_globaltype asm directive, use that to declare the stack
...
pointer global symbol
2021-09-27 02:39:43 +03:00
Nikolay Nikolov
a1c8e92904
* emit a tai_tagtype for __FPC_exception instead of hardcoding the asm output
...
directly when wasm native exceptions are enabled
2021-09-27 00:33:57 +03:00
Nikolay Nikolov
db843287a2
+ generate funcdef for external procs, that don't have an import dll
2021-09-26 20:37:34 +03:00
Nikolay Nikolov
54481d7218
* moved the imports/funcdef writing from the llvm-mc assembler writer to
...
twasmnodeutils.InsertObjectInfo. This way, the info it produces will be
shared with the internal wasm object writer as well.
2021-09-25 00:16:53 +03:00
Nikolay Nikolov
459bb0fa18
* override twasmnodeutils.InsertObjectInfo
2021-09-24 21:52:57 +03:00
Nikolay Nikolov
860e4487c3
+ added WebAssembly node utils
2021-09-24 16:44:33 +03:00