florian
b499e7593a
* corrected alignment for Risc-V on Linux
2024-08-16 19:55:34 +02:00
Pierre Muller
167b5213d1
Rename conditional: INTFPPU => DEBUG_GENERATE_INTERFACE_PPU
2024-08-16 15:33:12 +00:00
Pierre Muller
7ec9d2bf9f
Fix compilation with -dDEBUG_PPU
2024-08-16 15:08:19 +00:00
florian
159d97e864
* Risc-V: make use of sext.h instruction if available
2024-08-15 21:53:04 +02:00
Nikolay Nikolov
c54d1d4b89
* WebAssembly internal linker: the PageSize constant, which was repeated twice,
...
moved to the class level and renamed WasmPageSize. No functional changes.
2024-08-15 04:47:58 +03:00
Nikolay Nikolov
bf78823e60
+ WebAssembly internal linker: take into account the min heap size (specified
...
with the $M directive), when determining FMinMemoryPages
2024-08-15 04:35:13 +03:00
florian
a53eb8b230
+ Risc-V: make use of zext.h if available
2024-08-14 22:37:26 +02:00
Michaël Van Canneyt
5186044e81
* TStrings.InsertObject is virtual in Delphi
2024-08-14 15:15:08 +02:00
Michaël Van Canneyt
0533acdc27
* Add RangeIndexError (delphi compatible)
2024-08-14 15:14:24 +02:00
florian
081af9a892
* overleft cosmetics
2024-08-13 22:54:19 +02:00
Michaël Van Canneyt
15ba298bae
* Additional check on action.
2024-08-13 10:35:39 +02:00
Michaël Van Canneyt
68acd78640
* Add SMEnuSeparator for Delphi compatibility
2024-08-13 10:32:29 +02:00
Michaël Van Canneyt
2accac30ae
* Check if action is assigned before calling update on it
2024-08-13 10:24:36 +02:00
Michaël Van Canneyt
43660084b6
* Fix wrong raise statement. Fixes issue #40889
2024-08-13 09:41:04 +02:00
Yuri Serebrennikov
276618563c
For connections list TThreadList changed to safe TFPHashList.
2024-08-12 23:20:12 +03:00
ccrause
10ec49d75b
Remap .data with fpc specific information to outside normal memory range.
2024-08-12 20:10:30 +00:00
Rika Ichinose
801e14c33b
Faster Insert(ansi/unicodestring).
2024-08-12 20:09:30 +00:00
florian
6ef37d999a
+ Risc-V: instructions of B extension
2024-08-12 21:51:22 +02:00
Yuri Serebrennikov
73ee25071d
Fixed work in ThreadMode := wtmNone mode.
2024-08-12 10:18:36 +00:00
florian
0366df9fbd
+ Zb* cpu capabilities
2024-08-11 22:47:29 +02:00
Nikolay Nikolov
296a792380
* set MaxIntResource to 1023 for WebAssembly, because that's where the first
...
data segment starts, after commit 3218f25d13
,
and even before that, when using the external linker
2024-08-11 04:19:36 +03:00
Nikolay Nikolov
3218f25d13
* WebAssembly internal linker: reduced exe section alignment to 16 bytes
2024-08-11 03:57:05 +03:00
Nikolay Nikolov
7b05051fc1
* WebAssembly internal linker: add the .tbss section size to the result of GetBssSize
2024-08-11 03:29:39 +03:00
Nikolay Nikolov
8833fabb4b
+ enable the WebAssembly internal linker with multithreading
2024-08-11 02:58:25 +03:00
Nikolay Nikolov
f81485a9b1
* WebAssembly threads internal linker: use signed LEB when needed in TWasmExeOutput.GenerateCode_InitTls and TWasmExeOutput.GenerateCode_InitSharedMemory
2024-08-11 02:55:15 +03:00
Nikolay Nikolov
2e2281387c
* WebAssembly threads internal linker: micro optimization in
...
TWasmExeOutput.GenerateCode_InitTls - skip generating instructions that add
zero
2024-08-11 02:44:23 +03:00
Nikolay Nikolov
4adb6b2bee
* WebAssembly threads internal linker: use WriteUleb instead of WriteUleb5 in
...
TWasmExeOutput.GenerateCode_InitTls and TWasmExeOutput.GenerateCode_InitSharedMemory.
This generates equivalent, but shorter code.
2024-08-11 02:37:18 +03:00
Nikolay Nikolov
dfe60b53d1
* WebAssembly threads internal linker: generate data.drop instructions in
...
TWasmExeOutput.GenerateCode_InitSharedMemory. This drops the passive memory
segments, after the memory has been initialized.
2024-08-11 02:30:39 +03:00
Nikolay Nikolov
b985cd0ea5
* WebAssembly threads internal linker: implement memory initialization in TWasmExeOutput.GenerateCode_InitSharedMemory
2024-08-11 02:24:02 +03:00
Nikolay Nikolov
cfa7d6a0c6
* WebAssembly internal linker: moved the DataSections const array from local to
...
the method writeData to local to the class. No functional changes.
2024-08-11 02:14:13 +03:00
Nikolay Nikolov
4d48e7e4d3
* WebAssembly threads internal linker: generate passive data segments, when multithreading is on
2024-08-11 02:12:31 +03:00
Nikolay Nikolov
8648c0353a
+ WebAssembly threads internal linker: partial implementation of TWasmExeOutput.GenerateCode_InitSharedMemory
2024-08-11 02:07:50 +03:00
Nikolay Nikolov
914b1feceb
* WebAssembly threads internal linker: create a startup function for
...
initializing shared memory (dummy for now)
2024-08-11 01:37:50 +03:00
Nikolay Nikolov
b6f60e33ca
* WebAssembly threads internal linker: use imported and shared memory if multithreading is enabled
2024-08-11 01:18:38 +03:00
Nikolay Nikolov
3a473f9148
* WebAssembly threads internal linker: set initial values for __tls_size, __tls_align and __tls_base
2024-08-11 00:56:16 +03:00
Nikolay Nikolov
07b4ceac49
* WebAssembly threads internal linker: set threadvar globals as mutable
2024-08-11 00:44:32 +03:00
Nikolay Nikolov
c9f6b93d22
* WebAssembly threads internal linker: implemented the actual code generation in TWasmExeOutput.GenerateCode_InitTls
2024-08-11 00:41:56 +03:00
Nikolay Nikolov
90a756931e
* WebAssembly threads internal linker: set initial values for threadvar globals
2024-08-11 00:19:53 +03:00
Nikolay Nikolov
a441d8ff28
* WebAssembly threads internal linker: introduced TWasmObjSymbol.TlsDataSym
2024-08-11 00:15:20 +03:00
Nikolay Nikolov
0d5dd4196f
* WebAssembly threads: don't do anything in TWasmExeOutput.SetThreadVarGlobalsInitValues
...
and TWasmExeOutput.GenerateCode_InitTls if threads are disabled
2024-08-11 00:12:37 +03:00
Nikolay Nikolov
334ef633a8
* WebAssembly threads internal linker: starting working on TWasmExeOutput.SetThreadVarGlobalsInitValues
2024-08-11 00:11:29 +03:00
Nikolay Nikolov
39ab212642
* WebAssembly threads internal linker: set MainFuncSymbol of the section of threadvar globals
2024-08-11 00:06:36 +03:00
Nikolay Nikolov
f38b12240d
* WebAssembly threads internal linker: set the global type of threadvar globals to wbt_i32
2024-08-11 00:05:14 +03:00
Nikolay Nikolov
afbc36897d
+ WebAssembly threads internal linker: introduced TWasmExeOutput.GenerateCode_InitTls (not ready, yet, just writes some dummy data)
2024-08-11 00:01:52 +03:00
Nikolay Nikolov
df4ef39762
* WebAssembly threads internal linker: ignore RELOC_GLOBAL_INDEX_LEB
...
relocations, pointing to AT_TLS entries, because the actual relocation is done
by another relocation, overlaid on top of this one, pointing to a WebAssembly
global. The reason we use two relocations, is to cause the smartlinker to keep
both the AT_TLS symbol, thus reserving data space in linear memory for the
threadvar, as well as the WebAssembly global variable, used for holding the
address of the threadvar.
2024-08-10 23:52:35 +03:00
Nikolay Nikolov
cd8fda1c28
* WebAssembly threads internal linker: create double relocation entries for
...
AT_TLS entries: one points to the AT_TLS entry (the data segment), the other
points to the WebAssembly global, holding that address. This causes the
smartlinking optimization to keep both the AT_TLS entry in the data segment,
as well as the WebAssembly global.
2024-08-10 23:48:55 +03:00
Nikolay Nikolov
605ca8144f
* WebAssembly threads internal linker: set objsection properly for global
...
symbols, created for AT_TLS entries
2024-08-10 23:48:55 +03:00
florian
f1a173bdf6
* improve Risv-V optimizer
2024-08-10 21:57:55 +02:00
Nikolay Nikolov
d1348d17bf
+ WebAssembly threads internal linker: create a global symbol for all AT_TLS data symbols
2024-08-10 22:37:47 +03:00
Nikolay Nikolov
7e938ffafc
* WebAssembly threads internal linker: set MemPos for data sections correctly
...
when threads are enabled (take into account that the first data section with
threads enabled is .tbss, instead of .rodata)
2024-08-10 22:04:53 +03:00