Commit Graph

59624 Commits

Author SHA1 Message Date
Jonas Maebe
198efe2075 * fpmkunit: only start the worker threads once they are fully initialised
git-svn-id: trunk@45989 -
2020-08-02 14:39:47 +00:00
svenbarth
848ec1d219 * allow overloads with same result type for external Java classes due to Java supporting covariant return types for interfaces
git-svn-id: trunk@45988 -
2020-08-02 12:28:46 +00:00
yury
4964f5cf76 * Count the number of interferences with real registers.
* Do not coalesce registers 'u' and 'v' if 'u' is the last usable real register available for imaginary register 'n' which also interferences with 'v'.
    This prevents endless spilling in some cases for constrained CPUs such as AVR. Resolves issue #37421.
    Also this reduces the number of spilled registers in some cases and even eliminates spilling completely for some simple routines for i386 and AVR.
* Added a debug output of the number of spilled registers for each routine. This allows to easily compare results after changes in spilling algorithms.

git-svn-id: trunk@45987 -
2020-08-02 11:50:43 +00:00
svenbarth
ef099b2075 * import library function with a name that does not conflict with the functions exported in the interface
git-svn-id: trunk@45986 -
2020-08-02 10:25:02 +00:00
svenbarth
08949c86bf + readd Randomize with parameter
git-svn-id: trunk@45985 -
2020-08-02 10:24:57 +00:00
florian
f542ee7b92 * do not throw an internal error if an errorneous type is passed to str, resolves #37462
git-svn-id: trunk@45983 -
2020-08-01 21:11:35 +00:00
pierre
208e7fb337 Add -marm option to gcc call fot arm target to be sure that aarch64 version of gcc complains to stderr if it does not support 32-bit
git-svn-id: trunk@45982 -
2020-08-01 20:42:22 +00:00
svenbarth
107a2e4e85 - remove local Random() implementations that weren't exported anyway (LongInt <> Integer inside the System unit)
git-svn-id: trunk@45981 -
2020-08-01 17:26:39 +00:00
svenbarth
48cc5250f9 * fpc_geteipasebx and fpc_geteipasecx are used as procedures, not functions, so declare them as such
git-svn-id: trunk@45980 -
2020-08-01 17:26:34 +00:00
svenbarth
04cbf32b1b * rename local import of fpc_geteipasebx
git-svn-id: trunk@45979 -
2020-08-01 17:26:29 +00:00
michael
4df02b0d6d * Remove SVN id marker
git-svn-id: trunk@45978 -
2020-08-01 16:02:42 +00:00
michael
0e35f2cd09 * Make sure tests run in pas2js. Reduce ifdefs
git-svn-id: trunk@45977 -
2020-08-01 08:49:34 +00:00
michael
eaeb21e6ae * Add stub generator
git-svn-id: trunk@45976 -
2020-08-01 07:39:34 +00:00
florian
6f661e44d0 * do not throw an internal error later on in case of a recursive call, if the declaration of the function was faulty, resolves #37460
git-svn-id: trunk@45975 -
2020-07-31 21:03:35 +00:00
svenbarth
b412259c1c * fix for Mantis #37355: the method name and the named parameters need to be separated by a single #0
+ added test

