Nikolay Nikolov
99943610cb
* WebAssembly: generate the final bashB opcode of a function via the
...
end_function instruction, instead of adding it magically in the object writer.
This makes the WebAssembly debug line info more accurate, covering the
end_function instruction as well.
2024-09-11 07:46:23 +03:00
Nikolay Nikolov
d81170ab23
* fix generation of addend for R_WASM_FUNCTION_OFFSET_I32 relocations. This
...
improves code address accuracy for WebAssembly debug line info information.
2024-09-11 04:50:35 +03:00
Nikolay Nikolov
c8e4a52428
+ WebAssembly internal object writer: added safety check for catching bugs,
...
caused by instruction size changes between Pass1 and Pass2
2024-09-11 04:44:50 +03:00
Nikolay Nikolov
d41d98b70b
* WebAssembly internal object writer: fixed helper function SlebSize()
2024-09-11 04:44:05 +03:00
Nikolay Nikolov
23debb77b3
* set procalign and loopalign to 0 for WebAssembly - code alignment is unnecessary, as this is a VM.
2024-09-11 04:12:00 +03:00
Nikolay Nikolov
d2231e99e8
* fix the final entry size in the .debug_aranges table on platforms where the
...
ALU size differs from the address size (such as WebAssembly 32-bit)
2024-09-11 02:39:29 +03:00
Nikolay Nikolov
cc15a2dba7
* fixed blocksize when generating debug info for WebAssembly threadvars
2024-09-11 01:22:52 +03:00
Nikolay Nikolov
1ddf014980
* create a TWasmGlobalAsmSymbol instead of TAsmSymbol when generating debug info
...
for thread vars. This fixes a memory corruption error, when later the compiler
tries to access the extra fields in TWasmGlobalAsmSymbol for the '__tls_base'
symbol.
2024-09-11 01:12:33 +03:00
Nikolay Nikolov
dbc3e71eda
+ more relocation types added to the enum TWasmRelocationType
2024-09-11 01:00:30 +03:00
Nikolay Nikolov
06917784d0
- removed redundant if
2024-09-11 00:46:58 +03:00
Nikolay Nikolov
b7742def46
+ WebAssembly internal linker: support the R_WASM_GLOBAL_INDEX_I32 relocation,
...
used for threadvar debug info, among another possible uses.
2024-09-11 00:31:27 +03:00
Nikolay Nikolov
60965cdb69
+ generate proper reference to the TLS_BASE_SYM global in the WebAssembly debug info for threadvars
2024-09-11 00:12:53 +03:00
Nikolay Nikolov
9799c6a5ec
+ support writing R_WASM_GLOBAL_INDEX_I32 relocations in the WebAssembly internal object writer
2024-09-11 00:12:20 +03:00
Nikolay Nikolov
ee98fa8e3f
+ WebAssembly internal linker: support data relocations to threadvars, resolve
...
them as relative values to the beginning of the TLS section. Will be used for
generating debug info for threadvars.
2024-09-10 23:56:00 +03:00
florian
1ed9054bb9
* fix capabilites check
2024-09-10 22:53:35 +02:00
Nikolay Nikolov
d60300e807
+ WebAssembly DWARF debug info: generate DW_AT_frame_base entries for functions
2024-09-10 21:42:11 +03:00
Nikolay Nikolov
97e5936f78
* generate debuginfo for WebAssembly threadvars like for normal vars, when
...
WebAssembly threads are turned off
2024-09-10 19:58:32 +03:00
ccrause
fc76d9fac2
Omit FPC_INIT_FUNC_TABLE generation if no unit initialization is registered for current project.
2024-09-09 20:00:44 +00:00
J. Gareth "Curious Kit" Moreton
677fd4fb00
* Added missing i386-win32 target selection
2024-09-09 14:24:05 +01:00
Nikolay Nikolov
424686ce34
* fix warning (second attempt :) )
2024-09-07 18:05:35 +03:00
Nikolay Nikolov
a0cfed14fa
* fix warning
2024-09-07 18:01:23 +03:00
Nikolay Nikolov
2ba0f42508
+ WebAssembly internal assembler and linker: support exporting symbols from
...
debug sections, via a FPC-specific extension. Unfortunately, this is not
supported by the LLVM external assembler and linker.
2024-09-07 17:07:29 +03:00
Nikolay Nikolov
27fd290150
+ WebAssembly object writer: record the custom section index for debug sections
...
in a new field TWasmObjSection.CustomSectionIdx
2024-09-07 04:30:03 +03:00
Nikolay Nikolov
d79c549f03
* WebAssembly internal object writer: generate the symbol table after the
...
section numbers have been calculated. This is preparation for exporting
symbols from debug sections, which will be implemented in the future. No
functional changes.
2024-09-07 04:11:18 +03:00
Nikolay Nikolov
5e996dc18f
+ added several missing targets to the help screen for the -P compiler option
2024-09-06 07:23:23 +03:00
Nikolay Nikolov
45374be28e
+ added -CN to the help screen of the WebAssembly compiler as well
2024-09-03 18:07:16 +03:00
Nikolay Nikolov
964aa8b71b
+ added an optional nil pointer checking for WebAssembly (similar to
...
PowerPC-AIX), that can be activated via the -CN option
2024-09-03 18:05:52 +03:00
Nikolay Nikolov
3d25e52b61
* renamed the wabt assembler to wasa in the compiler help screen as well
2024-09-02 02:55:06 +03:00
Nikolay Nikolov
6149fe394e
* unit agwat renamed agwasa
2024-09-02 02:09:34 +03:00
Nikolay Nikolov
3d204dd0da
* TWabtTextAssembler class renamed TWasaTextAssembler
2024-09-02 02:07:48 +03:00
Nikolay Nikolov
75e061e06f
* as_wasm_wabt_info renamed as_wasm_wasa_info
2024-09-02 02:07:09 +03:00
Nikolay Nikolov
3e036e4ff8
* WebAssembly WABT assembler ID changed to WASA
2024-09-02 02:06:40 +03:00
Nikolay Nikolov
d786b639c0
* WebAssembly wabt assembler id as_wasm32_wabt renamed as_wasm32_wasa
2024-09-02 02:06:16 +03:00
Nikolay Nikolov
649173001c
- WebAssembly internal object writer is no longer experimental
2024-09-01 23:48:22 +03:00
ccrause
d53a81e2d9
Exclude AW flags for sec_fpc data for embedded and freertos targets.
2024-09-01 20:22:17 +00:00
Nikolay Nikolov
437faaab12
+ indicate which LLVM-MC versions are broken in the compiler help screen
2024-09-01 23:16:36 +03:00
Nikolay Nikolov
38100cd501
- don't generate .size directives for function symbols on WebAssembly, to avoid
...
warnings from the external assembler
2024-09-01 22:48:39 +03:00
Nikolay Nikolov
28b080d9bc
+ emit a size directive for the internal dynarray const label. This fixes
...
WebAssembly dynarray consts with the llvm-mc external asm.
2024-09-01 22:29:34 +03:00
Nikolay Nikolov
293ddffebd
+ disable the WebAssembly type checker for all LLVM-MC versions since version 13
2024-09-01 21:20:43 +03:00
Nikolay Nikolov
342ede81ee
* WebAssembly code generator: don't emit a return instruction at the end of the
...
function, because it's redundant
2024-09-01 20:28:42 +03:00
Rika Ichinose
ce5a632432
Remove the rest of the VER3_0 conditionals.
2024-09-01 17:13:39 +00:00
Nikolay Nikolov
6ab6d613e0
+ add explicit support for LLVM-MC versions 15..18
2024-09-01 20:10:54 +03:00
Nikolay Nikolov
a76ca8f60e
+ pass '--no-type-check' to llvm-mc-13, because its type checking is broken
2024-09-01 20:03:29 +03:00
Nikolay Nikolov
5e327453a8
+ WebAssembly external asm writer: workaround for the 'missing functype' error,
...
produced by LLVM-MC versions 13 and above
2024-09-01 19:52:50 +03:00
florian
4fea0e355e
+ apply OptPass1FData on FRINT*
2024-08-31 21:51:15 +01:00
Pierre Muller
b40d312521
Recompile rtl before trying to compile msg2inc binary
2024-08-29 22:48:15 +02:00
Pierre Muller
94d7aeb998
Add msg as prerequisite for compiler to fix 'make distclean all' failure
2024-08-29 22:41:40 +02:00
florian
90cc6db5cb
* armv7 should a synonyme for arm7a
2024-08-28 20:27:09 +01:00
florian
f81ce16d2a
+ AArch64: apply OptPass1FData also to FCSEL
2024-08-27 20:22:53 +01:00
J. Gareth "Curious Kit" Moreton
096d5f50b2
* arm / a64: New optimisation for removing the number of necessary S/UXTB/H instructions
2024-08-27 18:32:14 +00:00