Commit Graph

48 Commits

Author SHA1 Message Date
Pierre Muller
22345e4a28 Fix compilation of mips-linux rtl using 3.2.X compiler 2025-03-10 21:01:54 +00:00
Pierre Muller
610972b26c Fix compilation of rtl for mipsel-ps1 target 2025-02-26 08:16:15 +00:00
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
5a6f7b3e29 * switch MIPS RTL to provide atomic intrinsic helpers instead of Interlocked* functions 2024-12-12 22:05:17 +01:00
Nikolay Nikolov
1b26f5c3a3 - MIPS: removed functions get_fsr and set_fsr from the RTL in case the SoftFPU
is enabled, because they contain inline assembler, containing FPU code
2024-10-02 20:26:01 +03:00
Kirill Kranz
ec2f18f8be compiles cube.pas example 2024-09-29 16:56:18 +03: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
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
sergei
b588b3143a + MIPS: Assembler implementation of FillChar
* Removed commented out assembler implementations of Inclocked(longint) and Declocked(longint) and replaced them with calls to InterlockedIncrement/Decrement, so they actually do the locking.

git-svn-id: trunk@28672 -
2014-09-15 19:41:34 +00:00
sergei
f85a8159ef * compiler/mips/cpuinfo.pas: removed "FPU_" prefixes from FPU names, not necessary because compiler inserts one itself.
* rtl/embedded/system.pp: removed (commented out) FPU initialization from initialization of system unit, was dead code anyway because FPC_HAS_FEATURE_FPU is never defined and "feature FPU" does not exist.
* rtl/mips/*.inc: don't compile FPU instructions if compiling RTL with -CfNONE or -CfSOFT (however, handling these switches for MIPS targets in compiler needs further fixing).

git-svn-id: trunk@28670 -
2014-09-15 18:24:23 +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
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
30c3842802 * MIPS: reworked FPU initialization to be consistent with other targets.
git-svn-id: trunk@27199 -
2014-03-20 11:30:24 +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
1be7ec1dcd * MIPS setjmp/longjmp: save/restore nonvolatile FPU registers and FPU control word.
* Fixed longjmp return value, it should never be zero.

git-svn-id: trunk@25769 -
2013-10-13 21:25:40 +00:00
pierre
22e9cb48dd Fix get_caller_stackinfo function: Addr parameter must also be by var
git-svn-id: trunk@25537 -
2013-09-23 09:51:20 +00:00
sergei
404c3efa58 * MIPS: handle get_frame internally, so it sets pi_needs_stackframe flag on current procedure. This makes possible not to force pi_needs_stackframe on every procedure and thus omit saving/restoring $fp register when it is not necessary.
git-svn-id: trunk@25170 -
2013-07-24 15:25:12 +00:00
sergei
8b97972482 * Typo in r25079.
git-svn-id: trunk@25080 -
2013-07-10 10:46:13 +00:00
sergei
0cea8466a2 MIPS RTL:
+ fixed missing result assignments in SetRoundMode and SetExceptionMask.
* GetRoundMode: provide correct mapping from FSR bits to TRoundingMode.
* SetExceptionMask: simplified.

git-svn-id: trunk@25079 -
2013-07-10 10:44:14 +00:00
sergei
bea46f3403 MIPS RTL:
* Fixed InterlockedXXX routines, hopefully thread-safe now.
+ SarInt64 assembler implementations for both mips and mipsel.

git-svn-id: trunk@25049 -
2013-07-05 14:03:18 +00:00
sergei
8bfef107b3 * TAB characters removed.
git-svn-id: trunk@25004 -
2013-06-28 10:58:22 +00:00
sergei
4c84febfae * InterlockedIncrement/Decrement must return the modified value, not the initial one. Fixes a number of interface memory leaks in MIPS test suite. The functions remain not thread-safe yet.
git-svn-id: trunk@23393 -
2013-01-15 19:17:57 +00:00
pierre
0b63af56aa * Fix nostackframe related problems
git-svn-id: trunk@22719 -
2012-10-18 11:19:27 +00:00
pierre
f2087d01a1 Set register to value parameter of longjmp procedure
git-svn-id: trunk@22531 -
2012-10-03 22:32:21 +00:00
pierre
c234eae68a * cause bits must be clear as flags to avoid a second FPU exception
git-svn-id: trunk@21844 -
2012-07-10 12:31:46 +00:00
pierre
a3bc5eaa3f * Fix spelling error in last commit
git-svn-id: trunk@21722 -
2012-06-26 22:49:34 +00:00
pierre
ef3bbf4c4a Really use get_fsr set_fsr functions
git-svn-id: trunk@21721 -
2012-06-26 22:43:19 +00:00
pierre
ba4122fda8 * Add fpu_XXX constants and use them for fpc_cpuinit procedure
git-svn-id: trunk@21712 -
2012-06-26 16:20:59 +00:00
pierre
48597c64ee * get_caller_stackinfo: set framebp to nil if addr is nil
git-svn-id: trunk@21708 -
2012-06-25 22:43:08 +00:00
pierre
f340ef87e3 * get_addr function renamed to get_pc_addr
+ get_caller_stackinfo procedure added.

git-svn-id: trunk@21707 -
2012-06-25 22:17:49 +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
pierre
5f656be053 * Fix last commit, rame is in register
git-svn-id: trunk@21673 -
2012-06-21 11:59:30 +00:00
pierre
7608182c10 * Frame is in register s8
git-svn-id: trunk@21668 -
2012-06-21 11:48:42 +00:00
pierre
495a6cfebf Merge of rev21558-59-60 by Foxsen
21558:
use inherited first_int_to_real to avoid mixing doubles and singles
it fixes the failure of test/cg/taddcurr.pp

21559:
set default round mode to round nearest instead of round to zero
it fix test/cg/taddcurr.pp

21560:
enable softfpu, default first_int_to_real depends on int64_to_float64/32 etc.
It is needed by the patch of r21558

git-svn-id: trunk@21601 -
2012-06-13 22:39:00 +00:00
pierre
8259e69539 Non thread safe implementation of InterlockedXXX functions
git-svn-id: trunk@21526 -
2012-06-07 23:00:22 +00:00
florian
6b8f452804 * get_frame_*/get_caller_* does not work yet on MIPS
git-svn-id: trunk@21239 -
2012-05-05 18:35:22 +00:00
florian
2c5a2857e5 * Move for MIPS is broken, commented out for now
git-svn-id: trunk@21123 -
2012-04-29 21:31:46 +00:00
pierre
9576664f20 + Add ifdef USE_MIPS_STK2_ASM to disable assmebler code using alterante stack with r23 by default
git-svn-id: trunk@20377 -
2012-02-19 19:00:21 +00:00
florian
806ae36100 * some mips rtl compilation issues fixed
git-svn-id: trunk@20277 -
2012-02-07 22:07:13 +00:00
florian
58fbd386a3 * mips system unit compiles
git-svn-id: trunk@20276 -
2012-02-07 19:39:08 +00:00
florian
a2009af76e * updated MIPS code so the compiler gets through the system unit
git-svn-id: trunk@20259 -
2012-02-05 08:14:46 +00:00
florian
b8f322e0de * continued to fix mips rtl compilation
git-svn-id: trunk@20257 -
2012-02-04 22:52:59 +00:00
florian
8b339ded7a * started to fix the mips(el) linux rtl
git-svn-id: trunk@20255 -
2012-02-04 21:25:53 +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
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
florian
28ac4a8dda * several mips/mipsel related stuff fixed
* regenerated linux makefile to support mipsel

git-svn-id: trunk@14278 -
2009-11-27 15:10:56 +00:00
florian
38c68b58aa + MIPS specific part of the rtl, by David Zhang
git-svn-id: trunk@14255 -
2009-11-22 18:35:03 +00:00