Commit Graph

59602 Commits

Author SHA1 Message Date
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
yury
c455e942e5 * Try to avoid spilling of an imm register if it contains a value loaded from an already spilled imm register. It likely leads to an endless loop and the register allocation fails.
This fixes the register allocation for i8086 when handling registers for very constrained instructions such as "mov ireg1,[ireg2+ireg3]". 
    Here ireg2 can be only BX or BP. So in most cases only BX is available. When ireg2 is spilled, its value must be loaded to BX only.
    Coloring of the ireg which holds the spilled value must be as early as possible to be able to assign BX to this ireg.
    This fix should also help register allocation for other constrained/old CPUs.

git-svn-id: trunk@45843 -
2020-07-24 14:08:18 +00:00
michael
34ada3906b * Remove some compiler warnings
git-svn-id: trunk@45842 -
2020-07-24 11:04:35 +00:00
michael
aa724ae05a * Add joIgnoreDuplicates
git-svn-id: trunk@45841 -
2020-07-24 11:04:15 +00:00
michael
3d333a1d17 * Add joIgnoreDuplicates
git-svn-id: trunk@45840 -
2020-07-24 11:03:25 +00:00
michael
e1c1bd3d60 * Prevent warning
git-svn-id: trunk@45839 -
2020-07-24 11:03:00 +00:00
pierre
06b1e65864 + Add a new parameter to GetCompilerInfo function,
called EmptyIfStdErr, which resets the returned string to
   an empty string if the call generated output to stderr stream.

   * Adapt calls to GetCompilerInfo to change above.
   + Add support for other CPUs for linux OS target.

git-svn-id: trunk@45838 -
2020-07-23 21:34:24 +00:00
pierre
2e6bba76bf Define __USE_LARGEFILE64 for sparc-linux, and adapt filed ffree type to that macro
git-svn-id: trunk@45837 -
2020-07-23 21:03:19 +00:00
pierre
1d5c714ff2 Fix error in assembly startup code for sparc linux
git-svn-id: trunk@45836 -
2020-07-23 20:59:03 +00:00
florian
e26e824700 + more helper routine to check for CPU features added
git-svn-id: trunk@45835 -
2020-07-23 20:57:45 +00:00
yury
a258774ba9 * To check the size of a register(s) corresponding to a variable it is needed to use localloc.size instead of def_cgsize(vardef).
git-svn-id: trunk@45834 -
2020-07-23 13:10:50 +00:00
yury
15f411a332 * Improved r45832.
git-svn-id: trunk@45833 -
2020-07-23 12:52:17 +00:00
yury
80facfa0bf * Fixed indentations of the interference graph.
* Added register names to the interference graph.

git-svn-id: trunk@45832 -
2020-07-23 12:45:40 +00:00
Károly Balogh
d7122c6338 z80: preserve system ID and linker ID for the Amstrad CPC
git-svn-id: trunk@45831 -
2020-07-23 11:57:20 +00:00
Mattias Gaertner
c1fe90524c pas2js: fixed crash on class function
git-svn-id: trunk@45830 -
2020-07-23 11:04:47 +00:00
pierre
9f60f5093d F_GetLk/SetLk have different values for sparc/sparc64
git-svn-id: trunk@45829 -
2020-07-22 23:15:03 +00:00
florian
ed158f1e52 * set register size correctly for popcnt(<byte>), resolves #37400
git-svn-id: trunk@45828 -
2020-07-22 20:47:12 +00:00
florian
c01db96df4 + functions to check for Popcnt support
git-svn-id: trunk@45827 -
2020-07-22 20:47:11 +00:00
yury
6478a727d7 * Fixed the peephole optimization of conditional movs for mips.
git-svn-id: trunk@45826 -
2020-07-22 11:40:21 +00:00
pierre
219db914e3 Revert commit #45737, as it introduces problelms for other test cases
git-svn-id: trunk@45825 -
2020-07-22 09:36:13 +00:00
florian
5da913de0e * float operations can have an exception as a side effect, resolves #37398
git-svn-id: trunk@45824 -
2020-07-21 20:09:39 +00:00
Jonas Maebe
dd6e6eb26a * disable tail recursion optimisation if there is a copy-back parameter
* handle fparainit in tail recursion optimisation (mantis #37397)

git-svn-id: trunk@45823 -
2020-07-21 17:57:50 +00:00
Jonas Maebe
924ffe6538 * removed initialisation of unused fparacopyback from tcallparanode.copy_value_by_ref_para
git-svn-id: trunk@45822 -
2020-07-21 17:57:45 +00:00