Commit Graph

10992 Commits

Author SHA1 Message Date
nickysn
23b0cf2340 * msdos system unit variable dos_psp renamed PrefixSeg for TP7 compatibility
git-svn-id: trunk@28047 -
2014-06-24 10:58:59 +00:00
nickysn
1910177cf0 + added heapmax support to the $M directive on i8086-msdos. It is currently
only implemented in the near data memory models. The far data models support
  is still a TODO.

git-svn-id: trunk@28039 -
2014-06-23 20:17:17 +00:00
marco
bcd13a856d * Some convenience permission constants, patch by Graeme #26373
git-svn-id: trunk@28038 -
2014-06-23 15:35:43 +00:00
nickysn
95449a3fd4 * fixed yet another dos_psp<>dgroup bug in the startup code for .exe files in
the tiny memory model

git-svn-id: trunk@28033 -
2014-06-22 20:12:55 +00:00
nickysn
3164a10d9d * fixed a bug in the startup code for tiny memory model, which caused the
program MCB address not to be calculated correctly, when the program is a tiny
  model .exe file, leading to possible memory corruption. Previously, the code
  assumed that dos_psp=CS, but that's only true for tiny .com files; tiny .exe
  files have a 256-byte gap between dos_psp and CS.

git-svn-id: trunk@28032 -
2014-06-22 11:06:57 +00:00
nickysn
cd6b15f49a * slight optimization to the small and medium model startup code
git-svn-id: trunk@28031 -
2014-06-22 09:42:30 +00:00
Jeppe Johansen
0dc39b5d63 Applied patch from Michael Ring that adds some startup code for some new stm32f0 and stm32f1 controllers, and fixes naming on some LPC ARMv6m controllers.
git-svn-id: trunk@28009 -
2014-06-20 06:49:04 +00:00
nickysn
1295b4abf7 - removed the call to CheckNullArea from the exit code for the tiny memory model
git-svn-id: trunk@28006 -
2014-06-19 21:47:46 +00:00
michael
a0f4ff655e * Small optimisation in strnew from Luiz Americo (bug ID 26365)
git-svn-id: trunk@28005 -
2014-06-19 17:40:21 +00:00
nickysn
7cfd7a66cd + create a special 'heap' segment with reserved space equal to heapsize (i.e.
the value set by -Ch or the second parameter to the $M directive). This is
  equivalent to the heapmin value in Turbo Pascal 7 and ensures that the program
  has at least this amount of heap space available (otherwise DOS will show a
  'not enough memory' error and will refuse to load the program).

git-svn-id: trunk@28002 -
2014-06-19 14:14:01 +00:00
sergei
04d8e8a5dc * On 64-bit targets, handle abs(int64) internally, using the same code as for abs(longint), i.e. without branching. Both generic and x86-specific pass 2 code is already suitable for different operand sizes, only type checking needs removal of excessive conversions to 32 bits.
git-svn-id: trunk@27989 -
2014-06-17 18:45:11 +00:00
nickysn
2dc8839af5 * set class=data to all data segments/sections on i8086
git-svn-id: trunk@27957 -
2014-06-14 16:01:22 +00:00
nickysn
8ad63788c7 - do not emit a stack segment in the tiny memory model
- rm the reference to the top of the stack segment from the startup code in tiny
  model

git-svn-id: trunk@27956 -
2014-06-14 15:56:44 +00:00
nickysn
73d7f2aa18 * let the compiler generate the stack segment in i8086 near data memory models
as well. Even though, in these models, the stack is dynamically allocated
  (because it goes on top of the heap, but the heap is variable size), there are
  still benefits:
  1) the program will run on a larger stack during initialization, before the
     actual stack (and heap) are ready
  2) in cases, when the system is extremely low on memory, DOS will reject to
     load the program if there's not enough memory for the stack the program
     requires. This way the startup code can be further simplified by omitting
     the 'not enough memory' check in the future (when we add the minimum heap
     size to the executable reserved space as well).

