Commit Graph

3726 Commits

Author SHA1 Message Date
florian
3072df59ff * overflow checked mul helpers do not need to check all bits either
git-svn-id: trunk@48999 -
2021-03-17 21:30:41 +00:00
nickysn
a9f4c8a16b * compilation on Windows fixed
git-svn-id: trunk@48958 -
2021-03-14 02:53:41 +00:00
nickysn
df947d3ae8 * fixed rtl compilation with FPC 3.2.0 starting compiler
git-svn-id: branches/wasm@48305 -
2021-01-22 00:48:44 +00:00
nickysn
7e958e0a35 + introduced the discardresult directive and declared the UniqueString()
overloads, using this directive

git-svn-id: branches/wasm@48283 -
2021-01-21 21:42:07 +00:00
nickysn
05d66eddfc * synchronized with trunk
git-svn-id: branches/wasm@47982 -
2021-01-02 22:06:17 +00:00
florian
8b08079224 * fpc_AnsiStr_Concat: if one of the strings is empty and CP_NONE is passed, the code page
of the other string is taken, this is also like fpc_AnsiStr_Concat_multi works if length(sarr)=2

git-svn-id: trunk@47976 -
2021-01-02 16:39:39 +00:00
nickysn
a5fafea8d1 * more updates to attempt to get a larger part of the full RTL to compile for WASM32
git-svn-id: branches/wasm@47970 -
2021-01-02 13:01:39 +00:00
nickysn
4c85306f69 + added wasm32 type defines
git-svn-id: branches/wasm@47957 -
2021-01-02 07:58:33 +00:00
Jonas Maebe
b359080f42 * fixed round(currency) so it takes the rounding mode into account on
platforms where currency is "type int64"
  * inline trunc(currency), trunc(comp) and round(comp) on platforms where
    currency and comp are "type int64"

git-svn-id: trunk@47859 -
2020-12-27 13:19:02 +00:00
florian
1d92cc43bb * fpc_ln_real raises an exception for invalid operands if they exception is not masked
git-svn-id: trunk@47813 -
2020-12-18 22:36:17 +00:00
florian
2e2f2eb784 - remove could which prevented that rte is triggered even if we are inside
an exception block but *without* using sysutils. The remove code
    was once added to have primitive exception handling even if
    no sysutils is used. But if this is desired, an appropriate handler
    to ErrorProc should be assigned. Resolves #38201

git-svn-id: trunk@47775 -
2020-12-14 21:55:42 +00:00
florian
53a4e6c513 * patch by Zoran Vučenović: fixes TDoubleRec.SetFrac, resolves #38202
+ test

git-svn-id: trunk@47765 -
2020-12-12 21:39:17 +00:00
ondrej
1a0ba60de6 * revert r47598: implement TRandomGenerator
git-svn-id: trunk@47605 -
2020-11-27 04:53:06 +00:00
ondrej
c4dd3b661a * rtl: implement TRandomGenerator for thread-safe random
git-svn-id: trunk@47598 -
2020-11-26 05:59:00 +00:00
pierre
e4e1ea586c Revert wrong change, llvm supports extended constants
git-svn-id: trunk@47554 -
2020-11-24 13:55:27 +00:00
pierre
6d900039c4 Fix LLVM compilation by casting untyped real constants to double type, as LLVM does not support extended type constant apparently
git-svn-id: trunk@47551 -
2020-11-24 08:02:29 +00:00
michael
257ef24a1e * Fix bug ID #38008: allow UTF8 to unicode conversion to react on/ignore invalid input
git-svn-id: trunk@47391 -
2020-11-12 09:17:09 +00:00
Károly Balogh
05d680902e * make sure things still build with 3.0 after r47353
git-svn-id: trunk@47359 -
2020-11-09 00:24:29 +00:00
svenbarth
c496b609d1 * fix for Mantis #38051: make Chr() a real intrinsics so that it can be used in type declarations as well
+ added test

