Commit Graph

24 Commits

Author SHA1 Message Date
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
30c3842802 * MIPS: reworked FPU initialization to be consistent with other targets.
git-svn-id: trunk@27199 -
2014-03-20 11:30:24 +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
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
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
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
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
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
8b339ded7a * started to fix the mips(el) linux rtl
git-svn-id: trunk@20255 -
2012-02-04 21:25:53 +00:00