Commit Graph

16182 Commits

Author SHA1 Message Date
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