Rika Ichinose
2d6294eb26
MovQ + Shr → PExtrW.
2024-02-18 21:37:39 +00:00
Jonas Maebe
0758aa1143
FPU exception mask: generlised system unit interface
2022-10-17 19:43:01 +00: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
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
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
pierre
e35e5ad349
Add missing CPULLVM versions for fpc_abs_real and fpc_sqr_real in x86_64/math.inc
...
git-svn-id: trunk@47550 -
2020-11-24 07:59:46 +00:00
svenbarth
7990b2e3f3
* apply patch from J. Gareth Moreton to implement Int() for SSE (currently only used on Win64)
...
+ added test
git-svn-id: trunk@38993 -
2018-05-14 21:08:04 +00:00
svenbarth
abd893cac4
* fix for Mantis #33635 : correctly working SSE2 based Frac() implementation by J. Gareth Moreton
...
+ added test
git-svn-id: trunk@38903 -
2018-05-04 15:44:40 +00:00
svenbarth
e3ea46d1cb
* disable SSE optimized Frac() for Win64; it has a much lower supported range than the existing Pascal implementation which uses Int() (in essence Round() and Trunc() should be corrected as well)
...
git-svn-id: trunk@38856 -
2018-04-27 15:18:36 +00:00
pierre
4026644278
Add explicit registers to fcomip to allow compilation with clang (bug report 33547)
...
git-svn-id: trunk@38661 -
2018-04-02 17:14:42 +00:00
svenbarth
5f08e47d84
+ add an SSE2 implementation of Frac() (the existing Trunc() and Round() implementations are also SSE2, so nothing special to keep in mind here)
...
git-svn-id: trunk@36253 -
2017-05-19 14:59:23 +00:00
svenbarth
b58c3ed212
+ add guards for consistency with the code for Extended
...
git-svn-id: trunk@36252 -
2017-05-19 14:57:36 +00:00
sergei
cad30aaee9
* x86_64: Modified fpc_exp_real so it does not use 'sahf' assembler instruction, which may be not present on early 64-bit capable x86 processors. Mantis #29583 .
...
git-svn-id: trunk@33205 -
2016-03-07 22:39:34 +00:00
Jonas Maebe
e4647ac133
- removed "nostackframe" from floating point helpers for llvm, as FPC
...
doesn't handle nostackframe correctly in combination with extended
parameters on x86 (with or without llvm)
git-svn-id: trunk@32598 -
2015-12-05 18:03:57 +00:00
Jonas Maebe
6909523b70
* handle atan, sqrt, ln, sin and cos in the x86 RTL for llvm
...
o there are llvm intrinsics for all of these except for atan,
but these obey "the same rules as the equivalent libc functions"
and I first have to investigate whether these libc functions
behave the same as our FPC implementations
git-svn-id: trunk@31657 -
2015-09-12 23:33:57 +00:00
sergei
f456bb3a25
* Re-implement ln(x) also for x87-based x86_64 targets (counterpart of r27367,r27518,r27552,r27553 for i386 target).
...
git-svn-id: trunk@29131 -
2014-11-23 21:37:32 +00:00
sergei
b16c6f8ced
* i386 and x86_64 changes for Delphi compatibility:
...
* 'mxcsr' variable made public and renamed to DefaultMXCSR.
* GetSSECSR and SetSSECSR renamed to GetMXCSR and SetMXCSR, respectively. Previous names continue to exist as deprecated aliases.
git-svn-id: trunk@27656 -
2014-04-25 15:10:12 +00:00
sergei
217bac7a0b
- Removed fpc_pi_real compilerproc, it is no longer used. At least two releases (2.6.2 and 2.6.4) emit Pi directly as a constant.
...
git-svn-id: trunk@27500 -
2014-04-07 09:16:24 +00:00
sergei
2981f73aaa
- Removed redundant functions "power", they were neither used nor accessible through interface. The actual function "power" is located in Math unit.
...
git-svn-id: trunk@27499 -
2014-04-07 09:04:13 +00:00
sergei
2b1e5f7014
* Mantis #17273 : don't generate x87 instructions on win64 target.
...
git-svn-id: trunk@25995 -
2013-11-08 13:31:07 +00:00
sergei
90d66595c2
* typecheck_real_to_currency: generate inline round() node instead of direct call to fpc_round_real, this allows target-specific processing to take place and possibly emit more efficient code.
...
* Provide x86_64 SSE versions of fpc_trunc_real and fpc_round_real, strictly they are not necessary after the above change to code generation, but it still reduces size of system unit by avoiding compilation of related generic code.
git-svn-id: trunk@25735 -
2013-10-10 12:46:51 +00:00
sergei
db045c4871
* Define FPC_ABSMASK_SINGLE and FPC_ABSMASK_DOUBLE without using assembler.
...
git-svn-id: trunk@25371 -
2013-08-26 07:32:41 +00:00
sergei
ea571ba1a3
* Use variables instead of direct indexing into stack, eliminates warnings at compilation.
...
git-svn-id: trunk@19478 -
2011-10-13 08:19:09 +00:00
sergei
369725f2c4
* Get8087CW: Make sure that high bits of result are clear.
...
git-svn-id: trunk@19465 -
2011-10-11 10:34:52 +00:00
sergei
4a3c7f7ef4
* Get8087CW: use fixed stack.
...
* Set8087CW: updated to i386 version, eliminates need of PIC code in assembler.
* GetSSECSR: updated similar to Get8087CW, it is somewhat shorter that way.
git-svn-id: trunk@19463 -
2011-10-11 09:08:09 +00:00
Jonas Maebe
a302cbeff1
* more Win64 -> FPC_HAS_TYPE_EXTENDED check conversions
...
git-svn-id: trunk@15534 -
2010-07-07 19:02:18 +00:00
yury
bba2b87064
* Use RIP relative symbol addressing in assembler blocks. Finally bug #13657 is fixed.
...
git-svn-id: trunk@13137 -
2009-05-13 10:45:54 +00:00
florian
50b63884cb
+ applied a fix similar to 11820 to x86-64
...
git-svn-id: trunk@11821 -
2008-09-25 19:31:16 +00:00
Jonas Maebe
032352d98b
+ darwin/x86_64 support
...
git-svn-id: trunk@9180 -
2007-11-10 18:33:09 +00:00
florian
538e1bb8e8
* fixed broken Math.SetExceptionMask
...
git-svn-id: trunk@5858 -
2007-01-08 22:46:12 +00:00
florian
47fac4ee6e
* moved *SSECSR to system unit
...
* exposed cpu feature detection on i386 from system unit
+ SafeLoadLibrary
git-svn-id: trunk@3481 -
2006-05-11 19:13:54 +00:00
florian
89f8474388
* unified and moved some win32/win64 stuff
...
+ more units on win64 compile
git-svn-id: trunk@3131 -
2006-04-02 20:52:17 +00:00
florian
8711adb9d1
* fixed exp to be pic safe
...
git-svn-id: trunk@1573 -
2005-10-23 13:37:08 +00:00
florian
78abb1603d
* synched with i386
...
git-svn-id: trunk@1373 -
2005-10-13 20:59:00 +00:00
florian
6a279f8569
* small compilation fixes for win64 system unit
...
git-svn-id: trunk@373 -
2005-06-10 17:04:02 +00:00
florian
ad3b9b9464
* windows rtl restructuring to share code between win32 and win64
...
* BeginThread can take a qword on 64 bit targets as stacksize
git-svn-id: trunk@287 -
2005-06-08 19:08:49 +00:00
michael
3a2eaa94b1
+ Removed INTERNCONSTINTF define
...
git-svn-id: trunk@267 -
2005-06-07 22:04:18 +00:00
michael
93ba0409be
+ Removed HASCOMPILERPROC define
...
git-svn-id: trunk@265 -
2005-06-07 21:41:02 +00:00
peter
4ace790492
* remove $Log
...
git-svn-id: trunk@231 -
2005-06-07 09:47:55 +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
florian
58202bd7d5
* some ifdef'ed pic code
2005-04-25 09:40:27 +00:00
peter
e417e34496
* truncate log
2005-02-14 17:13:06 +00:00
peter
29ed3f6d29
* add fnclex before loading old CW
2005-01-30 18:41:53 +00:00
peter
7fb8c3dfbd
* signal cleanup for linux
...
* sigactionhandler instead of tsigaction for bsds
* sigcontext moved to cpu dir
2005-01-30 18:01:15 +00:00