Commit Graph

8328 Commits

Author SHA1 Message Date
florian
e6648da567 * make heaptrc aware of the fact that multi threading could be initialized before heaptrc itself is initialized, this is currently the case for windows dlls
git-svn-id: trunk@14560 -
2010-01-07 13:41:43 +00:00
florian
fb07fe5856 * always assume a multithreaded application when using threadvars in dlls, resolves #14992
git-svn-id: trunk@14557 -
2010-01-06 21:26:49 +00:00
marco
0b4b9b5220 * Windows specific overloads for ExecuteProcess that implements a hack for redir that exists for dos.exec too.
.. but then not using a global variable

git-svn-id: trunk@14556 -
2010-01-06 19:50:09 +00:00
florian
4ddebcbf1c * handle subrange enumeration types in GetEnumValue correctly, resolves #15467
git-svn-id: trunk@14544 -
2010-01-05 16:10:13 +00:00
Károly Balogh
95ccc3ea40 + fixed sysdir.inc to follow recent rtl changes. trunk now cycles again on MorphOS.
git-svn-id: trunk@14542 -
2010-01-04 23:49:46 +00:00
Károly Balogh
99a94573ed + removed empty Beep(); function, uses OnBeep now, sysutils should compile again
git-svn-id: trunk@14541 -
2010-01-04 23:42:16 +00:00
Jonas Maebe
6399bcd4e3 * improve precision of values specified with a decimal point and an exponent
(based on report/hints by Dariusz Mazur)

git-svn-id: trunk@14533 -
2010-01-03 15:56:06 +00:00
florian
31e2f16484 resolves #15453:
* fixes i386 DivMod with negative numbers with a patch from Jonas
* fixes generic DivMod with negative numbers
* test updated

