Commit Graph

549 Commits

Author SHA1 Message Date
Rika Ichinose
ff2492edf5 Add System.UMul64x64_128. 2025-03-15 22:18:55 +01:00
Rika Ichinose
4f92679625 BMI1 → BMI2. 2025-03-13 01:02:15 +03:00
Rika Ichinose
f7f8c9a615 Publish System.MemPos. 2025-02-09 03:40:40 +03:00
Michaël Van Canneyt
3f0593b554 * Better fix for atomic operations on wasm 2025-01-07 14:42:21 +01:00
Michaël Van Canneyt
ec7e917b1a Use correct defines for ALUSInt, fixes problems encountered in webassembly 2025-01-06 14:10:27 +01:00
Sven/Sarah Barth
7f4b2f63b3 Switch from functions for the Atomic*-family to intrinsics 2024-12-12 22:05:15 +01: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
florian
092ff254f1 + AtomicIncrement/Decrement overloads
* tests extended
2024-11-10 14:56:10 +01:00
Rika Ichinose
0b97f169b0 Remove conditionals that rely on not defined(FPC_HAS_CPSTRING). 2024-11-04 10:28:33 +00:00
Rika Ichinose
9917350ef0 AVX2 CompareByte for i386. 2024-09-23 20:10:57 +00:00
Rika Ichinose
d7352e7b66 Remove most of the VER3_0 conditionals. 2024-08-25 09:44:11 +00:00
florian
5b5a8b3387 * add cpuriscv to be on the safe side 2024-08-01 22:40:11 +02:00
Rika Ichinose
1030f67fb4 Use IndexQWord_SSE41 directly if -Cp RTL compiled with supports SSE 4.1. 2024-07-21 08:40:12 +00:00
Rika Ichinose
a575a5c0fd Move Int128Rec to System; remove i386 and x86_64 CPU unit dependency on SysUtils. 2024-07-15 13:31:20 +00:00
Rika Ichinose
73bf0c82bb Disable _Plain versions when compiling RTL for newer CPUs. 2024-07-14 14:36:17 +00:00
florian
9209f55112 * make GetProcessID inline 2024-07-01 21:25:34 +02:00
Rika Ichinose
0ca608243c SSE4.1 IndexQWord for i386 and x86-64. 2024-06-29 20:37:55 +00:00
Pierre Muller
d1510840d0 Fix compilation of rtl with -dDISABLE_SYSTEMINLINE 2024-05-02 07:47:57 +00:00
florian
a0cae50af6 * rtl part of #35433 2024-05-01 23:15:12 +02:00
florian
bccc0b195e * allow type = type ... ; syntax only for previously declared types, avoids also internal error for #40566 2024-02-20 23:14:31 +01:00
Rika Ichinose
b7d32e4933 ERMSB-aware Fill* for i386. 2024-01-01 18:33:33 +00:00
Michaël Van Canneyt
4c529287c6 * string -> shortstring 2023-07-22 08:26:22 +00:00
Michaël Van Canneyt
56006aa002 * Allow widechar sets, reduce to ansichar set 2023-07-22 08:26:22 +00:00
Michael VAN CANNEYT
bcaf82f5e7 * String -> ShortString 2023-07-14 17:26:11 +02:00
Michael VAN CANNEYT
d2d3fe6bc3 * Char -> AnsiChar 2023-07-14 17:26:10 +02:00
Michaël Van Canneyt
bd03612527 * Typo fixed 2023-07-13 17:24:51 +02:00
Michaël Van Canneyt
6e5c4667cd * Do not compile pointer overloads of atomic operations for MS-DOS/i8086 2023-07-13 16:18:04 +02:00
Michaël Van Canneyt
2a87366086 * Delphi compatibility aliases for Interlocked* functions 2023-07-09 15:44:55 +02:00
Rika Ichinose
98fa292b20 SSE2 Index* and Compare* for i386, chosen at runtime. 2023-03-17 20:42:50 +00:00
Jinyang He
664c613d96 add loongarch64 rtl support 2023-02-05 19:18:48 +00:00
florian
a06c034189 * cleanup of outdated defines 2023-01-20 23:31:04 +01:00
Pierre Muller
5913434ba9 Add DISABLE_SYSTEMINLINE check to be able to avoid setting SYSTEMINLINE macro 2022-09-20 22:39:28 +01:00
Nikolay Nikolov
c9ed14f87b + enable the 64-bit SAR instruction on the WebAssembly target 2022-05-27 22:56:05 +03:00
Nikolay Nikolov
b6aaa06f83 + enable the ROL/ROR instructions for WebAssembly 2022-05-27 22:46:32 +03:00
Pierre Muller
fbed068048 Set float type information in system interface part for mips64 and mips64el CPUs 2022-02-04 20:00:40 +00:00
Tomas Hajny
9f6651fdb7 + added Get/SetTextAutoFlush feature
git-svn-id: trunk@49324 -
2021-05-02 14:59:21 +00:00
Károly Balogh
45b5e9215c rtl: remove defines for v2.x compiler from the common part of the RTL. It's no longer suppported to build with that
git-svn-id: trunk@49036 -
2021-03-23 09:32:49 +00:00
nickysn
800bb3adc2 * instead of using discardresult, wrap the uniquestring functions in procedures,
that are declared as inline

git-svn-id: trunk@49016 -
2021-03-19 21:13:20 +00:00
nickysn
df947d3ae8 * fixed rtl compilation with FPC 3.2.0 starting compiler
git-svn-id: branches/wasm@48305 -
2021-01-22 00:48:44 +00:00
nickysn
7e958e0a35 + introduced the discardresult directive and declared the UniqueString()
overloads, using this directive

git-svn-id: branches/wasm@48283 -
2021-01-21 21:42:07 +00:00
nickysn
4c85306f69 + added wasm32 type defines
git-svn-id: branches/wasm@47957 -
2021-01-02 07:58:33 +00:00
Károly Balogh
05d680902e * make sure things still build with 3.0 after r47353
git-svn-id: trunk@47359 -
2020-11-09 00:24:29 +00:00
svenbarth
c496b609d1 * fix for Mantis #38051: make Chr() a real intrinsics so that it can be used in type declarations as well
+ added test

git-svn-id: trunk@47353 -
2020-11-08 22:23:02 +00:00
svenbarth
ac36eec71a * protect GetFullName with FPC_HAS_FEATURE_UNICODESTRINGS instead of _WIDESTRINGS
git-svn-id: trunk@47294 -
2020-11-03 19:25:32 +00:00
pierre
e80b1d9e70 Put GetFullName functions inside $ifdef FPC_WIDESTRING_EQUAL_UNICODESTRING
git-svn-id: trunk@47287 -
2020-11-03 07:13:59 +00:00
florian
408fc819b3 + initial implementation of a FullName field in file records to overcome length limitions of the name field
git-svn-id: trunk@47263 -
2020-10-31 19:54:40 +00:00
florian
1bf58c2a55 + introduce TExitCode
git-svn-id: trunk@47029 -
2020-10-01 20:33:02 +00:00
florian
1e4dc56155 * inlinable frame handling dummies for avr
* inline frame handler if possible

git-svn-id: trunk@47025 -
2020-09-30 21:18:33 +00:00
florian
7f53d04ffd + xtensa: make use of nsau to implement Bsr*
git-svn-id: trunk@46963 -
2020-09-26 22:03:13 +00:00
florian
832c3d89c8 * Xtensa: disable simple random again, committed by accident
git-svn-id: trunk@46552 -
2020-08-22 20:36:26 +00:00