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