Commit Graph

228 Commits

Author SHA1 Message Date
florian
cd8913b88e * improved Compare(D)Word as well
git-svn-id: trunk@17651 -
2011-06-03 20:35:55 +00:00
florian
ceb739fbf5 * improved fillchar for small amounts of data
git-svn-id: trunk@17644 -
2011-06-02 20:54:29 +00:00
florian
b6aa04813e * improved comparebyte for small data amounts
git-svn-id: trunk@17642 -
2011-06-02 20:02:26 +00:00
Jonas Maebe
c14574bb56 * don't change the fpu control word in the initialisation code of dynamic
libraries (mantis #16263, #16801)

git-svn-id: trunk@16347 -
2010-11-14 16:00:25 +00:00
florian
5dae691c96 * implementation of bit scan intrinsics by Richard Vida, resolves #17592
git-svn-id: trunk@16174 -
2010-10-16 15:03:30 +00:00
florian
7dc4b6ecc1 + adds mcount calls to syscall assembler helpers for i386 and x86-64, resolves #17140
git-svn-id: trunk@15812 -
2010-08-15 09:11:06 +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
92ff07deaf * several fixes by Pierre Pede (parts of his patch to mantis #12492)
o fixed gprof under linux/i386
    o fixed pic-compilation of the linux/i386 rtl
    o initialisation of linux shared libraries is now possible with pic-code

git-svn-id: trunk@13703 -
2009-09-12 21:57:41 +00:00
Jonas Maebe
0597c300f4 * applied feature dependencies patch by Sven Barth from mantis #13673 :
o i386/i386.inc used a function (fpc_truely_ansistr_unique) is now
     only included if FPC_HAS_FEATURE_ANSISTRINGS is enabled (all other
     platforms use the Pascal-only implementations)
   o inc/heap.inc relied on threading
   o inc/threads.inc relied on exceptions, consoleio and stackcheck
   o inc/system.inc: just a feature-related "variable not used"-hint

git-svn-id: trunk@13121 -
2009-05-09 20:08:57 +00:00
Jonas Maebe
22aacd2a60 * return 0 for length(pchar(0)), like Kylix does (using corrected and
multi-platform version of patch in r12461, which caused the i386 version
    of fpc_pchar_length to return 0 in all cases, which used tabs, and did
    not include a test case)

git-svn-id: trunk@12464 -
2009-01-01 22:02:17 +00:00
ivost
8046f82416 * Undoing change commited in r12461, it looks like a feature and not a bug ;)
git-svn-id: trunk@12463 -
2009-01-01 21:45:42 +00:00
ivost
fe3263eb08 * i386 version of fpc_pchar_length did not accept NIL strings, maybe we have to check other implementations also
git-svn-id: trunk@12461 -
2009-01-01 21:18:49 +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
florian
20e632c8d8 * reorganized ror/rol defines
git-svn-id: trunk@11472 -
2008-07-28 13:03:18 +00:00
florian
1afb1aa9cc + ror/rol functions
+ internal compiler support for ror/rol on i386

git-svn-id: trunk@11466 -
2008-07-27 17:12:32 +00:00
Jonas Maebe
f00beea41c * fixed i386/linux rtl compilation and functionality when compiled
without regcall

git-svn-id: trunk@11024 -
2008-05-21 15:20:13 +00:00
yury
5dc6e54925 * Removed inline for procedures with assembler or formal parameters, since inline is not supported for them (compiler warns about that now). Even if there is no inline modifier in interface declaration of procedure, it is possible to specify inline in procedure implementation if needed (e.g. for generic implementations) and inlining will work for them.
git-svn-id: trunk@10629 -
2008-04-12 11:37:49 +00:00
daniel
0d78460e2e * Disable int_str again.
git-svn-id: trunk@9816 -
2008-01-20 14:47:48 +00:00
peter
2a479654f1 * remove asm for simple math functions so the generic inlined function is
taken. This generates smaller optimized code

git-svn-id: trunk@9796 -
2008-01-19 20:23:27 +00:00
daniel
624bb8e7e1 * Add win32 workaround suggested by Peter.
git-svn-id: trunk@9795 -
2008-01-19 19:32:03 +00:00
peter
f70219cdd8 * add align directives to int_str
git-svn-id: trunk@9793 -
2008-01-19 16:32:39 +00:00
daniel
d12e107800 * Use fpc_geteipasebx.
git-svn-id: trunk@9792 -
2008-01-19 15:24:36 +00:00
daniel
220565fb94 * Remove unused lea from skip loop.
git-svn-id: trunk@9789 -
2008-01-19 08:33:48 +00:00
Jonas Maebe
8c45c66e13 * removed accidentally committed global disable of assembler int_str
* fixed compilation of int_str on darwin/pic
  * disabled int_str for darwin because it crashes

git-svn-id: trunk@9785 -
2008-01-18 23:09:37 +00:00
Jonas Maebe
95c991872b + added exeinfo to implicit units so make install works again
git-svn-id: trunk@9784 -
2008-01-18 23:03:38 +00:00
daniel
b8fdbb1055 * Some final tweaks to asm int_str.
git-svn-id: trunk@9782 -
2008-01-18 22:21:49 +00:00
daniel
f94d457429 * Add Darwin PIC support to assembler int_str again.
* Make it respect the open string boundary
  * Activate it again

git-svn-id: trunk@9781 -
2008-01-18 22:12:16 +00:00
daniel
2ce992b4ae - Disable asm str_int again now that testsuites have run.
git-svn-id: trunk@9665 -
2008-01-07 07:45:58 +00:00
daniel
47c2cc095b * Make str_int pic proof.
git-svn-id: trunk@9661 -
2008-01-06 22:41:05 +00:00
daniel
6e2af37c48 Convert str_int to ATT assembler and activate it.
git-svn-id: trunk@9659 -
2008-01-06 21:29:31 +00:00
daniel
0cfdde094d - Disable assembler implementations of str_int because of mysterious
cycle failure on Win32.

git-svn-id: trunk@9593 -
2007-12-30 21:27:05 +00:00
daniel
d8bffd27fc - Intergrate i386/strlen.inc and remove it.
+ int_str assembler implementations for i386
 + fpc_shortstr_to_shortstr assembler implementation for ARM
 + fpc_shortstr_assign assembler implementation for ARM
 + fpc_Pchar_length assembler implementation for ARM

git-svn-id: trunk@9582 -
2007-12-30 11:19:10 +00:00
florian
d08abbca46 * forgotten commit
git-svn-id: trunk@9334 -
2007-11-25 20:49:57 +00:00
yury
4662eb98fc * Fixed warnings.
git-svn-id: trunk@9102 -
2007-11-03 12:22:54 +00:00
florian
7da7364ee7 * refactored SysResetFPU into SysInitFPU and SysResetFPU
git-svn-id: trunk@8966 -
2007-10-28 12:06:49 +00:00
florian
5a3f71754a - removed odd assembler implementation, using the inline variant usually creates better code
git-svn-id: trunk@8901 -
2007-10-21 19:53:11 +00:00
florian
7878f0feb3 * made all fpc_*_to_shortstr helpers a procedure, resolves #8580
git-svn-id: trunk@8898 -
2007-10-21 17:33:18 +00:00
Jonas Maebe
cc843f5f62 * fixed comparedword in case len=0
git-svn-id: trunk@8815 -
2007-10-15 13:44:57 +00:00
peter
e8322a83e4 * optimized generic implementations to use pointers instead of
array accesses. This also allows better register variable
    optimizations

git-svn-id: trunk@8742 -
2007-10-07 18:36:18 +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
micha
d95b9082bb * add memory barrier prototypes + implementation for i386 and sparc + use lwsync for powerpc64
git-svn-id: trunk@8240 -
2007-08-07 20:37:08 +00:00
florian
6f6e60b723 * improved SSE check by Martin Schreiber
git-svn-id: trunk@8040 -
2007-07-13 21:16:48 +00:00
florian
80d55022e9 * tried to fix SSE OS support detection
git-svn-id: trunk@7553 -
2007-06-02 19:26:06 +00:00
ivost
2c22173534 * Added InterlockedCompareExchange64 for i386 (supported over cmpxchg8b instruction)
git-svn-id: trunk@6753 -
2007-03-09 09:29:17 +00:00
marco
57cfd89fbd * Linux 64-bit FS patch from neli for FPC_USE_LIBC
git-svn-id: trunk@6517 -
2007-02-16 22:16:54 +00:00
peter
cd767cf5c8 * i386 uses generic fpc_compare_shortstr_equal
git-svn-id: trunk@6335 -
2007-02-04 16:24:02 +00:00
Jonas Maebe
5ea26c5f5f * fixed darwin compilation
git-svn-id: trunk@6310 -
2007-02-02 22:48:02 +00:00
florian
bcf65051e3 * detect sse properly on linux, fixes tmask*.pp in the testsuite with -Cfsse2
git-svn-id: trunk@6277 -
2007-01-31 21:51:47 +00:00
daniel
e8050233af + Patch by Thorsten Engler to optimize string comparisons for = and <> cases. (Mantis #8231)
git-svn-id: trunk@6241 -
2007-01-28 10:58:52 +00:00
florian
b3a1868ff0 * correct masking of exceptions in genmath code
git-svn-id: trunk@5965 -
2007-01-14 10:44:10 +00:00