Karoly Balogh
c2ceb4bb99
m68k-amiga: fix typo from commit e94d02a0 that broke the build
2024-12-13 01:18:31 +01:00
Sven/Sarah Barth
e94d02a067
* with all existing RTLs switched over to the atomic intrinsics, the define FPC_SYSTEM_INTERLOCKED_USE_INTRIN can be removed again
2024-12-12 22:05:20 +01:00
Sven/Sarah Barth
9b302983b0
* switch LoongArch 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:19 +01:00
Sven/Sarah Barth
16f9ab3bdb
* switch Xtensa RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:19 +01:00
Sven/Sarah Barth
128a87a2dc
* switch AVR RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:18 +01:00
Sven/Sarah Barth
19d908a964
* switch RISC-V 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:18 +01:00
Sven/Sarah Barth
20d9ddf5ae
* switch RISC-V 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:18 +01:00
Sven/Sarah Barth
573b82c67f
* switch WebAssembly RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:18 +01:00
Sven/Sarah Barth
546c3093f7
* switch Z80 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:18 +01:00
Sven/Sarah Barth
5346faa02c
* switch PowerPC 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:18 +01:00
Sven/Sarah Barth
fdd0ebeed9
* switch PowerPC 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:17 +01:00
Sven/Sarah Barth
5a6f7b3e29
* switch MIPS RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:17 +01:00
Sven/Sarah Barth
7be06582b2
* switch SPARC 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:17 +01:00
Sven/Sarah Barth
2e54ad65fb
* switch SPARC 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:17 +01:00
Sven/Sarah Barth
60b8dd4276
* switch i8086 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:16 +01:00
Sven/Sarah Barth
a815beea2c
* switch M68k RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:16 +01:00
Sven/Sarah Barth
5d6c8130a0
* switch ARM RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:16 +01:00
Sven/Sarah Barth
1ce0204088
* switch Aarch64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions
2024-12-12 22:05:16 +01:00
Sven/Sarah Barth
ba7e87aff3
* switch x86_64 RTL to provide the atomic intrinsics instead of Interlocked* functions
2024-12-12 22:05:16 +01:00
Sven/Sarah Barth
295d3f0969
* switch i386 RTL to provide the atomic intrinsics instead of Interlocked* functions
2024-12-12 22:05:16 +01:00
Sven/Sarah Barth
b9a198b1a8
- remove unused variables
2024-12-12 22:05:15 +01:00
Sven/Sarah Barth
9d10123b0d
- remove unused variables
2024-12-12 22:05:15 +01:00
Sven/Sarah Barth
7f4b2f63b3
Switch from functions for the Atomic*-family to intrinsics
2024-12-12 22:05:15 +01:00
Sven/Sarah Barth
9cbc802d0d
+ add platform independent helper routines for the atomic intrinsics; these only require the implementation of the size specific fpc_atomic_cmp_xhg_* helper, but if only the CPU size specific helper is implemented the others will at least be safe for multi threading inside the same process
2024-12-12 22:05:14 +01:00
marcoonthegit
f429dab7b3
* fix from #41053 . Add cc_anycolor
2024-12-09 22:54:32 +01:00
florian
e471c08cf8
+ SHA512Support
2024-12-07 11:10:34 +01:00
florian
73e96f8f1e
* simplify SysResetFPU
2024-12-06 21:21:02 +01:00
florian
f72183eb37
* ensure always an exception is raised in genmath.inc if appropriate
2024-12-05 22:17:18 +01:00
florian
072f1bfb29
+ SysResetFPU for Aarch64
2024-12-05 22:03:27 +01:00
Rika Ichinose
91d3746adf
Use FillChar in InitializeArray.
2024-11-30 21:45:29 +00:00
marcoonthegit
83cc5be952
* remove functions commented in the commdlg/ctl spinoff of 2008
2024-11-27 23:06:26 +01:00
Michaël Van Canneyt
6f5f567087
* Patch from Amexander Bagel to restore Delphi-compatible behaviour in TThread.Queue. Fixes issue #41043
2024-11-26 08:52:40 +01:00
florian
cc7325e316
* increase stack margin for x86-64 so back tracing a stack overfow with line info does not cause another stack overflow
2024-11-24 22:58:47 +01:00
Rika Ichinose
d1db5d2104
Darwin: re-enable new assembler fill*word variants
...
Work around with an extra jump to an extra function.
2024-11-23 19:06:47 +03:00
Michaël Van Canneyt
0c83b3dc6c
* Add Delphi-Compatible new findCmdLineSwitch overload
2024-11-23 10:23:36 +01:00
Sven/Sarah Barth
40f90b60eb
* DWARF line info: only use the cached module if the base address also is the same; this can happen if the initial exception occurred at a random address outside the module, but the next stack address can be found inside the correct module
2024-11-20 22:56:09 +01:00
Jonas Maebe
28e9ebc7da
Darwin: disable new assembler fill*word variants
...
They use interprocedural gotos at the assembler level, which is incompatible
with auto-generated CFI
2024-11-20 21:39:19 +01:00
Pierre Muller
930596bd85
Fix directories for some source files, based on suggestion by Alfred Glänzer in #40995
2024-11-19 22:12:31 +00:00
Sven/Sarah Barth
ecbd0fc0da
* move aliases of fpc_copy and fpc_copy_by_move_semantics to aliases and adjust their names to match other aliaes
2024-11-17 14:33:25 +01:00
Rika Ichinose
798d793cdc
Specialized fpc_copy_with_move_semantics for destructive copies.
2024-11-17 09:45:11 +00:00
Frederic Kehrein
64c27a86a8
* Adding new generic Extract and Swap function to RTL
...
These allow to move data from one variable to another without triggering
the copy operation. Extract makes use of the newly introduced move
semantic for function results and Swap uses System.Move to not trigger
the copy mechanism.
2024-11-16 22:08:06 +00:00
Frederic Kehrein
ca92c49f8c
* Avoid calling copy operator when moving data from temporary objects
...
When a function returns a managed record, a new temporary object is
created for the result, which is then copied to the real destination.
For managed records with a deep copy implementation, this can create
immense overhead. So instead this introduces a move, which basically
consists of
```pascal
procedure Move(var src, dst);
begin
Finalize(dst); // Finalize existing data
Move(src,dst,sizeof(dst)); // Shallow copy
Initialize(src); // Clear source
```
* nld.pas: use MOVE when assigning the function result from the
temporary return object
* rtl/inc/systemh.pas: Adding new macro to mark new RTTI version with MOVE
operation
* rtl/inc/compproc.inc, rtl/inc/rtti.inc: Adding new move mechanism when
indicated by the compiler.
2024-11-16 22:08:06 +00:00
Frederic Kehrein
4b92df28cf
Adding static properties to extended RTTI
2024-11-15 12:47:41 +00:00
florian
ccae78f97a
+ RiscV64: apply OptPass1OP also to addiw
2024-11-13 22:56:13 +01:00
Rika Ichinose
e9579fe2df
Better Utf8ToUnicode.
2024-11-12 20:29:43 +00:00
Rika Ichinose
89142ba73a
Faster dynamic array concatenations.
2024-11-11 19:50:41 +00:00
Sven/Sarah Barth
1b44d17899
* fix #41004 : correctly determine the instruction pointer for leaf functions and set the CONTEXT_UNWOUND_TO_CALL context flag
2024-11-10 22:00:45 +01:00
florian
092ff254f1
+ AtomicIncrement/Decrement overloads
...
* tests extended
2024-11-10 14:56:10 +01:00
Kirill Kranz
dad75d4472
clearing the bss section on startup
...
this allows smart linking
2024-11-09 09:27:27 +00:00
Kirill Kranz
c3ad885277
set stack top to 801FFFF0 as in system.cnf
2024-11-09 09:27:27 +00:00