git-svn-id: trunk@45974 -
2020-07-31 15:55:37 +00:00
svenbarth
b62045809d * reject overloads if they only differ in the result types (as long as they aren't operator overloads)
+ added tests

git-svn-id: trunk@45973 -
2020-07-31 15:55:34 +00:00
svenbarth
fa0c9adbf4 * extract checking whether two parameter defs of two procdefs are equal into a separate function
git-svn-id: trunk@45972 -
2020-07-31 15:55:31 +00:00
florian
42f2e5f8ad + simplify "x mod -1", resolves #37449
git-svn-id: trunk@45969 -
2020-07-30 20:35:34 +00:00
pierre
546a679f4e Add -SfPROCESSES for arm cpu, to be able to compile fcl-base package as for xtensa
git-svn-id: trunk@45968 -
2020-07-30 14:22:05 +00:00
pierre
93fc5abe8b Use same parameters as in fileutilh.inc for the handle variant of FileSetDate overloaded function
git-svn-id: trunk@45967 -
2020-07-30 14:08:22 +00:00
Mattias Gaertner
8dbf8ae823 pastojs: (a as b)[]
git-svn-id: trunk@45966 -
2020-07-29 22:14:07 +00:00
Mattias Gaertner
ebf35bcac4 fcl-passrc: fixed generic proc
git-svn-id: trunk@45965 -
2020-07-29 22:04:29 +00:00
Mattias Gaertner
0fa8ef9fa9 fcl-passrc: resolving (a as b)[]
git-svn-id: trunk@45964 -
2020-07-29 21:53:13 +00:00
Mattias Gaertner
fc5a1d81c7 fcl-passrc: less hints
git-svn-id: trunk@45963 -
2020-07-29 21:52:37 +00:00
Mattias Gaertner
4c99a82dbf pas2js: docs
git-svn-id: trunk@45962 -
2020-07-29 21:52:22 +00:00
florian
941020af1a * patch by J. Gareth Moreton: Minor oversight in MovAnd2Mov 3 optimisation, resolves #37442
git-svn-id: trunk@45961 -
2020-07-29 21:11:46 +00:00
pierre
34b1cfa4b9 Do not use sets for ESysXX as the values are not in byte range for Haiku OS
git-svn-id: trunk@45877 -
2020-07-29 15:52:38 +00:00
michael
a5db62a300 * Mark THandleObject as abstract
git-svn-id: trunk@45875 -
2020-07-29 12:26:57 +00:00
yury
2d8873d085 * Fixed TAOptObj.CollapseZeroDistJump to properly handle delay slots.
git-svn-id: trunk@45874 -
2020-07-28 23:27:42 +00:00
yury
2b86651914 * Re-enabled safe generic jump optimizations for mips.
git-svn-id: trunk@45873 -
2020-07-28 23:16:21 +00:00
florian
0b5c50ea41 * Aarch64: set register size correctly for AndStrb2Strb optimization, resolves #37427
git-svn-id: trunk@45872 -
2020-07-28 20:46:05 +00:00
yury
cc936710a0 * mips: Added support for unaligned load/store. It greatly improves performance and prevents bus errors on systems which do not emulate unaligned memory access.
git-svn-id: trunk@45871 -
2020-07-28 20:08:41 +00:00
florian
55c4986c8d * modified patch by J. Gareth Moreton: MovOpMov2Op/Lea2Add/Lea2Sub consolidation, resolves #37422
git-svn-id: trunk@45865 -
2020-07-27 21:00:25 +00:00
florian
a172064767 * patch by J. Gareth Moreton: fix for incorrect alignment removal, resolves #37420
git-svn-id: trunk@45864 -
2020-07-26 14:41:50 +00:00
Mattias Gaertner
091862cd88 pastojs: added include file and test specializations are created later
git-svn-id: trunk@45863 -
2020-07-26 12:05:23 +00:00
Mattias Gaertner
dc54c1297a fcl-passrc: added include file and append specializations at end of declarations in front of unfinished elements
git-svn-id: trunk@45862 -
2020-07-26 12:01:37 +00:00
Mattias Gaertner
fad9fb738c fcl-js: added include file
git-svn-id: trunk@45861 -
2020-07-26 11:59:00 +00:00
Mattias Gaertner
86ee4a57c3 fcl-json: added include file
git-svn-id: trunk@45860 -
2020-07-26 11:58:47 +00:00
florian
3db2794598 + add test for #31714 which is already fixed
git-svn-id: trunk@45859 -
2020-07-25 21:08:58 +00:00
Jonas Maebe
a534fb9acd * fixed allocation of function result location
git-svn-id: trunk@45858 -
2020-07-25 20:26:24 +00:00
yury
e6b89c98f5 * Changed tsuperregisterworklist.get() to always return the last item from the list.
* Reversed sort order of simplifyworklist so nodes with most interferences will get their colors first.
    Since degree of nodes in simplifyworklist before sorting is always
    less than the number of usable registers this should not trigger spilling
    and should lead to a better register allocation in some cases.

  After these changes sysutils.o for i386-win32 is 80 bytes less. :)

git-svn-id: trunk@45857 -
2020-07-25 18:29:59 +00:00
yury
72dc2145e9 * In Delphi mode throw a conversion error when trying to typecast a pointer to a procdef when they use different memory models.
git-svn-id: trunk@45856 -
2020-07-25 17:13:29 +00:00
yury
cbe38d7664 * Fixed TComparerService.LookupComparer.
git-svn-id: trunk@45855 -
2020-07-25 17:12:55 +00:00
florian
f6e6b807d5 + optimize <signed> mod <power of 2> for x86-64 as well
git-svn-id: trunk@45854 -
2020-07-25 16:42:19 +00:00
Jonas Maebe
a5bad32b7c - removed no longer used -target $TARGET parameter (triplet is used instead)
git-svn-id: trunk@45853 -
2020-07-25 16:11:54 +00:00
florian
769a8fa248 + patch by fanjinke: Hygon support for the mmx unit, resolves #37391
git-svn-id: trunk@45848 -
2020-07-24 20:53:54 +00:00
yury
2839533776 * i8086: Enabled the cs_opt_regvar optimization. It works fine now.
git-svn-id: trunk@45847 -
2020-07-24 16:45:44 +00:00
yury
34a5dfc885 * i8086: Fixed referencing using BP and SP as base when FAR or HUGE memory model is used.
git-svn-id: trunk@45846 -
2020-07-24 16:42:09 +00:00
yury
b1b9d1f341 * i8086: Removed internal error, since global vars can be in registers if used only in pascalmain.
git-svn-id: trunk@45845 -
2020-07-24 16:39:26 +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