Commit Graph

120 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
fdd0ebeed9 * switch PowerPC 32 RTL to provide atomic intrinsic helpers instead of Interlocked* functions 2024-12-12 22:05:17 +01:00
florian
a0cae50af6 * rtl part of #35433 2024-05-01 23:15:12 +02:00
Michael VAN CANNEYT
abd1e72e9d * 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
Károly Balogh
09f0a3dd63 powerpc: also drop DCBZ usage on AmigaOS4, as it runs on hardware with other than the assumed cacheline size
git-svn-id: trunk@45802 -
2020-07-17 21:28:49 +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
pierre
7778c7d8ae Disable dcbz code for AIX also
git-svn-id: trunk@38975 -
2018-05-11 15:49:35 +00:00
pierre
a69942852f Fix to avoid access of memory outside of array size if overlap is true
git-svn-id: trunk@38674 -
2018-04-03 21:02:49 +00:00
Károly Balogh
0b561b6c8f powerpc: enable SUPPORT_GET_FRAME
git-svn-id: trunk@36698 -
2017-07-08 23:51:55 +00:00
Károly Balogh
df0ac8cb02 powerpc: MorphOS recently started supporting the G5s, and it runs the G5s in non-G4-compatible mode much like Linux, therefore the DCBZ code seems to fail on them. So disable DCBZ usage for MorphOS as well.
git-svn-id: trunk@31132 -
2015-06-20 22:51:53 +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
sergei
94a045aa3d * Moved declarations of TFPURoundingMode,TFPUExceptionMask and TFPUPrecisionMode to System unit. Declarations in Math unit changed to aliases.
* Changed type of softfloat_exception_mask and softfloat_exception_flags to TFPUExceptionMask, softfloat_rounding_mode to TFPURoundingMode.
- Cleaned out numerous conversions happening when getting/setting exception mask and rounding mode.

git-svn-id: trunk@27215 -
2014-03-20 22:44:46 +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
sergei
4ebc34c5e7 * Promoted result type of FPC_PCHAR_LENGTH and FPC_PWIDECHAR_LENGTH to SizeInt.
+ Check for nil pointer in FPC_PWIDECHAR_LENGTH

git-svn-id: trunk@17733 -
2011-06-13 04:59:17 +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
micha
83b7f81f81 + add no-fpu support to compiler/rtl for powerpc-linux (-Cfnone)
git-svn-id: trunk@10422 -
2008-03-02 12:59:02 +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
florian
7da7364ee7 * refactored SysResetFPU into SysInitFPU and SysResetFPU
git-svn-id: trunk@8966 -
2007-10-28 12:06:49 +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
107682e148 * fixed comparedword
* fixed properties

git-svn-id: trunk@8811 -
2007-10-15 10:54:49 +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
florian
fc027d16c5 * syntax error in last commit fixed
git-svn-id: trunk@5966 -
2007-01-14 10:45:21 +00:00
florian
b3a1868ff0 * correct masking of exceptions in genmath code
git-svn-id: trunk@5965 -
2007-01-14 10:44:10 +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
aa8d214759 * 2.0.4 fix: fixed move()/fillchar() for linux, avoiding use of dcbz which causes crashes on G5
git-svn-id: trunk@4137 -
2006-07-09 18:25:41 +00:00
Jonas Maebe
bf1e95e024 + InterlockedCompareExchange (+ changed line endings from dos to unix)
git-svn-id: trunk@3945 -
2006-06-25 18:16:32 +00:00
peter
4c065bce45 * move InterLocked functions to system unit
git-svn-id: trunk@3933 -
2006-06-25 09:26:23 +00:00
Jonas Maebe
5b9f58ef73 * reverted r2037 because of braindead "out" semantics for refcounted
types

git-svn-id: trunk@2045 -
2005-12-24 01:06:05 +00:00
Jonas Maebe
84aab46550 * changed formal "var" paramters of move, movechar0 and fill* into
"out" parameters to avoid wrong "uninitialized" warnings

git-svn-id: trunk@2037 -
2005-12-23 20:59:08 +00:00
tom_at_work
9e7d550455 * fixed last commit (1337) which broke some files in the repository
git-svn-id: trunk@1338 -
2005-10-08 17:23:44 +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
Károly Balogh
ccc29a13f3 * added SysResetFPU, which is required for MorphOS
git-svn-id: trunk@1279 -
2005-10-03 22:49:44 +00:00
Jonas Maebe
4292e7f939 - removed obsolete FPC_MTFSB0_CORRECTED macro
git-svn-id: trunk@487 -
2005-06-24 18:34:58 +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
michael
db5d9d75aa + Removed INTERNCOPY define
git-svn-id: trunk@259 -
2005-06-07 21:11:49 +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
olle
381f243243 * Fixed bug in stack crawling routines for macos 2005-04-28 18:29:01 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
olle
beecc57e21 * Fixed stack frame access for macos 2005-01-31 20:57:41 +00:00
Jonas Maebe
cfeaa8aa65 * some compilation fixes for powerpc after all the internconst and
internproc changes, still crashes with internalerror(88) for ppc1
    on real2str.inc(193,39)
2004-11-20 15:49:21 +00:00
Jonas Maebe
42b6daebee * use "round to nearest" rounding mode again, just like C (affects
results of divisions as well)
2004-11-08 08:54:51 +00:00
Jonas Maebe
94caa0761e * fixed redzone usage in fillchar 2004-10-24 14:43:26 +00:00