Commit Graph

84 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
2e54ad65fb * switch SPARC 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
Jonas Maebe
0758aa1143 FPU exception mask: generlised system unit interface 2022-10-17 19:43:01 +00:00
pierre
3362abb30c * Set softfloat_rounding_mode indise SetRoundMode function for all CPUs.
* SetRoundMode returns previous rounding mode value for all CPUs.

git-svn-id: trunk@48018 -
2021-01-03 21:44:18 +00:00
pierre
8cf26b7a0f Fix conversion between TFPURoundMode and bits of get_fsr according to SPARC-V8 specifications
git-svn-id: trunk@45781 -
2020-07-13 14:40:09 +00:00
florian
ff86c80176 * cpu specific header file for the system unit: cpuh.inc, moved several declarations into it
git-svn-id: trunk@37542 -
2017-11-01 16:33:30 +00:00
Jonas Maebe
e5a1231931 * updated FSF address (mantis #30198, patch by Paul Gevers)
git-svn-id: trunk@34598 -
2016-10-02 12:56:59 +00:00
sergei
217ab9879c * Enabled internal handling of Abs(longint) for all targets. It has been implemented in cross-platform way ages ago (see tcginlinenode.second_abs_long), but not enabled on MIPS,SPARC and m68k.
- RTL: removed MIPS,SPARC and m68k-specific implementations of Abs(longint), and marked the generic one as  required for bootstrapping purposes only.

git-svn-id: trunk@27857 -
2014-06-05 10:35:51 +00:00
sergei
295e795a0a * SPARC: SetExceptionMask and SetRoundingMode must return the old value of mask/mode respectively, not the new one.
git-svn-id: trunk@27218 -
2014-03-21 06:26:06 +00:00
sergei
7b56c90d82 - MIPS,SPARC and ARM-wince: removed remaining references to softfloat stuff.
git-svn-id: trunk@27204 -
2014-03-20 17:46:01 +00:00
sergei
0255eb880e - Removed mathuh.inc files which are identical for all targets (except m68k, see below), their contents moved into math.pp.
+ m68k/mathu.inc: added stub implementations for missing functions.

git-svn-id: trunk@27180 -
2014-03-18 20:01:15 +00:00
sergei
dd78cd5811 + SPARC: assembler implementation of SarInt64.
git-svn-id: trunk@26467 -
2014-01-15 15:11:40 +00:00
florian
1ea8a397e5 * use membar only for sparcv9(+)
git-svn-id: trunk@23109 -
2012-12-03 21:55:51 +00:00
pierre
141b1340fb + Handle PIC code for unlimited GOT size
git-svn-id: trunk@22478 -
2012-09-27 15:45:54 +00:00
pierre
66b9617ba7 Do not add 8 to NIL values of get_caller_addr
git-svn-id: trunk@22370 -
2012-09-11 08:08:48 +00:00
pierre
39e32a9b3e Do not use nostackframe with local variable in get_fsr function
git-svn-id: trunk@22326 -
2012-09-05 12:24:45 +00:00
pierre
fe97069b12 Correct exceoption mask elements
git-svn-id: trunk@22325 -
2012-09-05 12:24:15 +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
florian
24fea58b92 + initial implementation of iso style gotos in iso mode
* made setjmp/longjmp accessible to the compiler by compiler proc, they are used by the iso goto code

git-svn-id: trunk@15711 -
2010-08-05 19:20:46 +00:00
Jonas Maebe
30a51c2dee + support for the different rounding modes in the generic rounding
routines (mantis #11392)

git-svn-id: trunk@11290 -
2008-06-27 17:20:56 +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
e205481027 * fixed sparc bootstrap
* use -Av9 assembler option so it accepts the memory barrier opcodes

git-svn-id: trunk@8244 -
2007-08-08 09:48:37 +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
Jonas Maebe
4f95f742f4 * fixed get_caller_frame() and get_caller_addr() for nil addresses
git-svn-id: trunk@7470 -
2007-05-25 12:01:28 +00:00
Jonas Maebe
7d44ca0113 * fixed unportable soft float mask handling which broke on big endian
systems after yesterday's set changes

git-svn-id: trunk@7402 -
2007-05-20 10:25:48 +00:00
florian
2d0c27e80d * sparc uses softfloat routines so softfloat exception masking needs to be set properly
git-svn-id: trunk@6888 -
2007-03-16 20:04:39 +00:00
Jonas Maebe
800742939b + sparc InterlockedCompareExchange
git-svn-id: trunk@4334 -
2006-08-03 15:32:59 +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
michael
3a2eaa94b1 + Removed INTERNCONSTINTF define
git-svn-id: trunk@267 -
2005-06-07 22:04:18 +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
michael
ffb55c4254 + Removed VER1_0 defines
git-svn-id: trunk@33 -
2005-05-19 21:14:45 +00:00
fpc
50778076c3 initial import
git-svn-id: trunk@1 -
2005-05-16 18:37:41 +00:00
peter
16b121f8c4 * unblock signal in signalhandler, remove the sigprocmask call
from setjmp
2005-04-24 21:19:22 +00:00
florian
e2fd573a9a * InterlockedDecrement fixed 2005-03-12 18:45:15 +00:00
peter
e417e34496 * truncate log 2005-02-14 17:13:06 +00:00
peter
f4011dabba * solaris updates 2005-02-14 16:32:41 +00:00
peter
ae8b7b153b * include file cleanup 2005-02-13 20:01:37 +00:00
florian
ad3a4a93ef + FPU controll routines in math unit 2005-02-13 18:58:27 +00:00
peter
f089ddabd6 * add $ifdef for move 2005-02-07 22:17:48 +00:00
florian
3abbd722af + getgot function added 2005-01-27 21:26:39 +00:00
peter
7395e7e546 * restore sigprocmask for linux 2005-01-20 16:38:28 +00:00
florian
8591d80cfc * set floating point precision and ieee compliance 2005-01-18 20:37:26 +00:00
peter
7d404ad72d * fix bootstrapping 2004-11-21 19:11:33 +00:00
peter
4d8460ec2f * float routines all use internproc and compilerproc helpers 2004-11-21 15:35:23 +00:00
florian
cf9230e757 * get_frame fixed 2004-11-03 20:53:58 +00:00
florian
a641af80de + added and implemented functions for locked operations 2004-10-14 19:45:39 +00:00