Commit Graph

25688 Commits

Author SHA1 Message Date
J. Gareth "Curious Kit" Moreton
683a92bcc8 i386: Correction to GetIntRegisterBetween to ensure we only get 8-bit registers that we can actually encode 2021-12-25 19:07:48 +00:00
J. Gareth "Curious Kit" Moreton
1da7ce46de x86: New double CMP optimisation to remove a branch 2021-12-25 19:07:48 +00:00
florian
abc4a0a4e6 * patch by Rika: another improvement of cutils.newalignment, part of #39496 2021-12-25 19:37:27 +01:00
J. Gareth "Curious Kit" Moreton
cafd708b6d Refactoring of OptPass2Movx to remove goto 2021-12-25 16:38:10 +00:00
J. Gareth "Curious Kit" Moreton
22cd8d5d62 Fixed bug in MovxMovx2Movx optimisation that would specify a 64-bit destination instead of 32-bit one 2021-12-25 14:49:08 +00:00
florian
ab969e0a9b * patch by Rika: improve ctuils.newalign/align, part of #39496 2021-12-23 22:01:39 +01:00
J. Gareth "Curious Kit" Moreton
b4c8c1da12 Overflow bug fixes to MovZX/SX optimisations when CMP instructions are encountered. 2021-12-23 07:14:49 +00:00
florian
6dbe71cd30 * TX86AsmOptimizer.OptPass1MOVXX should search only over other instructions if it works with registers only 2021-12-22 22:54:11 +01:00
florian
6147d6d8a0 * compilation with i386 fixed 2021-12-21 22:46:12 +01:00
J. Gareth "Curious Kit" Moreton
d083cc7247 New MovxAndTest2Test optimisation to mirror the regular MovAndTest2Test optimisation 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
5b4c104aaf Massive overhaul to OptPass2Movx to favour operand shrinkage 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
d255ffba8b Improved handling of signed sequences in OptPass2Movx 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
01e5f4855a MovZX->MovSX optimisation 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
4825d2d16c New Movz ###,%ecx, shift/rotate %cl,... optimisation 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
f02b7508de Bolder OptPass2Movx optimisations, including a simplification fix 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
da899df6b2 New MovxMovxOp2OpMovx optimisation 2021-12-20 22:10:22 +00:00
J. Gareth "Curious Kit" Moreton
40196f4a43 Fixes to ADD/SUB 128 optimisation that didn't check flags properly, and also handling ADC/SBB properly 2021-12-19 20:51:57 +00:00
florian
e443936e12 + in_min/max_dword/longint support for aarch64 2021-12-19 16:16:44 +01:00
florian
77b9d62520 + in_min/max_single/double support for aarch64 2021-12-18 21:23:21 +01:00
J. Gareth "Curious Kit" Moreton
b4bd15a5c0 Removed incorrect logic in TEST optimisation 2021-12-17 22:10:12 +00:00
florian
03f4685455 + sanity checks in mips and sparc register allocator 2021-12-17 21:25:17 +01:00
florian
c6874df5c8 * better error recovery, resolves #39485 2021-12-16 22:27:38 +01:00
florian
f7239e03e7 * make tgobj.pas less verbose in extdebug mode, use separate define DEBUG_FREETEMP for the really
verbose stuff
2021-12-15 23:05:18 +01:00
J. Gareth "Curious Kit" Moreton
be448e29f6 Fixed bug in new TEST optimisation where a FLAGS check always returned "in use" 2021-12-15 20:14:26 +00:00
J. Gareth "Curious Kit" Moreton
42c429bf45 New optimisation that merges small constants written to the stack 2021-12-15 19:47:50 +00:00
J. Gareth "Curious Kit" Moreton
7a15312b54 Safety checks on TEST removals and better FLAG tracking 2021-12-13 16:11:33 +00:00
Karoly Balogh
06da0b3db6 * fix m68k IE after e9acd759, patch by Yuriy Sydorov 2021-12-13 16:14:59 +01:00
J. Gareth "Kit" Moreton
f60523a3b9 x86: New TEST optimisations 2021-12-12 21:40:42 +00:00
Yuriy Sydorov
e9acd759a4 * Fixed random AVs when targeting the AVX FPU. 2021-12-12 18:19:35 +02:00
Yuriy Sydorov
7b2cd0bcdc * Prevent a range check error in case of big unsigned values. 2021-12-12 17:55:46 +02:00
Yuriy Sydorov
59fca3a01d * Increased the bounds of TBooleanArray to prevent a range check error while linking Lazarus. 2021-12-12 15:50:12 +02:00
florian
5921fa9a62 + store references to global variables in registers if benefical (currrently used for aarch64 only) 2021-12-11 22:46:27 +01:00
J. Gareth "Curious Kit" Moreton
72661fd5c1 Added missing MOVSXD check to PostPeepHoleOptsCpu 2021-12-09 02:15:55 +00:00
Florian Klämpfl
49af134ba7 * compilation of x86_64-win64 fixed 2021-12-04 16:21:29 +01:00
florian
0b3fb55c6a * generate no exit code at all on x86-64 if the subroutine is compiled with po_noreturn 2021-12-03 23:26:28 +01:00
J. Gareth "Curious Kit" Moreton
0f1c4b4db8 Fixed Unreachable code warning when building on a 32-bit platform with DEBUG_NODE_XML 2021-12-02 20:32:05 +00:00
florian
89aeedac1e * fixes excluding of cpu capabilities 2021-12-01 22:48:19 +01:00
florian
60623f39a1 + - can be used to remove options from a cpu capability switch 2021-11-30 22:37:47 +01:00
ccrause
793c157a9c Always call DoExec to generate linker scripts. Even if cs_link_nolink is set, the ldgen scipt needs to be called in the generated ppas script. 2021-11-29 22:42:49 +01:00
ccrause
b0c0309cc1 Add output path to kconfig source file location parameters. 2021-11-29 22:42:49 +01:00
ccrause
f66dd54bc2 Extract linker script generation as separate method. Check if esp linker scripts can be found in library paths, if not then generate scritps. 2021-11-29 22:42:49 +01:00
ccrause
ab00794343 Keep esp32 and esp8266 version specific tweaks separate. 2021-11-29 22:42:49 +01:00
ccrause
a58567004b Remove unused $OUTPUT substtution and empty check of outputexedir. 2021-11-29 22:42:49 +01:00
ccrause
655a5f526c Place IDF related files in executable output folder. 2021-11-29 22:42:49 +01:00
ccrause
e86d3af7e0 The linklib list for esp-idf v4.2 is also needed for v4.3 2021-11-29 22:42:49 +01:00
florian
5db20610dd * correct idf version check 2021-11-29 22:42:49 +01:00
florian
802f24dfbd * force result to be set 2021-11-29 22:42:49 +01:00
florian
54f2308d2a + draft for esp-idf version specific rtl unit which contains the necessery linklib statements 2021-11-29 22:42:49 +01:00
florian
dc161e519f * inputfilepath might not be empty 2021-11-29 22:42:49 +01:00
ccrause
5289aab4f2 Add -WP option so that IDF version can be passed in - stored in globals.idf_version. The version is checked in t_freertos.pas and for esp-idf version 4.3.x an extra link file is added, also running ldgen.py is skipped as that seems unused. 2021-11-29 22:42:49 +01:00