Rika Ichinose
|
0d5f7fa66b
|
Increase non-temporal i386 & x64 Fill* thresholds to 4 Mb.
|
2024-01-01 18:33:33 +00:00 |
|
Rika Ichinose
|
1ec0326995
|
REP STOS branch for x64 Fill* (only for System V ABI for now).
|
2023-11-26 15:06:59 +00:00 |
|
Rika Ichinose
|
a4c324ee23
|
Fill* for x64, physically sharing half of the code with FillChar.
|
2023-11-26 15:06:59 +00:00 |
|
Rika Ichinose
|
b468793c63
|
Index/Compare refined by hand instead of mostly being GCC output.
|
2023-11-21 22:32:16 +00:00 |
|
florian
|
b164817e18
|
* check also for XGETBV support, resolves problem reported by Pierre
|
2023-11-20 22:55:25 +01:00 |
|
florian
|
704ad21b23
|
+ centralized cpu capability detection
|
2023-11-18 22:28:50 +01:00 |
|
Rika Ichinose
|
c07f36b30b
|
Post-modern CompareByte for x86-64/SSE2.
|
2023-11-16 21:42:51 +00:00 |
|
Rika Ichinose
|
0bc1d8d446
|
Deny effective RTM support if CPUID bit RTM_ALWAYS_ABORT is set.
|
2023-11-01 17:10:14 +00:00 |
|
Rika Ichinose
|
e00ab51185
|
On i386 and x86_64, add cpu.CPUID — high-level wrapper to CPUID instruction, and cpu.CPUBrandString — convenience for CPUID leaves 80000002, 80000003, and 80000004.
|
2023-10-31 21:20:45 +03:00 |
|
Rika Ichinose
|
0e426db5de
|
x86_64.inc: shorten Interlocked*, perform macro-fused test+jz in Index* early.
|
2023-10-25 21:05:21 +00:00 |
|
Rika Ichinose
|
2dca69f2ac
|
Specialized fpc_varset_OP_sets for i386 and x86-64.
|
2023-08-30 19:38:33 +00:00 |
|
Michael VAN CANNEYT
|
ccfa38c68e
|
* Dotted RTL compiles
|
2023-07-27 19:04:03 +02:00 |
|
Michael VAN CANNEYT
|
5ce739135b
|
* Char -> AnsiChar
|
2023-07-14 17:26:10 +02:00 |
|
Rika Ichinose
|
669d41172c
|
Fix UTF-8 symbols in comments.
|
2023-07-08 21:18:55 +00:00 |
|
Rika Ichinose
|
8d5d7b480d
|
Supposedly faster Move for x64.
|
2023-07-08 21:18:55 +00:00 |
|
Rika Ichinose
|
f20c7b9ae9
|
Shorter x86_64.inc:inc/declocked.
|
2023-06-14 21:19:11 +00:00 |
|
Rika Ichinose
|
b56cbad50e
|
Supposedly faster FillChar for x64.
|
2023-04-13 15:55:42 +00:00 |
|
Rika Ichinose
|
8e884d9acd
|
Handle Index* / Compare* tail by directly reading last VECSIZE bytes, if there was at least one full vector.
|
2023-04-03 20:08:56 +00:00 |
|
florian
|
ee16fc7b96
|
* patch by Rika, trivial adjustments to !373, resolves #40172
|
2023-02-27 22:07:06 +01:00 |
|
Rika Ichinose
|
da12cfc867
|
Improved CompareWord for i386 and x86_64.
|
2023-02-25 22:52:38 +00:00 |
|
florian
|
7cc94fc000
|
* patch by Rika: Trivial adjustments to !379, resolves #40168
|
2023-02-23 22:46:05 +01:00 |
|
Rika Ichinose
|
b723178117
|
Even better CompareByte for x64.
Tries to handle tails with a SIMD unit as well.
|
2023-02-19 18:12:37 +00:00 |
|
Rika Ichinose
|
d36e96ea74
|
Improved CompareDWord for i386 and x86_64.
|
2023-02-19 18:07:46 +00:00 |
|
Rika Ichinose
|
eff26797ab
|
SSE2 IndexDWord for x64.
|
2023-02-12 15:18:45 +00:00 |
|
Rika Ichinose
|
524589231f
|
Improved CompareByte for i386 and x86_64.
|
2023-02-05 15:09:01 +00:00 |
|
florian
|
3e6d4bf1cc
|
* new cpu feature tests
|
2022-11-09 23:09:07 +01:00 |
|
florian
|
12aa48602b
|
+ CMOVSupport function
|
2022-11-08 21:15:11 +01:00 |
|
Jonas Maebe
|
0758aa1143
|
FPU exception mask: generlised system unit interface
|
2022-10-17 19:43:01 +00:00 |
|
florian
|
a45ba3add5
|
* x86-64: math helpers do not need a stackframe
|
2022-08-05 23:02:05 +02:00 |
|
florian
|
6bbefcae9e
|
* check more cpuid flags in the cpu units
|
2022-04-04 22:55:05 +02:00 |
|
florian
|
652e75f8ec
|
* use v*csr instructions if they are available
|
2022-03-23 21:53:14 +01:00 |
|
florian
|
fbf68af605
|
* continued to update change information
|
2022-03-23 21:43:08 +01:00 |
|
florian
|
39627cbdfb
|
+ AVX512VBMISupport and AVX512VBMI2Support
|
2022-03-05 20:35:25 +01:00 |
|
florian
|
79cf1dd9cf
|
+ store also ecx and edx after cpuid call with eax=7
+ test VNNI and BIGALG instructions
|
2022-02-07 21:22:16 +01:00 |
|
florian
|
2e8321e0fa
|
+ routines to test for AVX512VNNI and AVX512BITALG support
|
2022-01-21 18:23:04 +01:00 |
|
Florian Klämpfl
|
4aebfe97a9
|
+ x86: ADXSupport
+ x86: RDSEEDSupport
|
2022-01-03 22:51:00 +01:00 |
|
Florian Klämpfl
|
dde8f54ee7
|
+ LZCNTSupport
+ test extended
|
2021-12-28 17:05:56 +01:00 |
|
florian
|
e1698a5969
|
* when compiling with the main branch compiler, p2align with 3 parameters can be used now
|
2021-10-19 21:32:40 +02:00 |
|
florian
|
bdc826cc18
|
* x86-64: do not jump in inc/declocked to return but return directly
|
2021-10-17 22:44:52 +02:00 |
|
florian
|
bff09e8e9e
|
+ CPU units: check for SHA support
|
2021-10-09 16:23:11 +02:00 |
|
florian
|
d354428f42
|
* moved fwait
|
2021-09-01 09:29:51 +02:00 |
|
florian
|
777d536d9b
|
* extended routines int/frac/trunc shouldn't mess with precision or exception flags, should fix #39275
|
2021-08-12 21:20:30 +02:00 |
|
florian
|
f0d92b74c1
|
- x86_64: some more fwaits removed
git-svn-id: trunk@49633 -
|
2021-07-23 20:50:39 +00:00 |
|
florian
|
cebf880df9
|
* x86-64: fpc_frac_real further improved: memory loads of extendeds are expensive
git-svn-id: trunk@49632 -
|
2021-07-22 21:15:03 +00:00 |
|
florian
|
fafee8b85b
|
* x86-64: removed some fwait instructions from fpc_frac_real, they shouldn't be necessary
git-svn-id: trunk@49626 -
|
2021-07-21 20:41:31 +00:00 |
|
florian
|
6c0b79c258
|
+ AVX512*Support functions
* call cpuid with eax=7 only if it is supported by the CPU
git-svn-id: trunk@49601 -
|
2021-07-11 20:09:57 +00:00 |
|
florian
|
5ca73c61f4
|
+ CPU.BMI1Support and CPU.BMI2Support
git-svn-id: trunk@49582 -
|
2021-07-07 20:26:59 +00:00 |
|
pierre
|
3362abb30c
|
* Set softfloat_rounding_mode indise SetRoundMode function for all CPUs.
* SetRoundMode returns previous rounding mode value for all CPUs.
git-svn-id: trunk@48018 -
|
2021-01-03 21:44:18 +00:00 |
|
florian
|
4f05523db9
|
+ RTMSupport function
+ if available use RTM to support InterlockedCompareExchange128 on i386
git-svn-id: trunk@47833 -
|
2020-12-22 22:00:08 +00:00 |
|
pierre
|
40b7af1025
|
Use pascal code for LLVM fpc_sqr_real, because fmultp instruction is not accepted by llvm
git-svn-id: trunk@47555 -
|
2020-11-24 13:57:06 +00:00 |
|