git-svn-id: trunk@47353 -
2020-11-08 22:23:02 +00:00
ondrej
a65158bfe8 * fix memory leak in RegisterLazyInitThreadingProc
git-svn-id: trunk@47311 -
2020-11-04 20:10:43 +00:00
ondrej
c64429cdd0 * lazy thread initialization support
git-svn-id: trunk@47308 -
2020-11-04 14:55:40 +00:00
svenbarth
ac36eec71a * protect GetFullName with FPC_HAS_FEATURE_UNICODESTRINGS instead of _WIDESTRINGS
git-svn-id: trunk@47294 -
2020-11-03 19:25:32 +00:00
pierre
e80b1d9e70 Put GetFullName functions inside $ifdef FPC_WIDESTRING_EQUAL_UNICODESTRING
git-svn-id: trunk@47287 -
2020-11-03 07:13:59 +00:00
svenbarth
c2454d5386 * fix for Mantis #38023: the code to convert LF to CRLF when converting to UTF-8 is disabled anyway, so disable unnecessary, duplicate if-branches as well
git-svn-id: trunk@47284 -
2020-11-02 16:42:32 +00:00
pierre
c2c4048e92 Fix compilation of RTL when USE_FILEREC_FULLNAME is not defined
git-svn-id: trunk@47267 -
2020-11-01 08:23:40 +00:00
Károly Balogh
3aa0d92c79 fix casting typo in r47263
git-svn-id: trunk@47265 -
2020-10-31 20:46:19 +00:00
florian
408fc819b3 + initial implementation of a FullName field in file records to overcome length limitions of the name field
git-svn-id: trunk@47263 -
2020-10-31 19:54:40 +00:00
svenbarth
16eb670e67 * use the sizes of the floatx80 and float128 structs for arrays having their size to avoid problems with padding on different platforms
git-svn-id: trunk@47198 -
2020-10-25 15:36:31 +00:00
svenbarth
52cf07d968 * the define to check for inclusion in the System unit is FPC_IS_SYSTEM, *not* FPC_IN_SYSTEM
git-svn-id: trunk@47197 -
2020-10-25 15:20:39 +00:00
svenbarth
b0f0ff1bc6 * fix for Mantis #37986: apply patch by Bart Broersma to fix a typo in a comment
git-svn-id: trunk@47196 -
2020-10-25 13:20:38 +00:00
svenbarth
d51213d26a * adjust softfpu unit so that it can be really used as a standalone unit instead of mainly as part of the System unit
git-svn-id: trunk@47193 -
2020-10-25 10:18:18 +00:00
florian
4afa4a73c6 + ISO mode: accept put/get without parameter, works on Input/Output respectively, resolves #37949
git-svn-id: trunk@47147 -
2020-10-20 21:03:51 +00:00
Jonas Maebe
d0d07dc3bf * naturally align threadvar lists/tables
o required for (future) Darwin arm64e target, and a good idea elsewhere too
     (on constrained targets, it won't make a difference because the alignment
     of pointers won't be > sizeof(longint))

git-svn-id: trunk@47115 -
2020-10-15 20:29:32 +00:00
florian
c9fcc68ec1 * enable the compiler to optimize away parts of System.PushExceptObject, if System.get_frame is not implemented, i.e. returning nil
git-svn-id: trunk@47058 -
2020-10-06 19:43:17 +00:00
florian
e718cb985e * replace some longint by ObjpasInt
git-svn-id: trunk@47047 -
2020-10-04 20:50:39 +00:00
florian
af20b064ed * make framecount and framebufsize dependent on the pointer size
git-svn-id: trunk@47030 -
2020-10-01 20:33:03 +00:00
florian
1bf58c2a55 + introduce TExitCode
git-svn-id: trunk@47029 -
2020-10-01 20:33:02 +00:00
florian
1e4dc56155 * inlinable frame handling dummies for avr
* inline frame handler if possible

git-svn-id: trunk@47025 -
2020-09-30 21:18:33 +00:00
florian
7f53d04ffd + xtensa: make use of nsau to implement Bsr*
git-svn-id: trunk@46963 -
2020-09-26 22:03:13 +00:00
florian
40d9b1108a * add VUString branch to tvardata, resolves #37651
git-svn-id: trunk@46957 -
2020-09-26 15:35:20 +00:00
Tomas Hajny
a71f87357d * simplified version of SeekEof for improved TP/BP/Delphi compatibility by Andrey 'Croco' Stolyarov as fix for #37716, plus a new test for testing the compatibility
git-svn-id: trunk@46946 -
2020-09-24 19:33:28 +00:00
pierre
d52aaf63eb msxdos target uses same __fpc_envp symbol as msdos
git-svn-id: trunk@46935 -
2020-09-24 09:48:49 +00:00
florian
e33f794eb6 * correctly handle eof in typed files in iso mode
git-svn-id: trunk@46918 -
2020-09-22 19:51:43 +00:00
florian
449cc8f152 * make use of AllocMem in fpc_dynarray_setlength
git-svn-id: trunk@46900 -
2020-09-19 21:06:11 +00:00
svenbarth
0c316deab5 * readd SmallInt typecasts to SmallInt overload of SwapEndian
git-svn-id: trunk@46898 -
2020-09-19 17:42:04 +00:00
svenbarth
9d86fed95b * avoid range check error when using SwapEndian with 16-bit constants
+ added test

git-svn-id: trunk@46897 -
2020-09-19 17:04:17 +00:00
svenbarth
15141124f4 * restore ability to cycle with 3.0.4 (at least until 3.2.2 is released) after r46890
git-svn-id: trunk@46895 -
2020-09-19 13:54:25 +00:00
svenbarth
d3e18ccb5e * fix for Mantis #37221: apply adjusted patch by Ondrej Pokorny to allow the use of Copy() on open array parameters (the result will be a dynamic array)
+ added test

git-svn-id: trunk@46890 -
2020-09-18 15:00:10 +00:00
florian
f8c1df0852 * ISO mode: handle typed files as text files regarding naming/program parameters, resolves #37415
git-svn-id: trunk@46865 -
2020-09-14 20:16:08 +00:00
Tomas Hajny
1eb11a2a29 * fix for problem with commit 46853
git-svn-id: trunk@46864 -
2020-09-14 05:30:59 +00:00
Tomas Hajny
3c9257300d * fix for bug #37716 by Andrey 'Croco' Stolyarov
git-svn-id: trunk@46853 -
2020-09-11 23:43:32 +00:00
pierre
1e8aa99f81 * Disable range and overflow checking inside softfpu implementation
git-svn-id: trunk@46682 -
2020-08-25 06:34:29 +00:00
florian
832c3d89c8 * Xtensa: disable simple random again, committed by accident
git-svn-id: trunk@46552 -
2020-08-22 20:36:26 +00:00
florian
04846345b2 * Xtensa: more fixes to tcg64fxtensa.a_op64_const_reg_reg and tcg64fxtensa.a_op64_reg_reg_reg
git-svn-id: trunk@46551 -
2020-08-22 20:33:30 +00:00
michael
213d2905df * Change some methods from using var to using out (bug ID 37376)
git-svn-id: trunk@46533 -
2020-08-21 10:44:48 +00:00
michael
82346563c1 * Add StoredAttribute class, bug ID #37602
git-svn-id: trunk@46506 -
2020-08-20 12:06:14 +00:00
michael
8bc2326b77 * Fix bug #37601: add some attribte definitions
git-svn-id: trunk@46505 -
2020-08-20 11:53:43 +00:00
yury
9d41a435c2 * tinyheap: Disable inline when FPC_TINYHEAP_HUGE is defined to prevent code bloat.
git-svn-id: trunk@46492 -
2020-08-19 10:48:00 +00:00
ondrej
cfff96f44c FExpand: always uppercase drive letter also in BasePath
git-svn-id: trunk@46353 -
2020-08-10 20:42:13 +00:00
yury
ec10ee8218 * Improved generic implementations of fpc_mul_dword, fpc_mul_word, fpc_mul_byte to use less iterations and registers.
git-svn-id: trunk@46269 -
2020-08-05 17:58:46 +00:00
yury
aa633544f1 * Added a simple implementation of random. It is TP/Delphi compatible. Enabled it for 8/16 bit CPUs by default.
git-svn-id: trunk@46266 -
2020-08-05 16:29:07 +00:00
florian
7281ea7a2c * floating point division by zero should throw run time error 208, fixed
git-svn-id: trunk@46210 -
2020-08-03 19:42:16 +00:00
yury
6edbc9ed7e * tinyheap: Early check for very big requested mem sizes in order to prevent overflows and properly report the out of memory error.
git-svn-id: trunk@45844 -
2020-07-24 16:02:13 +00:00
pierre
adf064cbb4 New: rtl/inc/genmathh.inc source file, to provide a unique position
for the interface definition of float64 and float32 records,
  available to all systems if FPUNONE is not defined.

  rtl/inc/genmath.inc: Remove float64/float32, as they are now in rtl/inc/genmathh.inc
  rtl/inc/softfpu.pp: Use provided definitions of float32 and float64
  if available (by checking presence of FPC_SYSTEM_HAS_floatXX macro)

  rtl/inc/systemh.inc: include genmathh.inc if FPUNONE is not defined.
  rtl/java/jsystemh_types.inc: Likewise.

git-svn-id: trunk@45821 -
2020-07-21 14:24:14 +00:00
florian
a57f3ba396 * patch by Sergey Larin to handle Native(U)Int conversions from/to variants, resolves #37339
git-svn-id: trunk@45797 -
2020-07-16 20:44:30 +00:00
pierre
7020490f81 Put floating point type as first variant of floatXX definitions, to ensure correct alignment
git-svn-id: trunk@45780 -
2020-07-13 14:13:13 +00:00
pierre
834dbf5f80 Also use union with double field to ensure correct alignment for float64 type from genmath.inc source
git-svn-id: trunk@45779 -
2020-07-13 13:18:32 +00:00
pierre
60c187e169 Make sure that we do not read passed the end of OPTSTRING variable
git-svn-id: trunk@45736 -
2020-07-06 20:56:14 +00:00
marco
41406d161c * fix for mantis #37233 crash in getopts.getlongopts with empty shortopts argument
git-svn-id: trunk@45683 -
2020-06-23 09:01:37 +00:00
florian
bc1b7960ec * patch by Bi0T1N: fix result type of InterlockedCompareExchange64 for QWord, resolves #37186
git-svn-id: trunk@45647 -
2020-06-13 19:14:20 +00:00
florian
dbd14206c9 * compilation on targets without fpu fixed
git-svn-id: trunk@45638 -
2020-06-11 17:30:12 +00:00
florian
20f6514d97 * fix compilation for non 64 Bit targets
git-svn-id: trunk@45636 -
2020-06-10 21:05:18 +00:00
florian
50c48349d5 * check properly for i/o errors in the iso read helpers, resolves #37154
* CheckRead checks if reading caused an I/O error and returns false in this case

git-svn-id: trunk@45635 -
2020-06-10 20:47:58 +00:00
ondrej
533312c619 Variants: fix letter case in variant type names
git-svn-id: trunk@45573 -
2020-06-03 07:02:15 +00:00
svenbarth
e82b9c3b2e * disable the new FindResource(Ex) overloads for Win16 for now (the one with PChar is disabled as well); this will need to be revisited once Win16 receives proper resource support
git-svn-id: trunk@45489 -
2020-05-24 19:43:36 +00:00
svenbarth
1d4bbcef75 + add additional overloads for FindResource and FindResourceEx so that mixtures of AnsiString and MAKEINTRESOURCE types as well as names can be used
+ added test for ReadComponentRes (which called the wrong FindResource before)

git-svn-id: trunk@45479 -
2020-05-23 21:24:01 +00:00
Jonas Maebe
f9672b53a2 - removed old float-to-string and string-to-float conversion code
git-svn-id: trunk@45401 -
2020-05-17 14:05:38 +00:00
pierre
3aa253c11d Allow system unit to be compiled without RTTI feature
git-svn-id: trunk@45351 -
2020-05-13 09:10:23 +00:00
nickysn
5b24267529 * reduced the stack margin for stack checking to 64 bytes on the Z80
git-svn-id: trunk@45168 -
2020-04-29 01:22:22 +00:00
svenbarth
c8b7094378 * fix for Mantis #36940: apply (adjusted) patch by Bi0T1N to add functionality to the thread manager to set a thread's debug name (if supported by the platform)
git-svn-id: trunk@45160 -
2020-04-28 19:58:20 +00:00
nickysn
fe05a87a27 * made ErrOutput/StdErr a true alias of Output/StdOut to save memory
git-svn-id: branches/z80@45134 -
2020-04-26 23:10:08 +00:00
nickysn
9c7f1a7cab * synchronized with trunk
git-svn-id: branches/z80@45046 -
2020-04-24 03:30:29 +00:00
yury
8d95da3fea * Windows: Reworked handling of command line arguments to properly support Unicode:
- Use the CommandLineToArgvW API function to parse the Unicode command line (we can use it since Win9x is not supported anymore).
  - Implemented non-public functions ParamStrA and ParamStrU which are exposed in the objpas and uuchar units to provide correct AnsiString and UnicodeString versions of ParamStr(). 
  - The cleanup code is moved from InternalExit to the finalization section of the System unit.

git-svn-id: trunk@45037 -
2020-04-23 12:38:42 +00:00
nickysn
a189ea4b0b * synchronized with trunk
git-svn-id: branches/z80@45010 -
2020-04-22 22:43:31 +00:00
yury
0f4ddf7b34 * Do not report about unimplemented unicodestring manager when HAS_WIDESTRINGMANAGER is defined (on Windows). In such case unimplemented parts are never executed unless you call them directly.
* Do not assign DefaultGetStandardCodePage when HAS_WIDESTRINGMANAGER is defined (on Windows).

git-svn-id: trunk@44995 -
2020-04-22 09:13:20 +00:00
nickysn
86643f8a34 * synchronized with trunk
git-svn-id: branches/z80@44981 -
2020-04-21 23:36:44 +00:00
yury
c3954a0cee * Fixed r44960. Also copy a trailing implicit #0 of the original string to the new larger string.
git-svn-id: trunk@44970 -
2020-04-21 18:55:24 +00:00
yury
1e32b96bc2 * Minor improvement. No need to move the terminating null char, since it is written later anyway. Remove a local var.
git-svn-id: trunk@44960 -
2020-04-21 14:18:35 +00:00
nickysn
611ac9076b * synchronized with trunk
git-svn-id: branches/z80@44671 -
2020-04-09 22:01:59 +00:00
michael
a678192c11 * Use ansistrings for options. (bug ID 36892)
git-svn-id: trunk@44664 -
2020-04-09 21:05:59 +00:00
florian
a6cfaa996a * few cleanups towards building the z80-embedded system unit
git-svn-id: branches/z80@44550 -
2020-04-03 20:37:27 +00:00
nickysn
48b4cc34cb * synchronized with trunk
git-svn-id: branches/z80@44414 -
2020-03-29 23:04:40 +00:00
florian
391512546e + initial FreeRTOS RTL support, largely based on the Embedded target, limited to Xtensa so far
git-svn-id: trunk@44400 -
2020-03-29 17:13:45 +00:00
nickysn
755fe97c51 * synchronize with trunk
git-svn-id: branches/z80@44397 -
2020-03-29 16:24:32 +00:00
florian
28c0a47a95 + Xtensa: completed rtl skeleton
git-svn-id: trunk@44322 -
2020-03-21 12:49:43 +00:00
florian
83a6efd759 + Xtensa: RTL skeleton
git-svn-id: trunk@44320 -
2020-03-20 22:35:43 +00:00
svenbarth
97c8464b11 * fix for Mantis #36738: when copying a record using its copy operator we assume that we've copied the whole record; this way managed records inside non-managed records are handled correctly
+ added (adjusted) test

git-svn-id: trunk@44257 -
2020-03-02 22:04:45 +00:00
florian
af1a4c06c5 * fixed generic round(...) for large values based on a comment by Alexander Hofmann on fpc-devel
* extended test

git-svn-id: trunk@44235 -
2020-02-23 10:41:18 +00:00
florian
871136d4f2 * first couple of improvements propose by Stefan Kanthak at https://skanthak.homepage.t-online.de/division.html#fpc
git-svn-id: trunk@44057 -
2020-01-29 21:35:25 +00:00
florian
ae8d2dc69a * omit first not, helps the reg. allocator to find a workable colouring, resolves #36611
git-svn-id: trunk@44005 -
2020-01-20 21:13:34 +00:00
florian
70a836c4a2 * first part of merging parts of Jeppe's intrinsics patch, mainly r31135
is merged by this commit with a lot of adaptions

git-svn-id: trunk@43949 -
2020-01-14 21:52:39 +00:00
florian
931d4dcfee * ensure the rtl and the packages for embedded compile with features exceptions and classes disabled
git-svn-id: trunk@43931 -
2020-01-13 21:20:03 +00:00
ondrej
34fecf90f3 SysUtils: add ExpandFileName with a BasePath overload
git-svn-id: trunk@43928 -
2020-01-13 12:36:35 +00:00
Jonas Maebe
1f5efe2a95 * support for constrained sitofp/uitofp with (the upcoming) LLVM 10.0
(fixes most of test/units/math/troundm, although there's still an LLVM
     optimizer/code generation bug that breaks some qword -> double
     conversions)

git-svn-id: trunk@43829 -
2019-12-31 18:05:54 +00:00
Jonas Maebe
9b53ed53e3 * the llvm.experimental.constrained.fpext intrinsic doesn't have a rounding
mode parameter

git-svn-id: trunk@43828 -
2019-12-31 18:05:50 +00:00
Jonas Maebe
a6a17efa42 * use LLVM constrained fpext/fptrunc intrinsics when fastmath is not enabled
for accurate exception behaviour

git-svn-id: trunk@43820 -
2019-12-30 15:05:13 +00:00
Jonas Maebe
797077855e * use constrained LLVM fp intrinsics for add/sub/mul/slash/fma/sqrt
operations when fastmath is not enabled

git-svn-id: trunk@43819 -
2019-12-30 15:05:09 +00:00
florian
7032c80041 * accept #26 as eof in iso mode, resolves #35136
git-svn-id: trunk@43801 -
2019-12-28 10:35:46 +00:00
svenbarth
5610f992b4 * if a CPU platform does not provide a FarPointer type then declare it as an alias to a mere Pointer
git-svn-id: trunk@43776 -
2019-12-24 21:30:00 +00:00
svenbarth
abe6e740f5 * Delphi allows overloading based on Comp, so declare it as a type rename instead of a mere alias
git-svn-id: trunk@43775 -
2019-12-24 21:29:57 +00:00
svenbarth
ad0d885880 * if a CPU platform doesn't explicitely provide the Comp type we declare it as an alias to Int64
git-svn-id: trunk@43774 -
2019-12-24 21:29:53 +00:00
svenbarth
042bbdf613 * as long as the Comp type is declared, declare PComp as well
git-svn-id: trunk@43773 -
2019-12-24 21:29:51 +00:00
florian
a20209e691 + tf_init_final_units_by_calls
* arm-embedded generates direct calls for unit init/final now as well

git-svn-id: trunk@43771 -
2019-12-24 16:14:30 +00:00
florian
e332c17bbd * some inconsistency regarding FPC_NONE usage fixed
git-svn-id: trunk@43770 -
2019-12-24 16:14:30 +00:00
florian
8b24033e93 * last fix was most likely not complete
git-svn-id: trunk@43712 -
2019-12-22 23:39:44 +00:00
florian
0dabe49601 * fix building on non-unix/windows targets
git-svn-id: trunk@43711 -
2019-12-22 23:34:22 +00:00
florian
99680eb88c * patch by Anton Kavalenka: heaptrc: Improve tracing by printing actual
module name (ether EXE or DLL), resolves #36130

git-svn-id: trunk@43710 -
2019-12-22 22:51:53 +00:00
florian
33fa211b84 + x86-64: assembler implementation for u128_div_u64_to_u64 for SysV ABI
* reminder => remainder (thanks to Stefan Kanthak for pointing it out)

git-svn-id: trunk@43695 -
2019-12-17 21:54:47 +00:00
Jonas Maebe
0f46207776 * fixed (harmless) range error when expanding ~
git-svn-id: trunk@43559 -
2019-11-22 21:11:56 +00:00
ondrej
9a9cd15ec4 TInterfacedObject.Destroy: fix case for correct auto-completion
git-svn-id: trunk@43418 -
2019-11-08 21:29:26 +00:00
Jonas Maebe
490f057aa1 * replaced the arrays in the generic set helpers with arrays of 32 bytes
instead of high(cardinal), so LLVM doesn't get tricked into massively
    unrolling and parallelising those loops

git-svn-id: trunk@43408 -
2019-11-06 21:50:23 +00:00
yury
4ade471488 * GetModuleByAddr: Prevent returning a name of the current executable for invalid addresses such as pointer(-1) on Windows.
git-svn-id: trunk@43364 -
2019-11-02 14:54:25 +00:00
florian
828e961f3d * remove unused constants
git-svn-id: trunk@43351 -
2019-11-01 18:39:17 +00:00
florian
3b1903b430 * simplified fpc_mul_qword so it compiles again on avr, fixes #36236 but does not solve the root of the problem
git-svn-id: trunk@43342 -
2019-10-31 21:02:23 +00:00
pierre
d80734b412 Completely disable Round functions if FPUNONE is defined, to fix avr builds without flaot support
git-svn-id: trunk@43305 -
2019-10-23 06:38:10 +00:00
marcus
d90741d2f2 Fixed compilation after r43281 2nd try, some more "R"s
git-svn-id: trunk@43283 -
2019-10-21 07:51:59 +00:00
marcus
e833876f05 Fixed compilation after r43281
git-svn-id: trunk@43282 -
2019-10-21 07:38:04 +00:00
florian
d3c898a96b * properly round in ISO mode, resolves #35626
git-svn-id: trunk@43281 -
2019-10-20 21:11:40 +00:00
florian
88648248ec * fix random(<int64>) for 32 Bit CPUs
git-svn-id: trunk@43194 -
2019-10-13 20:23:01 +00:00
florian
b02470468b * handle off by one in FilePos due to the filled buffer in iso mode, resolves #40850
git-svn-id: trunk@43188 -
2019-10-13 11:37:37 +00:00
florian
c189af0e3d * improved software floating point exception handling in the rtl
git-svn-id: trunk@43163 -
2019-10-10 20:31:31 +00:00
florian
c0372f80e0 * with section threadvars, heap relocation is not needed
git-svn-id: trunk@43130 -
2019-10-05 20:48:27 +00:00
svenbarth
daa746243a * use clib constant instead of literal 'c' in case we have a target where the library is not called 'c' (hopefully all targets that use cgeneric.inc have the clib constant declared in their sysos.inc)
git-svn-id: trunk@43121 -
2019-10-05 09:42:55 +00:00
florian
5ed2475c85 * InitThread variant without parameters as user threads normally cannot know the max. stack size
git-svn-id: trunk@43068 -
2019-09-25 21:19:01 +00:00
pierre
ee22dbe589 Handle change of memory base address after call to SysTryResizeMem
git-svn-id: trunk@43062 -
2019-09-24 12:44:01 +00:00
pierre
5cc4f0be20 Fix bug report #36081: fix cycling starting with i386-linux 3.0.4 release compiler
git-svn-id: trunk@43029 -
2019-09-18 07:45:47 +00:00
florian
94832d5eea * fixed define
git-svn-id: trunk@43027 -
2019-09-17 18:42:40 +00:00
Jonas Maebe
13902c1c7a * fixed compilation for __ARM_EABI_UNWINDER__ with -dexcdebug
git-svn-id: trunk@43015 -
2019-09-15 17:26:21 +00:00
florian
1872bee116 * stack checking checks also proper alignment
git-svn-id: trunk@43011 -
2019-09-15 17:17:30 +00:00
Jonas Maebe
617cc6984b * call DoUnhandledException instead of RunError(217) when the the psabi eh
unwinder returns an error (this is usually because there is no outer
    exception catching frame anymore -> unhandled exception) (based on patch by
    Cyrax, mantis #35751)

git-svn-id: trunk@42999 -
2019-09-14 17:30:53 +00:00
florian
ed688aceee * remove packed from tdynarray, it is not needed and especially 64 bit CPUs which require proper aligment, suffer from it
git-svn-id: trunk@42920 -
2019-09-04 20:45:23 +00:00
svenbarth
c1e3c61af3 * don't call the memory manager's functions, but instead call the Sys* functions directly
git-svn-id: trunk@42797 -
2019-08-24 10:37:20 +00:00
svenbarth
f88a98e976 * heaptrc should not rely on the original SysAllocMem calling the heaptrace memory manager's functions
git-svn-id: trunk@42796 -
2019-08-24 10:37:16 +00:00
svenbarth
00a418f589 * also correctly align the pointer for the record elements inside FPC_COPY
git-svn-id: trunk@42781 -
2019-08-23 21:57:17 +00:00
svenbarth
db2a5285a9 * fix for Mantis #35988: the internal heap uses directly the Sys* functions, not the memory manager
git-svn-id: trunk@42774 -
2019-08-23 14:59:15 +00:00
svenbarth
0c46460548 * m68k has slightly different alignment requirements, so that aligntoptr might result in incorrect addresses for a record's element entries, thus we introduce a separate AlignTypeData function that handles this correctly
git-svn-id: trunk@42764 -
2019-08-22 20:45:45 +00:00
florian
f0213a2c46 + make use of the mremap syscall of linux to re-allocate large memory blocks faster
git-svn-id: trunk@42713 -
2019-08-16 20:47:37 +00:00
svenbarth
10af6fe2fb * fix for Mantis #35965: correct alignment also for the class info used to retrieve the unit name
+ added test

git-svn-id: trunk@42697 -
2019-08-15 13:29:19 +00:00
pierre
8015bfb5a0 Fix arm specific failure in tw12048
git-svn-id: trunk@42657 -
2019-08-12 12:17:00 +00:00
pierre
d6d3e171ce Try to fix alignment issues in RTTI code for 64-bit targets which require proper alignment
git-svn-id: trunk@42549 -
2019-08-01 14:46:56 +00:00
Jeppe Johansen
1b698d319f - Fix bug in software overflow checking for longint's.
- AVR: Fix overflow checking for HW multiplications

git-svn-id: trunk@42531 -
2019-07-30 13:42:26 +00:00
Jonas Maebe
b0683edfcb * simplified random(int64) code
git-svn-id: trunk@42513 -
2019-07-28 12:03:46 +00:00
Jonas Maebe
789f288771 * fixed distribution of random(int64) based on patch by Pangea
(mantis #35878)

git-svn-id: trunk@42508 -
2019-07-28 11:14:58 +00:00
Jeppe Johansen
67bf76c50e - Fix overflow checking in software multiplication routines. Overflow checking should also be enabled for the unsigned multiplications.
- Call FPC_Overflow instead of multiple calls to save on size.

git-svn-id: trunk@42491 -
2019-07-25 12:49:55 +00:00
Jonas Maebe
4bc657a067 * renamed objcbase.BOOL type to objc.ObjCBOOL to prevent name clashes
* fixed some signatures in CocoaInt that should refer to ctypes.cbool
    but instead used objcbase.(ObjC)BOOL

git-svn-id: trunk@42483 -
2019-07-23 09:08:32 +00:00
florian
a60ab40237 * handle records with managed fields correctly after attribute merge fixes
git-svn-id: trunk@42480 -
2019-07-21 14:17:27 +00:00
florian
217ae6e4bb * more fixes to rtti after attribute branch merging
git-svn-id: trunk@42476 -
2019-07-21 08:28:29 +00:00
svenbarth
e97a2cb03e * tests with Delphi showed that an attribute class must explicitely declare a parameterless constructor if it should be used, cause TCustomAttribute.Create is private
Note: this also means that TCustomAttribute itself can not be used as an attribute
* adjusted existing tests
+ added test

git-svn-id: trunk@42471 -
2019-07-20 20:03:38 +00:00
svenbarth
48b8110e38 * disable UCS4String if dynamic arrays are disabled
git-svn-id: trunk@42455 -
2019-07-19 11:52:51 +00:00
florian
c932dfaf70 * first bunch of fixes for rtti for arm after attribute commits, fixes mostly alignment issues
git-svn-id: trunk@42446 -
2019-07-14 17:45:55 +00:00
svenbarth
c0da39a35d * Tenum_typedata needs to include the Common record as well
git-svn-id: trunk@42438 -
2019-07-13 14:38:24 +00:00
svenbarth
55dfb59631 * TRttiDataCommon is required outside of the RTTI and DynArray include files as well
git-svn-id: trunk@42437 -
2019-07-13 14:38:20 +00:00
svenbarth
3ad24c9db8 * as attributes can be part of any type they are best suited in a common part of TTypeData
git-svn-id: trunk@42375 -
2019-07-12 22:06:09 +00:00
svenbarth
e296b26e9e - remove unit info and related code again as that will be handled similar, but differently with dynamic packages
git-svn-id: trunk@42369 -
2019-07-12 22:05:47 +00:00
svenbarth
b2932393df Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 1/3]
Implemented attributes for class types and properties (based on work by Joost van der Sluis). Added TCustomAttribute - a base class for attributes. Added TUnitInfo record to RTTI. It contains the unit name and unit options (for now only a flag which specifies if the unit contains attributes). Added several tests for attributes.

git-svn-id: trunk@42356 -
2019-07-12 22:04:48 +00:00
Jonas Maebe
789f13eb24 * LLVM-specific support for popcnt
git-svn-id: trunk@42311 -
2019-06-30 15:23:36 +00:00
Jonas Maebe
0a91fcb44f * LLVM-specific support for bsr*/bsf*
git-svn-id: trunk@42309 -
2019-06-29 16:27:18 +00:00
Jonas Maebe
c262c5dbc9 * synchronised with trunk till r42256
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
florian
f92b8d1681 * changes shift parameter of shift helpers into ALUUInt, as there is an "and" used anyways, this does not change semantics but reduces register pressure on 8 bit targets
git-svn-id: trunk@42200 -
2019-06-09 21:44:18 +00:00
Jonas Maebe
faf75095cd * synchronised with trunk till r42189
git-svn-id: branches/debug_eh@42190 -
2019-06-07 18:24:38 +00:00
Jeppe Johansen
2f501be2a0 Fixed stack checking for embedded target. Based on work by Christo Crause
git-svn-id: trunk@42157 -
2019-06-01 19:18:31 +00:00
marco
646d7c2a95 * helper in record to make setting parameters a bit denser.
git-svn-id: trunk@42147 -
2019-05-31 10:40:54 +00:00
Jonas Maebe
0cd0e1614b * synchronised with trunk till r42105
git-svn-id: branches/debug_eh@42106 -
2019-05-19 19:24:25 +00:00
Jonas Maebe
aad87820e6 * abstracted registration of library init/fini routines (to be able to add
LLVM support)

git-svn-id: trunk@42104 -
2019-05-19 19:20:47 +00:00
Jonas Maebe
9e9a982bfe * synchronised with trunk till r42095
git-svn-id: branches/debug_eh@42096 -
2019-05-18 18:43:51 +00:00
pierre
902ef73c7c Allways use local pt variable to ameliorate readability of code
git-svn-id: trunk@42082 -
2019-05-16 08:24:45 +00:00
Jonas Maebe
1b6425176b * synchronised with trunk till r42049
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
svenbarth
46a8afb50d + declare Pointer types for the remaining Boolean types
git-svn-id: trunk@42032 -
2019-05-10 15:25:08 +00:00
Jonas Maebe
3a1fb45315 * synchronised with trunk till r41976
git-svn-id: branches/debug_eh@41977 -
2019-05-02 19:44:41 +00:00
pierre
819752c334 Avoid warnings when -v0 is used by using $push/$pop
git-svn-id: trunk@41960 -
2019-04-29 14:19:16 +00:00
Jonas Maebe
a0f850d57f * synchronised with trunk till r41885
git-svn-id: branches/debug_eh@41886 -
2019-04-16 16:20:44 +00:00
pierre
7b3e027dc8 Move update of fields counting allocated memory to after SysGetMem call
git-svn-id: trunk@41882 -
2019-04-16 15:05:13 +00:00
Jonas Maebe
3b254affb7 * support for the individual alignment flags for the memcpy intrinsic of
LLVM 7.0

git-svn-id: branches/debug_eh@41728 -
2019-03-17 15:28:23 +00:00
Jonas Maebe
dc2cbf8018 * synchronised with trunk till r41725
git-svn-id: branches/debug_eh@41726 -
2019-03-17 15:25:31 +00:00
svenbarth
07b1a3d211 * adjust signature of variant managers olevarfromint so that 64-bit values can be passed as well (as was probably intended originally)
git-svn-id: trunk@41570 -
2019-03-03 14:50:05 +00:00
florian
b8b3a5b523 * cosmetics
git-svn-id: branches/debug_eh@41565 -
2019-03-02 23:04:23 +00:00
florian
0657ce7c02 * get rid of fpc_Resume
git-svn-id: branches/debug_eh@41476 -
2019-02-25 21:43:56 +00:00
florian
6b34e511a0 - removed cdecl from FPC_psabi_begin_catch
git-svn-id: branches/debug_eh@41475 -
2019-02-25 21:25:22 +00:00
Jonas Maebe
a079e5fa80 * synchronised with trunk till r41449
git-svn-id: branches/debug_eh@41450 -
2019-02-24 20:01:53 +00:00
florian
74275a9173 * in ISO mode, f^ is undefined after Rewrite
git-svn-id: trunk@41429 -
2019-02-24 10:32:59 +00:00
Jonas Maebe
ac883969a9 * synchronised with trunk till r41423
git-svn-id: branches/debug_eh@41424 -
2019-02-23 17:08:03 +00:00
Jonas Maebe
5cb5b10f8d * fixed LLVM and non-i386 compilation
git-svn-id: branches/debug_eh@41423 -
2019-02-23 17:03:42 +00:00
florian
8db9b211d5 * fixed unwinding from signal handlers, the approach used now is very simple and clean
git-svn-id: branches/debug_eh@41414 -
2019-02-22 22:01:45 +00:00
florian
b1cc02e417 * reraise has to reset the ref. count to 0
git-svn-id: branches/debug_eh@41383 -
2019-02-19 22:17:27 +00:00
florian
9e67e7311a * change the exception address is only useful if a valid frame is passed
git-svn-id: branches/debug_eh@41377 -
2019-02-18 22:04:08 +00:00
florian
0e25d6f00d * better debug messages
+ initial approach to handle addr and frame

git-svn-id: branches/debug_eh@41368 -
2019-02-17 21:45:18 +00:00
florian
a91f009b7e * cleanup
git-svn-id: branches/debug_eh@41309 -
2019-02-11 20:33:50 +00:00
florian
3b77146e1c * adapt FPC_Unwind_Exception for native eh_frame support
git-svn-id: branches/debug_eh@41307 -
2019-02-11 20:30:21 +00:00
florian
294c7c9daf * adapt identifiert name
* updates for eh_frame support on native targets
* improved messages

git-svn-id: branches/debug_eh@41306 -
2019-02-11 20:29:02 +00:00
Jonas Maebe
3b87b10904 * explicitly link libobjc to prevent the symbol __objc_empty_cache from
resolving to CoreFoundation on macOS 10.14 (which will break running
    such programs on older macOS/(Mac) OS X versions)

git-svn-id: trunk@41243 -
2019-02-06 19:48:47 +00:00