git-svn-id: trunk@14532 -
2010-01-03 14:59:01 +00:00
florian
42ae8bf971 * fixed memory stream compilation on 64 bit targets
git-svn-id: trunk@14523 -
2010-01-02 16:05:57 +00:00
florian
1d1e62fcd0 * .lpi version update
git-svn-id: trunk@14522 -
2010-01-02 15:54:39 +00:00
florian
b5167560c3 * T*MemoryStream now uses PtrInt for sizes and positions so it can be bigger than 2 GB on 64 Bit systems, resolves #15313
git-svn-id: trunk@14513 -
2010-01-01 21:05:18 +00:00
paul
c83fc67e32 compiler: write correct method kind for constructors,destructors and class methods
git-svn-id: trunk@14512 -
2010-01-01 20:22:02 +00:00
paul
db0f23e643 compiler: write not dummy unit name for enumeration and dynamic array rtti
git-svn-id: trunk@14511 -
2010-01-01 19:32:53 +00:00
paul
17bd267141 compiler, rtl: write calling conventions for tkMethod members (issue #0014573)
git-svn-id: trunk@14508 -
2010-01-01 14:36:33 +00:00
Jonas Maebe
b214448b9e * don't access the thread instance after calling DoTerminate to avoid
race conditions in case DoTerminate can cause the thread to be freed
    already. Side-effect: changing FreeOnTerminate in DoTerminate no longer
    has any effects, but this is compatible with the generic code for
    ThreadProc in objpas/classes/classes.inc (patch by Nikolai ZHUBR)

git-svn-id: trunk@14504 -
2009-12-30 14:46:56 +00:00
paul
c025471433 rtl: fix SetPropValue/GetPropValue:
- raise a ERangeError in SetPropValue when passed value is out of property range
  - handle QWord values both in SetPropValue and GetPropValue

git-svn-id: trunk@14500 -
2009-12-30 00:41:44 +00:00
paul
5cc182ac07 rtl: fix FormatFloat to skip first spaces
git-svn-id: trunk@14490 -
2009-12-28 15:53:35 +00:00
florian
616289f1c8 * Winsock2.GROUP must be of type u_int, resolves #15254
git-svn-id: trunk@14483 -
2009-12-26 22:18:37 +00:00
florian
4faf2e9f0f * cleaned up redundant declarations of types like PP(P)Char/Byte and moved them to the system unit
git-svn-id: trunk@14481 -
2009-12-26 20:47:24 +00:00
florian
b42b96752c * linux rtl contains target cpu specific files
git-svn-id: trunk@14480 -
2009-12-26 20:41:26 +00:00
Jonas Maebe
2d2465aac4 * disabled the use of samevalue() when comparing float variants, because
a) it's Delphi-incompatible
     b) when a tdatetime property is obtained via GetPropValue(), then
        it will be a varfloat rather than a vardate, and there full
        precision certainly is required (mantis #15296)
  - since DoVarCmpFloat() is now identical to DoVarCmpDate(), removed
    DoVarCmpFloat

git-svn-id: trunk@14472 -
2009-12-23 21:30:58 +00:00
florian
dab642986e * patch by Sergei Gorelkin, fixes several issues with implements, resolves #15209
git-svn-id: trunk@14466 -
2009-12-23 16:23:19 +00:00
florian
8cecea9b53 * GetEnumName handles subrange types correctly, resolves #15377
git-svn-id: trunk@14461 -
2009-12-22 11:36:47 +00:00
florian
737514c434 * win crt unit returns #13 for numeric enter as well, resolves #13203
git-svn-id: trunk@14459 -
2009-12-21 09:59:04 +00:00
florian
cc0d946f16 * fixes bootstrapping with 2.2.4
git-svn-id: trunk@14442 -
2009-12-14 18:51:57 +00:00
florian
d3cd6132f2 * handle rounding of currency values correctly, resolves #12207
git-svn-id: trunk@14438 -
2009-12-13 16:19:56 +00:00
florian
230142f08b * change length parameter of CompareMem/CompareMemRange into PtrUInt, resolves #15190
* use CompareByte inside these routines instead of simple handmade code

git-svn-id: trunk@14435 -
2009-12-13 11:42:05 +00:00
florian
7a82669942 * forgotten part of r14432
git-svn-id: trunk@14433 -
2009-12-13 11:18:49 +00:00
micha
347d71db10 * rtl/heap: optimization, while looking for a big enough block, also use blocks that are exactly large enough
git-svn-id: trunk@14420 -
2009-12-12 09:37:36 +00:00
micha
a6e6e9d453 * rtl/heap: fix SysReallocMem corruption in multi-thread use (thanks to Burkhard Carstens, #15323)
git-svn-id: trunk@14419 -
2009-12-12 09:28:41 +00:00
pierre
461c459821 * fix SigActionRec for x86_64 cpu
git-svn-id: trunk@14394 -
2009-12-10 19:55:14 +00:00
pierre
4d30275d7f * Adapt start.inc to pic code
git-svn-id: trunk@14391 -
2009-12-10 13:23:20 +00:00
pierre
05c1097395 * simplify SysInitFPU assmebler using local variables
git-svn-id: trunk@14390 -
2009-12-10 13:11:40 +00:00
florian
092823308a + mips(el) support in the compiler makefile
* regenerated some makefiles to support mipsel-linux

git-svn-id: trunk@14371 -
2009-12-08 19:57:16 +00:00
florian
a3884c4e49 * fixes bootstrapping with 2.2.x
git-svn-id: trunk@14355 -
2009-12-07 20:16:31 +00:00
pierre
90ddd046bc * Use default functions if call to iconv_open failed
git-svn-id: trunk@14352 -
2009-12-07 16:57:12 +00:00
Jonas Maebe
722d48c8c2 * only return an error if locking a file fails when the file is already
locked, but not when another error occurs (such as EsysNOLCK, because
    this error may always be returned if the kernel doesn't support
    locking, in which case programs such as fpcmake no longer work on
    such systems)

git-svn-id: trunk@14350 -
2009-12-07 13:30:19 +00:00
pierre
c7179f243b * fix problem with tcsetattr overloadwith const parameter
git-svn-id: trunk@14348 -
2009-12-07 11:07:55 +00:00
Legolas
ec841a86f5 * Updated to devkitARM r27 and libnds 1.4.0
git-svn-id: trunk@14344 -
2009-12-06 19:37:58 +00:00
florian
9e59c6dec7 * more mipsel code
git-svn-id: trunk@14340 -
2009-12-06 12:12:15 +00:00
Jonas Maebe
3138093fdf * changed errnum parameter of halt() from byte to longint to match the
definition of exitcode (mantis #15231)

git-svn-id: trunk@14339 -
2009-12-06 10:02:05 +00:00
Jonas Maebe
255a9e7d22 * dirent structure available on 10.6 and iPhoneOS
* added some missing private fields to "dir" type for all Darwin platforms

git-svn-id: trunk@14334 -
2009-12-05 11:29:59 +00:00
Jonas Maebe
e7d7867082 + added new tstatfs structure available on Mac OS X 10.6, which appears to
be the only one that's supported on iPhonsOS (fixes webtbs/tw1041 on
    iPhoneOS)

git-svn-id: trunk@14333 -
2009-12-05 10:51:48 +00:00
Jonas Maebe
fbebd87593 * use BLX instead of "mov r14, r15; mov r15, reg" for a_call_reg on ARMv6
and above, so this also works when calling thumb code (should actually
    also be done for ARMv5T, but we don't have a monicker for that yet)
  * use BX instead of "mov r15, r14" for simple returns from subroutines
    on ARMv6+ to support returning to thumb code from ARM code (idem)

git-svn-id: trunk@14332 -
2009-12-04 22:38:50 +00:00
Jonas Maebe
91fc26a530 * the bits in the VFP fpscr don't mask exceptions, but enable them
(was used correctly in fpu init code in arm.inc, but inverted in
     setexcetionmask logic)

git-svn-id: trunk@14328 -
2009-12-04 19:54:35 +00:00
paul
4e29be8a36 rtl: DoVarCopyComplex should copy variant strings by ref (reason: this is delphi compatible behavior)
git-svn-id: trunk@14325 -
2009-12-04 14:57:17 +00:00
marco
d72c2991e5 * group type to u_long as per mantis 15241
git-svn-id: trunk@14320 -
2009-12-04 08:37:18 +00:00
Jonas Maebe
d1538ab023 o added ARM VPFv2/VFPv3 support:
+ RTL support:
      o VFP exceptions are disabled by default on Darwin,
        because they cause kernel panics on iPhoneOS 2.2.1 at least
      o all denormals are truncated to 0 on Darwin, because disabling
        that also causes kernel panics on iPhoneOS 2.2.1 (probably
        because otherwise denormals can also cause exceptions)
    * set softfloat rounding mode correctly for non-wince/darwin/vfp
      targets
    + compiler support: only half the number of single precision
      registers is available due to limitations of the register
      allocator
    + added a number of comments about why the stackframe on ARM is
      set up the way it is by the compiler
    + added regtype and subregtype info to regsets, because they're
      also used for VFP registers (+ support in assembler reader)
    + various generic support routines for dealing with floating point
      values located in integer registers that have to be transferred to
      mm registers (needed for VFP)
    * renamed use_sse() to use_vectorfpu() and also use it for
      ARM/vfp support
    o only superficially tested for Linux (compiler compiled with -Cpvfpv6
      -Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least
      the fpu exception handler still needs to be implemented), Darwin has
      been tested more thoroughly
  + added ARMv6 cpu type and made it default for Darwin/ARM
  + ARMv6+ implementations of atomic operations using ldrex/strex
  * don't use r9 on Darwin/ARM, as it's reserved under certain
    circumstances (don't know yet which ones)
  * changed C-test object files for ARM/Darwin to ARMv6 versions
  * check in assembler reader that regsets are not empty, because
    instructions with a regset operand have undefined behaviour in that
    case
  * fixed resultdef of tarmtypeconvnode.first_int_to_real in case of
    int64->single type conversion
  * fixed constant pool locations in case 64 bit constants are generated,
    and/or when vfp instructions with limited reach are present

  WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all
    code with -Cparmv6 (or higher), or you will get crashes. The reason is
    that storing/restoring multiple VFP registers must happen using
    different instructions on pre/post-ARMv6.

git-svn-id: trunk@14317 -
2009-12-03 22:46:30 +00:00
Jonas Maebe
36ebb6a980 * fixed clearing fpscr "exception happened" flags
git-svn-id: trunk@14313 -
2009-12-03 20:21:27 +00:00
paul
1cd32f5327 rtl: implement TCollection.SetPropName
git-svn-id: trunk@14295 -
2009-12-02 03:40:26 +00:00