git-svn-id: trunk@27903 -
2014-06-08 21:14:57 +00:00
Károly Balogh
e89669bedc rewrite SpinLock to still work without the need to accidentally disable optimizations for a large part of the classes unit
git-svn-id: trunk@27864 -
2014-06-06 11:05:57 +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
Jonas Maebe
bee20f79f0 * save original widestring manager on entry and restore it on exit, so that
units finalized afterwards won't try to use the finalized cwstring
    manager (mantis #26252)

git-svn-id: trunk@27842 -
2014-06-01 18:30:49 +00:00
Jonas Maebe
5bc6a2e934 * synchronised JVM versions of generic include files with current generic
versions

git-svn-id: trunk@27839 -
2014-06-01 14:13:40 +00:00
marco
0a0739b916 * improved winexec comment, updated copyright year and add minor comment to gettickcount64
Mantis #26238

git-svn-id: trunk@27834 -
2014-05-31 14:47:31 +00:00
sergei
a8bc2085e8 - Delete strpas.inc files, no longer used, their contents has been merged into corresponding $(CPU).inc.
git-svn-id: trunk@27833 -
2014-05-31 00:49:40 +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
a94187c79b - ARM: cleaned out code corresponding to FPC_STRTOSHORTSTRINGPROC not defined (obsolete and removed from other targets long ago).
git-svn-id: trunk@27831 -
2014-05-31 00:38:01 +00:00
nickysn
d4565aeec2 * in i8086 far data memory models add reference to the beginning of stack from
the startup code, so the object module, containing the stack segment doesn't
  get smartlinked away

git-svn-id: trunk@27824 -
2014-05-29 14:57:48 +00:00
nickysn
3cc8ff11e3 + generate the stack segment for i8086 far data memory models from within fpc
itself (instead of having a fixed 16k stack in the startup code). This allows
  setting the stack size in these models with the -Cs option.

git-svn-id: trunk@27820 -
2014-05-27 23:29:50 +00:00
sergei
22e099d000 * sqrt(real): for targets with emulated floating point, invoke float64_sqrt or float32_sqrt from softfpu code. Testing on ARM CPU shows that float64_sqrt executes about twice faster and offers better accuracy than fpc_sqrt_real from genmath.inc.
* softfpu.pp: changed float64_sqrt into a function, so it is consistent with other compiler-invoked routines.

git-svn-id: trunk@27809 -
2014-05-21 15:07:13 +00:00
sergei
fc5f45f65c * sqr(real) and sqrt(real): remove typeconv node inserted by initial call processing (see explanation in comments), allowing these functions to be evaluated using precision of argument. In particular, sqrt(single) and sqrt(double) now emit 'sqrtss' and 'sqrtsd' instructions on x86 targets with -Cfsse3. Non-x86 targets already have the necessary support in code generators.
* abs(real): handle the same way as sqrt and sqr, i.e. without casting to bestreal and back.

git-svn-id: trunk@27808 -
2014-05-21 14:53:47 +00:00
Tomas Hajny
cedf009d3c * fix for SIGSEGV in Exec without command line parameters revealed in discussion for #26160
git-svn-id: trunk@27804 -
2014-05-18 20:37:40 +00:00
Tomas Hajny
bb0a670e9e * fix for bug #26160
git-svn-id: trunk@27803 -
2014-05-18 20:02:10 +00:00
michael
6fcff07e50 * SizeInt -> SizeUInt for strPLCopy (Bug ID 26156)
git-svn-id: trunk@27802 -
2014-05-18 07:35:33 +00:00
michael
046b7626dd * Reworked patch from Werner Pamler (bug ID 26168) to add support for periods
git-svn-id: trunk@27801 -
2014-05-18 07:24:59 +00:00
sergei
2f8a1706e6 * x86_64-*bsd: cleaned out handwritten assembler threadvar access from syscall code.
git-svn-id: trunk@27793 -
2014-05-15 16:29:50 +00:00
Jonas Maebe
55d62d6821 * removed units moved in r27349 (patch by Olivier Coursiere, mantis #26148)
git-svn-id: trunk@27784 -
2014-05-14 13:06:24 +00:00
pierre
d4368c55b9 Fix windows problem with FindResource function
git-svn-id: trunk@27782 -
2014-05-14 06:11:53 +00:00
michael
81a95f6f1b * Fix problem with IE for inlined taking address (@S[1]) of empty const
git-svn-id: trunk@27781 -
2014-05-13 17:58:31 +00:00
michael
ddf6de1b29 * Implemented ReadComponentRes(ex) for bug #21785
git-svn-id: trunk@27777 -
2014-05-11 18:28:50 +00:00
michael
042e6243a3 * Fixed bug #20522, adapted patch from Bart Broersma
git-svn-id: trunk@27775 -
2014-05-11 18:04:52 +00:00
michael
d9d1a7fa5d * Fix bug ID #18550
git-svn-id: trunk@27774 -
2014-05-11 17:14:20 +00:00
michael
17e34abc62 * Fix for bug ID #18551
git-svn-id: trunk@27773 -
2014-05-11 17:02:56 +00:00
michael
a397b1b480 * Added (modified) patch for appending 0:0:0 in case of full date (Denis Golovan, bug ID #25109)
git-svn-id: trunk@27772 -
2014-05-11 14:11:44 +00:00
michael
1d9ac3aa9e * Fixed bug #26053
git-svn-id: trunk@27770 -
2014-05-11 13:28:00 +00:00
michael
66f711ad09 * Fixed bug ID #26070
git-svn-id: trunk@27767 -
2014-05-11 12:12:12 +00:00
florian
bb129a6d6c * renamed overloaded fma functions into functions encoding explicitly the type
git-svn-id: trunk@27766 -
2014-05-11 11:51:41 +00:00
michael
d5a88caecd * Do not display error message if NoErrMsg is set.
git-svn-id: trunk@27765 -
2014-05-11 10:19:04 +00:00
michael
4258d71a2d * Fixed bug #26053 (NoErrMsg variable for Delphi compatibility)
git-svn-id: trunk@27764 -
2014-05-11 10:15:29 +00:00
michael
276a273e6c * Const string in StrP(L)Copy (bug report 26100)
git-svn-id: trunk@27763 -
2014-05-11 10:11:41 +00:00
michael
75c6d67bc7 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27755 -
2014-05-10 15:31:41 +00:00
michael
a1c9a98e68 * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27754 -
2014-05-10 15:31:22 +00:00
michael
bbfd061dcf * Extention -> extension (By Reinier, bug ID #25979)
git-svn-id: trunk@27753 -
2014-05-10 15:30:57 +00:00
michael
47fd732236 * Fix StrToDate incompatibility with delphi in case of trailing whitespace
git-svn-id: trunk@27745 -
2014-05-10 13:41:06 +00:00
Károly Balogh
fbc7b3d89a fixed some recently added external vs. public mixup, so Amiga binaries even link again
git-svn-id: trunk@27736 -
2014-05-04 23:11:38 +00:00