Commit Graph

27 Commits

Author SHA1 Message Date
Sven/Sarah Barth
e94d02a067 * with all existing RTLs switched over to the atomic intrinsics, the define FPC_SYSTEM_INTERLOCKED_USE_INTRIN can be removed again 2024-12-12 22:05:20 +01:00
Sven/Sarah Barth
5346faa02c * switch PowerPC 64 RTL to provide atomic intrinsic helpers instead of Interlocked* functions 2024-12-12 22:05:18 +01:00
florian
a0cae50af6 * rtl part of #35433 2024-05-01 23:15:12 +02:00
Michael VAN CANNEYT
8c39b9376b * Char -> AnsiChar 2023-07-14 17:26:10 +02:00
Jonas Maebe
0758aa1143 FPU exception mask: generlised system unit interface 2022-10-17 19:43:01 +00:00
pierre
008c1436d8 Fix bug report 35937 by simple assembly code change and add test
git-svn-id: trunk@42603 -
2019-08-08 14:10:21 +00:00
sergei
e5f6f9c3a1 - powerpc and powerpc64: cleaned out code corresponding to FPC_STRTOSHORTSTRINGPROC not defined (obsolete and removed from other targets long ago). Also merged strpas.inc files into powerpc*.inc, because by now they are included only once and therefore don't need to be separate files.
git-svn-id: trunk@27832 -
2014-05-31 00:45:21 +00:00
pierre
8469741700 + Added additional addr pointer parameter to
get_caller_frame, get_caller_addr and dump_stack
  with default NIL value to systemh.inc.
  + Added new get_addr function.
  system.inc: Use get_addr and get_frame to call
  HandleErrorAddrFrame instead of HandleErrorFrame
  in several error functions.
  Modify dump_stack to use frame and addr parameters.
  Provide a dummy get_addr function returning nil.
  i386/i386.inc, x86_64./x86_64.inc: Provide real
  implementation of get_addr function.

git-svn-id: trunk@21697 -
2012-06-24 21:22:09 +00:00
Jonas Maebe
5cbe12c622 * don't overwrite the target value of interlockedcompareexchange*() if the
value is different from the comparand (patch by "FVI", mantis #18082)
  * sign extend the loaded value of interlockedcompareexchange() on PowerPC64,
    because the function arguments are longints

git-svn-id: trunk@16475 -
2010-11-29 12:53:10 +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
Jonas Maebe
a527b6b2b4 * optimized ppc memory barrier implementations
git-svn-id: trunk@14803 -
2010-01-25 14:49:33 +00:00
Jonas Maebe
a24db8854c * fixed return value of InterlockedCompareExchange(64) for ppc/ppc64,
bug exposed by tw13281

git-svn-id: trunk@13133 -
2009-05-11 07:26: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
Jonas Maebe
e64b973cf9 * fixed ppc and ppc64 compilation after r8898
git-svn-id: trunk@8906 -
2007-10-21 22:15:19 +00:00
Jonas Maebe
a23d65fa93 * fixed comparedword (same as for ppc32)
git-svn-id: trunk@8813 -
2007-10-15 11:22:03 +00:00
Jonas Maebe
98ad33a0c7 + added lwsync instruction to the compiler
* fixed compilation of ReadDependencyBarrier

git-svn-id: trunk@8243 -
2007-08-08 09:15:48 +00:00
Jonas Maebe
ad43c6a989 * fixed properties
git-svn-id: trunk@8242 -
2007-08-08 09:10:40 +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
micha
7475f656f8 + add memory barrier routines for powerpc/64
git-svn-id: trunk@8179 -
2007-07-28 12:47:48 +00:00
peter
2f0ce31751 * string concat changed from function to procedure to
allow runtime optimization if the destination is the
    same as a source parameter
  * tassignmentnode now sets aktassignmentnode global that can be used
    to use the left node as a destination parameter and
    skip the assignment
  * disabled all cpu specific shortstr concat/append

git-svn-id: trunk@4770 -
2006-10-02 20:00:06 +00:00
tom_at_work
56ba740dd1 * added interlocked*64 methods for successful compilation
* made existing interlocked methods nostackframe

git-svn-id: trunk@4120 -
2006-07-07 20:59:55 +00:00
peter
4c065bce45 * move InterLocked functions to system unit
git-svn-id: trunk@3933 -
2006-06-25 09:26:23 +00:00
tom_at_work
651f34e27c * ppc64: with -Or the compiler now also generates calls to helper functions in the function prolog/epilog instead of multiple stores/loads
* ppc64: moved function prolog/epilog helper code into startup code
* ppc64: added FPU configuration code in math unit (fixes tw3161)

git-svn-id: trunk@1786 -
2005-11-20 01:20:55 +00:00
tom_at_work
88cd832f48 * ppc64/linux: fixed and enabled most assembly helpers
git-svn-id: trunk@1775 -
2005-11-16 20:53:58 +00:00
tom_at_work
3bf1152a9c * ppc64/linux: fixed and enabled some more assembly routines in the RTL
* ppc64/linux: cleaned up several files (mainly proper comments)

git-svn-id: trunk@1757 -
2005-11-15 17:30:15 +00:00
tom_at_work
3f4682400c * fixed basic signal handling for PowerPC64/linux, by updating related types and major code cleanup
git-svn-id: trunk@1364 -
2005-10-12 22:46:13 +00:00
tom_at_work
f7f0f9c426 * makefile adaption to be able to cycle compiler and RTL on PowerPC64 target
* some fixes for PowerPC64 target in the code generator and the RTL
* stabs generation for PowerPC64 is okay now (untested)

git-svn-id: trunk@1337 -
2005-10-08 15:48:39 +00:00