florian
e471c08cf8
+ SHA512Support
2024-12-07 11:10:34 +01:00
Rika Ichinose
8bf2dc3f2b
Simplify CPU units (70 LoC + 500 b code + 500 b data).
2024-07-18 20:13:11 +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
florian
9d957cd6b3
* fix TSC support bit as mentioned by Rika
2024-07-01 22:26:03 +02:00
florian
567187d4ba
+ TSCSupport
2024-06-29 22:32:36 +02:00
florian
22e9033076
+ MMXSupport added to cpu unit
...
* mmx unit makes more use of cpu unit
2024-03-28 10:42:08 +01: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
Michael VAN CANNEYT
ccfa38c68e
* Dotted RTL compiles
2023-07-27 19:04:03 +02: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
florian
6bbefcae9e
* check more cpuid flags in the cpu units
2022-04-04 22:55:05 +02: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
bff09e8e9e
+ CPU units: check for SHA support
2021-10-09 16:23:11 +02: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
florian
de62cb8b02
* do not execute xend twice which was introduced in r48430
...
git-svn-id: trunk@48456 -
2021-01-30 18:46:58 +00:00
pierre
5dbd9eb2e0
Introduce USE_REAL_INSTRUCTIONS to handle expressions not accepted by old assemblers
...
git-svn-id: trunk@48430 -
2021-01-26 14:50:58 +00:00
florian
b5725ac3ed
* while not official supported, bootstrapping with 3.0.4 fixed
...
git-svn-id: trunk@47901 -
2020-12-30 09:34:22 +00:00
florian
98d3473a1a
* i386: disable InterlockedCompareExchange128 implementation if PIC is enabled
...
git-svn-id: trunk@47852 -
2020-12-26 21:11:12 +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
florian
e26e824700
+ more helper routine to check for CPU features added
...
git-svn-id: trunk@45835 -
2020-07-23 20:57:45 +00:00
florian
c01db96df4
+ functions to check for Popcnt support
...
git-svn-id: trunk@45827 -
2020-07-22 20:47:11 +00:00
florian
77cf67b59a
o unified interface of i386 and x86-64 cpu unit:
...
+ InterlockedCompareExchange128Support for i386 always returning false
+ AESSupport for i386
+ dummy InterlockedCompareExchange128 for i386 throwing an rte 217
git-svn-id: trunk@32857 -
2016-01-05 15:23:26 +00:00
florian
5d57f38619
+ functions for FMA and AVX2 detection
...
git-svn-id: trunk@27202 -
2014-03-20 15:47:51 +00:00
florian
c57f463ede
+ AVXSupport function to detect if the CPU and OS support AVX
...
git-svn-id: trunk@22641 -
2012-10-14 14:04:27 +00:00
florian
88c2c77319
+ is_sse3_cpu, put into cpu unit, so x86-64 and i386 can share source code
...
git-svn-id: trunk@18785 -
2011-08-20 12:01:48 +00:00
Jonas Maebe
9273856e84
* disallow pusha*/popa* for x86_64 (mantis #14862 )
...
* disallow pushfd/popfd for x86_64 (mantis #14862 )
* fixed assembling popfq with the internal assembler (it needs a rex.w
prefisx, while pushfq doesn't)
* changed the default opcode size of pushf/popf/pusha/popa in
{$asmmode intel} from "native size" to 16 bit (compatible with Intel
manuals and Kylix; in AT&T mode, the default size for those operations
remains the native one)
* changed pushf/popf in rtl/i386/* into pushfd/popfd because of the
previous change
git-svn-id: trunk@15546 -
2010-07-10 16:22:46 +00:00
Jonas Maebe
982c1a39c4
* and yet more ebx saving/restoring
...
git-svn-id: trunk@4176 -
2006-07-14 11:57:07 +00:00
fpc
790a4fe2d3
* log and id tags removed
...
git-svn-id: trunk@42 -
2005-05-21 09:42:41 +00:00
fpc
50778076c3
initial import
...
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
9f31783a0a
* old logs removed and tabs fixed
2002-09-07 16:01:16 +00:00
michael
650fbb86aa
+ removed logs
2000-07-13 11:32:24 +00:00
michael
e7aca136a1
+ Initial import
2000-07-13 06:29:38 +00:00
peter
6b66a55cd6
* truncated log
2000-02-09 16:59:28 +00:00
daniel
ec29a31834
* copyright 2000
2000-01-07 16:41:28 +00:00
peter
4620a73a9b
* FPC_ names
...
* Heap manager is now system independent
1998-09-14 10:48:00 +00:00
peter
bd57e42086
* $ifdef ver0_99_5 updates
1998-08-11 00:04:46 +00:00
pierre
2719fa44c6
* CR0 works now (written using DB to allow to use it we INTEL and ATT output)
...
* floating_emulation bit set correctly
1998-05-25 10:51:27 +00:00
peter
e64becf81c
* moved getopts to inc/, all supported OS's need argc,argv exported
...
+ strpas, strlen are now exported in the systemunit
* removed logs
* removed $ifdef ver_above
1998-05-12 10:42:41 +00:00
root
d1a1f501c8
Initial revision
1998-03-25 11:18:12 +00:00