Michael VAN CANNEYT
ccfa38c68e
* Dotted RTL compiles
2023-07-27 19:04:03 +02:00
Michael VAN CANNEYT
29c36aa407
* string -> shortstring
2023-07-14 17:26:11 +02:00
Michael VAN CANNEYT
46ca9f437a
* Char -> AnsiChar
2023-07-14 17:26:10 +02:00
Rika Ichinose
9249506a2e
Shorter i386.inc:fpc_AnsiStr_Decr_Ref.
2023-06-14 21:19:11 +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
Rika Ichinose
71863e1b2c
IndexWord and IndexDWord for i386 without REP SCAS.
2023-03-18 15:44:03 +00:00
Rika Ichinose
98fa292b20
SSE2 Index* and Compare* for i386, chosen at runtime.
2023-03-17 20:42:50 +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
Rika Ichinose
d36e96ea74
Improved CompareDWord for i386 and x86_64.
2023-02-19 18:07:46 +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
6bbefcae9e
* check more cpuid flags in the cpu units
2022-04-04 22:55:05 +02:00
florian
0d03cad279
* i386: make use of *fence instructions
2022-03-07 23:10:31 +01:00
florian
39627cbdfb
+ AVX512VBMISupport and AVX512VBMI2Support
2022-03-05 20:35:25 +01:00
florian
39836e2d37
- removed superfluous comment
2022-02-12 23:18:53 +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
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
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
svenbarth
48cc5250f9
* fpc_geteipasebx and fpc_geteipasecx are used as procedures, not functions, so declare them as such
...
git-svn-id: trunk@45980 -
2020-08-01 17:26:34 +00:00
florian
769a8fa248
+ patch by fanjinke: Hygon support for the mmx unit, resolves #37391
...
git-svn-id: trunk@45848 -
2020-07-24 20:53:54 +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
ac5407268c
* regenerated
...
git-svn-id: trunk@45778 -
2020-07-12 20:46:54 +00:00
Jeppe Johansen
c20b27ede9
Add most SSE instructions as intrinsics.
...
git-svn-id: trunk@44274 -
2020-03-06 21:34:22 +00:00
florian
22ab6dd329
* disabled mm procs again, they are not usable yet neither supposed to be
...
used
git-svn-id: trunk@43968 -
2020-01-18 11:37:57 +00:00
svenbarth
8184815780
* ensure that the new mm related procs are only used for 3.3.1 and newer as 3.2 and older don't support the corresponding SSE types
...
git-svn-id: trunk@43967 -
2020-01-18 11:22:24 +00:00
florian
70a836c4a2
* first part of merging parts of Jeppe's intrinsics patch, mainly r31135
...
is merged by this commit with a lot of adaptions
git-svn-id: trunk@43949 -
2020-01-14 21:52:39 +00:00
florian
3e6e72118b
* keep stack aligned to 16 byte boundaries in assembler subroutines calling other subroutines
...
git-svn-id: trunk@43012 -
2019-09-15 17:17:31 +00:00
florian
62f890efa3
* improved floating point signal handling on x86/linux
...
git-svn-id: branches/debug_eh@41451 -
2019-02-24 20:03:02 +00:00
nickysn
9272bf59b2
+ added x86 (i8086, i386 and x86_64) intrinsics fpc_x86_get_cs/ss/ds/es/fs/gs
...
for getting the value of x86 segment registers
git-svn-id: trunk@39433 -
2018-07-11 14:19:40 +00:00
nickysn
8e6205aca6
* changed the visibility of the writeport and readport methods in the ports unit
...
objects to private (since they should be accessed only through the default
indexed property)
git-svn-id: trunk@39421 -
2018-07-09 14:55:20 +00:00
nickysn
3673f03841
* set the stdcall calling convention explicitly for each method, that requires
...
it, instead of using {$calling stdcall} in the go32v2 ports unit
git-svn-id: trunk@39402 -
2018-07-06 15:59:26 +00:00
nickysn
0ea3570b96
* moved the interface and implementation parts of the go32v2 ports unit to
...
include files portsh.inc and ports.inc in the i386 rtl directory
git-svn-id: trunk@39397 -
2018-07-06 15:52:18 +00:00
nickysn
ff2fff365f
+ added x86 compiler intrinsics fpc_x86_sti and fpc_x86_cli, which generate the
...
'sti' and 'cli' instructions
git-svn-id: trunk@39388 -
2018-07-04 16:48:34 +00:00
nickysn
a1bf5e2f07
+ also added the fpc_x86_*port* intrinsics to the i386 system unit
...
git-svn-id: trunk@39369 -
2018-07-03 22:42:03 +00:00
nickysn
26a3ac3fd4
* moved the fpc_in_x86_*port* constants to the system unit in cpuinnr.inc in the
...
i8086, i386 and x86_64 rtl directories. This is done for consistency with
other compiler internal function numbers (which are declared in innr.inc).
git-svn-id: trunk@39367 -
2018-07-03 21:30:43 +00:00
nickysn
39dc58de09
- removed one asm instruction from i386's StrEnd() implementation
...
git-svn-id: trunk@37615 -
2017-11-23 16:43:51 +00:00