Commit Graph

68 Commits

Author SHA1 Message Date
pierre
d1e091d5a3 Use .byte substitutes for ldmxcsr and stmxcsr instructions
if OLD_ASSEMBLER macro is defined.

  Do not use PIC code for fpc_exp_real if OLD_ASSEMBLER is defined
  (this generates unsupported relocations for GNU assembler 2.6 used by EMX)

git-svn-id: trunk@37009 -
2017-08-21 13:29:29 +00:00
sergei
17256e8387 * fpc_exp_real: replaced pushing immediate values on stack with Darwin-style PIC. This change increases performance on Intel E7200 almost twice. On AMD CPUs performance increase is not that large, but still noticeable.
git-svn-id: trunk@33131 -
2016-02-28 16:03:02 +00:00
sergei
fc5f45f65c * sqr(real) and sqrt(real): remove typeconv node inserted by initial call processing (see explanation in comments), allowing these functions to be evaluated using precision of argument. In particular, sqrt(single) and sqrt(double) now emit 'sqrtss' and 'sqrtsd' instructions on x86 targets with -Cfsse3. Non-x86 targets already have the necessary support in code generators.
* abs(real): handle the same way as sqrt and sqr, i.e. without casting to bestreal and back.

git-svn-id: trunk@27808 -
2014-05-21 14:53:47 +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
6810d643c4 * Fixed exp() result for +-Inf input, must be +Inf or 0, not NaN. This is mathematically correct and consistent with generic implementation of this function.
git-svn-id: trunk@27553 -
2014-04-12 21:18:57 +00:00
sergei
57c762c8d2 + Inserted license header for AMath routines.
git-svn-id: trunk@27552 -
2014-04-12 20:45:44 +00:00
sergei
bd58adfcc9 + Added credits for functions reused from AMath/DAMath libraries.
git-svn-id: trunk@27518 -
2014-04-10 20:29:49 +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
d251c131a5 * i386: replaced fpc_exp_real with a port from AMath library. It has better accuracy and is faster on CPUs that suffer penalties from changing x87 control word.
git-svn-id: trunk@27367 -
2014-03-30 09:41:06 +00:00
florian
558cf3ef87 * reset FPU properly after an exception, resolves #12214
git-svn-id: trunk@11820 -
2008-09-25 19:15:54 +00:00
Jonas Maebe
c35e0bf712 - removed fclex at the end of fpc_exp_real because it makes that routine 10+
times slower on P4/Athlon XP cpus, and removing it does not cause any test
    suite regressions

git-svn-id: trunk@10284 -
2008-02-10 21:49:52 +00:00
yury
7230661978 * Fixed warnings about EBP based access.
git-svn-id: trunk@9111 -
2007-11-03 17:09:39 +00:00
Jonas Maebe
f51bac256d * made pic-safe (by simply not accessing global variables from
assembler code anymore, as I don't see how to easily support
    PIC access to global variables for Darwin/i386)

git-svn-id: trunk@8663 -
2007-09-27 15:08:09 +00:00
florian
1cd41b68f7 * compiler handled round/trunc for x86
git-svn-id: trunk@6827 -
2007-03-13 20:23:24 +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
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
f94047b703 * some floating point routines improved 2005-03-13 17:14:46 +00:00
florian
3e5f68d360 * C. Western: utf-8 reading from resource files 2005-03-09 20:50:11 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
peter
14eb8f59b4 internconst, internproc and some external declarations moved to interface 2004-11-17 22:19:04 +00:00
peter
783f8068a5 * add fclex for fpu exceptions to round/trunc 2004-07-09 23:06:11 +00:00
Jonas Maebe
89d4ca293b * fix power() for negative base 2003-11-29 16:40:12 +00:00
michael
8373e40e10 + Patch from Johannes Berg for bug #2759 2003-11-24 21:57:43 +00:00
peter
8f8b47194a * REGCALL define added 2003-11-11 21:08:17 +00:00
peter
cba9b5206d * save edi,esi,ebx 2003-09-08 18:21:37 +00:00
peter
a7691d8bb8 * fpc_round added, needed for int64 currency 2003-04-23 21:28:21 +00:00
carl
c430df4732 * round bugfix with -Or switch 2003-02-05 19:53:17 +00:00
peter
dd08014a49 * use generic int64 power 2003-01-15 00:45:17 +00:00
peter
166fe37203 * power returns int64 2003-01-15 00:40:18 +00:00
peter
892e9c864a * i386 fpu controlword functions added 2003-01-03 20:34:02 +00:00
peter
ecc3b24fd4 * round returns int64 2002-10-06 21:26:17 +00:00
peter
9f31783a0a * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
peter
21a8c2cc8e * merged fixes from 1.0.x 2001-12-26 21:03:56 +00:00
peter
e7c86006db * m68k updates merged 2001-07-30 21:38:54 +00:00
peter
e150c46c78 * remove warnings 2001-04-13 22:26:32 +00:00
florian
1a2851eb47 * a lot of small changes:
- setlength is internal
     - win32 graph unit extended
     ....
2000-10-21 18:20:17 +00:00
michael
586c4cea50 + Conditionals fixed 2000-07-14 10:33:09 +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
pierre
a41bd45aad * 0**n where n<>0 is 0; 0**0 generates RTE 207 2000-05-02 10:37:50 +00:00
pierre
d7346825ee changed to get nasm to compile system 2000-04-07 21:29:00 +00:00
florian
2eb62408ae * disabled FIXED data type per default 2000-02-15 14:36:57 +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