Pierre Muller
|
d44a1c4100
|
Remove compiler/msgtxt.inc and compiler/msgidx.inc from tracked file list
|
2024-06-11 09:25:56 +02:00 |
|
Pierre Muller
|
2d8a50556c
|
Fix exclusion of ogelf unit using $ifndef NOOGELF
|
2024-06-11 01:05:51 +02:00 |
|
Pierre Muller
|
010127a622
|
Add ogmacho unit loading unless NOOGMACHO macro is defined
|
2024-06-11 01:05:51 +02:00 |
|
Pierre Muller
|
ce702df526
|
Take care about endianess in arm instruction binary code generator
|
2024-06-11 01:05:51 +02:00 |
|
Pierre Muller
|
318e31487a
|
Take care about endianess in arm eabi attribute section
|
2024-06-11 01:05:51 +02:00 |
|
florian
|
bdb611c925
|
* small fix of change information
|
2024-06-10 23:10:48 +02:00 |
|
Sven/Sarah Barth
|
5bf93d220f
|
* exact-match COMDAT sections are already supported since tdynamicarray.equal() has been implemented a couple of yours ago, so allow them
|
2024-06-07 15:34:02 +02:00 |
|
Sven/Sarah Barth
|
c2664fdfa5
|
* move setup of secrec outside of the if-statement as it's the same for both cases
|
2024-06-07 15:31:58 +02:00 |
|
Sven/Sarah Barth
|
f5beaa80d8
|
* the COMDAT record contains the section number which is off-by-one to the section index
|
2024-06-07 15:31:18 +02:00 |
|
Sven/Sarah Barth
|
52c5a0932d
|
* allow the COMDAT selection to be 0 in which case we'll simply assume that we don't have a COMDAT section (but we'll nevertheless look up a potentially associative section)
|
2024-06-07 15:30:53 +02:00 |
|
florian
|
15b3f16646
|
* use fld1/fchs regardless of pic
|
2024-06-06 22:36:29 +02:00 |
|
florian
|
aaeefacf85
|
* also optimize loading of -1.0
|
2024-06-05 22:56:45 +02:00 |
|
Sven/Sarah Barth
|
f584c559fd
|
* fold the MIPS tabitype into tabi as the former wasn't really used or hooked up anyway; this way the ABI can be set using -Ca<abi>
|
2024-06-04 23:45:46 +02:00 |
|
florian
|
8c2aca6ece
|
* load 2 on x86 stack by fld1/fadd, if pic code is generated. It is more efficient as two memory accesses are saved.
|
2024-06-04 23:21:26 +02:00 |
|
Sven/Sarah Barth
|
953a4e1b64
|
* fix #40563: apply slightly adjusted patch by byte bites to use fixed range of 1..Length(str) for for-in loops iterating over ShortStrings
+ added test
|
2024-06-04 22:53:16 +02:00 |
|
florian
|
c64fae2f89
|
* missing AVX-2 change information fixed
|
2024-06-03 23:29:37 +02:00 |
|
florian
|
73a251410e
|
+ more change information
|
2024-06-02 23:11:14 +02:00 |
|
florian
|
860c32f833
|
+ set CPUX86_HINT_BSX_DEST_UNCHANGED_ON_ZF_1 for suitable CPUs
|
2024-06-01 19:41:46 +02:00 |
|
florian
|
8db51a367e
|
* forgotten part of last commit
|
2024-06-01 18:53:50 +02:00 |
|
florian
|
055681c8b4
|
* correct change information for some instructions where the change
information cannot be modelled in x86ins.dat
|
2024-06-01 18:46:23 +02:00 |
|
florian
|
ba555ea68d
|
* patch by Marģers to bump version
|
2024-05-31 21:44:03 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
bf970b29f4
|
* arm / a64: TAsmNode debugging info is now output for ARM and AArch64
|
2024-05-30 20:04:11 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
2de19f9e66
|
* x86: Reimplemented TAsmNode XML dumping using new framework
|
2024-05-30 20:04:11 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
ac0e641ce7
|
* Stripped down and refactored TAsmNode XML node dumps
for better platform-specific implementations.
|
2024-05-30 20:04:11 +00:00 |
|
florian
|
4eb8f8e565
|
* patch by Marģers
- Rename 3DNow instruction (fixed long lasting typo in mnemonic). PMULHRWA --> PMULHRW
- Add vpclmullqlqdq, vpclmulhqlqdq, vpclmullqhqdq, vpclmulhqhqdq.
- Fix "typo" for SHA1MSG2
|
2024-05-30 21:49:30 +02:00 |
|
florian
|
d5ab671ec3
|
* patch by Marģers: patch to enable ENTER asm instruction
+ test
|
2024-05-29 23:15:09 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
605b21af8c
|
* a64: win64 implementation of jump table now
uses 64-bit absolute references.
|
2024-05-27 06:31:15 +01:00 |
|
florian
|
39f7172ee8
|
* do no generated debug comment in assembler output of RiscV if not requested
|
2024-05-25 20:16:42 +02:00 |
|
florian
|
0a88683310
|
+ do do_consttovar on RiscV
|
2024-05-25 20:09:02 +02:00 |
|
florian
|
fbf20eee31
|
+ check for tf_init_final_units_by_calls in trv32nodeutils.insert_init_final_table
|
2024-05-25 19:28:50 +02:00 |
|
ccrause
|
c86e7b43b4
|
Add insert_init_final_table method
|
2024-05-25 17:26:15 +00:00 |
|
ccrause
|
8f106b616b
|
Move .data with fpc specific information to outside normal memory range.
|
2024-05-25 17:26:15 +00:00 |
|
ccrause
|
8e717f4142
|
Add support for esp-idf v4.4
|
2024-05-25 17:26:15 +00:00 |
|
ccrause
|
e56052bb32
|
Do not pass esp32c3.rom.newlib-time.ld to the linker, it causes the ROM version of _isatty_r to be linked instead of the newlib library version.
|
2024-05-25 17:26:15 +00:00 |
|
ccrause
|
7284e161a2
|
Group linker scripts and search paths
|
2024-05-25 17:26:15 +00:00 |
|
ccrause
|
a27abdd621
|
Add -WP option to help for ppcrossrv32
|
2024-05-25 17:26:15 +00:00 |
|
ccrause
|
c42bf9cdf5
|
Extend riscv32-freertos functionality for esp32c3
|
2024-05-25 17:26:15 +00:00 |
|
florian
|
53459fed2b
|
+ CPUX86_HINT_BSX_DEST_UNCHANGED_ON_ZF_1
|
2024-05-24 23:17:07 +02:00 |
|
Karoly Balogh
|
e507f612f5
|
m68k-palmos: further fixes to assembly section. also actually use aout, as we have aout binutils for palmos
|
2024-05-25 00:14:11 +03:00 |
|
Karoly Balogh
|
627734e104
|
m68k: try to fold two consecutive AND instructions into one. This usually happens when a zero extension is followed by another AND.
|
2024-05-25 00:01:35 +03:00 |
|
Karoly Balogh
|
d9c786fee6
|
m68k: also allow TST from before Sxx instructions with explicit .b size to be optimized away
|
2024-05-25 00:00:22 +03:00 |
|
Karoly Balogh
|
11246aa5b4
|
m68k-palmos: do not try to write section attributes, they're not really useful, and lead to assembler warnings
|
2024-05-24 23:52:53 +03:00 |
|
florian
|
b313a66a47
|
* correct Dwarf-4 line info header as noted by Martin on the mailing list
|
2024-05-23 22:55:31 +02:00 |
|
florian
|
83abe1fb15
|
* oc_blue properly named as noted by Don Siders
|
2024-05-20 20:43:14 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
bba8558a1a
|
* x86: Minor change to lineinfo in "MovAdd2Lea" so debugging is more logical
|
2024-05-20 17:45:29 +00:00 |
|
florian
|
cab3b8c06f
|
* factor out tcgx86.getcopymode
|
2024-05-19 22:56:23 +02:00 |
|
florian
|
eff10ee9b7
|
* handle complexer references in tcg8086.a_loadaddr_ref_cgpara properly
|
2024-05-18 23:39:07 +02:00 |
|
florian
|
e29d1ecda9
|
* reorganize Tcgx86.g_concatcopy
|
2024-05-17 21:39:18 +02:00 |
|
florian
|
b826ad8b7e
|
+ CPUX86_HINT_FAST_SHORT_REP_MOVS
* use FPC_MOVE instead of rep movs if possible, partially fixes #40785
|
2024-05-16 22:59:21 +02:00 |
|
florian
|
f49da05633
|
* unified g_concatcopy_move
|
2024-05-15 22:52:24 +02:00 |
|
florian
|
4a4eadc60e
|
* throw an error if varargs is used without appropriate calling conventions, resolves #40342
|
2024-05-14 22:44:12 +02:00 |
|
Pierre Muller
|
291532e740
|
Do not set default target to system_sparc64_solaris on solaris OS for sparc64 compiler as this target is not yet supported
|
2024-05-14 06:44:39 +00:00 |
|
florian
|
a9c88ace25
|
* handle unary minus in the preprocessor, resolves #40782
|
2024-05-13 22:36:40 +02:00 |
|
Nikolay Nikolov
|
cdba427bcf
|
+ added WASI multithreading helper for setting the stack pointer for the linear stack
|
2024-05-13 14:00:36 +02:00 |
|
Michaël Van Canneyt
|
897caac4ac
|
* Seems not all was committed
|
2024-05-13 14:00:36 +02:00 |
|
florian
|
1fa83a91ab
|
+ cs_opt_consts for sparc64
|
2024-05-11 23:41:33 +02:00 |
|
florian
|
5284948087
|
* proper alignment information for constant addresses stored in registers
|
2024-05-09 23:42:40 +02:00 |
|
florian
|
1e3865a187
|
* patch by rasberryrabbit to resolve #40761
|
2024-05-09 20:41:58 +02:00 |
|
florian
|
5e00358f13
|
+ cs_opt_consts for sparc
|
2024-05-08 23:13:05 +02:00 |
|
florian
|
9b1861a104
|
+ enable cs_opt_consts on arm as well
|
2024-05-07 22:40:13 +02:00 |
|
Sven/Sarah Barth
|
485b31de21
|
* fix #40764: declare procsyms of a class/object also as sp_generic_dummysym if a symbol in a parent class has it set so that the parser will treat it as a potential generic
+ added test
|
2024-05-06 23:39:18 +02:00 |
|
Sven/Sarah Barth
|
bfe5733624
|
* allow sp_generic_dummysym for procsyms even if there are no generic overloads
|
2024-05-06 23:39:18 +02:00 |
|
florian
|
04631040b8
|
+ do do_consttovar optimization on i386 as well
|
2024-05-06 23:12:36 +02:00 |
|
florian
|
70d2f81e5e
|
+ store pic references in registers if possible
|
2024-05-06 22:46:21 +02:00 |
|
Michaël Van Canneyt
|
a04d2b59f6
|
* Emit better error when not able to load auto units
|
2024-05-06 16:56:29 +02:00 |
|
Michaël Van Canneyt
|
02704f85a9
|
* Wasm: generator for invoke helper now handles overloaded methods in interfaces
|
2024-05-06 15:49:28 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
e60a7d01a4
|
* Inc/Dec nodes converted to Add/Sub now remove
the "nf_modify" flag from the destination so
constant propagation works more efficiently.
|
2024-05-05 20:50:37 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
e7145f5f7c
|
* Blocks of statements are now pruned (within reason) if a raise, exit, break, continue or goto node is found
|
2024-05-05 20:46:30 +00:00 |
|
Michaël Van Canneyt
|
a888a141a2
|
* remove do_compile, clearer flow when loading ppu/pas files
|
2024-05-04 16:58:04 +02:00 |
|
Michaël Van Canneyt
|
3302dae600
|
* hlgcodegen needed when creating module info (fixes AV)
|
2024-05-04 16:44:33 +02:00 |
|
Michaël Van Canneyt
|
312cf246ad
|
* Fix creating thunk class when inherited interfaces are used
|
2024-05-04 16:44:32 +02:00 |
|
Michaël Van Canneyt
|
1e9e533e6c
|
* Replace object with record where possible
|
2024-05-04 16:44:32 +02:00 |
|
Michaël Van Canneyt
|
a478a33c32
|
* Correct location of new error message
|
2024-05-04 09:18:05 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
edc1c79cbb
|
* Bug fix where copied block nodes didn't inherit the original's flags
|
2024-05-03 21:13:43 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
b828529b24
|
* Block nodes are now marked as strippable when created from "begin" statements
|
2024-05-03 21:13:43 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
6cc391dfa1
|
* x86: Improved "Test2Bt" peephole optimisation
|
2024-05-02 23:46:20 +01:00 |
|
florian
|
b6da7a799a
|
* regenerated
|
2024-05-02 22:46:49 +02:00 |
|
Pierre Muller
|
1e5240b5a4
|
Do allocate a new regset for top_regset for ARM compiler to avoid heap memory corruption
|
2024-05-02 13:52:04 +00:00 |
|
Pierre Muller
|
f6a0da71fc
|
Do not set USEINLINE macro if DISABLE_INLINE macro is set
|
2024-05-02 09:36:27 +00:00 |
|
florian
|
346962beaa
|
* compiler part of #35433
|
2024-05-01 23:05:06 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
ac3425a14d
|
* Only perform the block flattening if "forinline" is true or under -O2 and above
|
2024-04-29 18:17:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
63e8633262
|
* New block node optimisation that attempts to
flatten nested blocks (makes labels and later
optimisation more efficient).
|
2024-04-29 18:17:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
5a9d4d44fa
|
* Calling "internalstatements" now sets the "bnf_strippable" flag on the result
|
2024-04-29 18:17:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
060a7185ab
|
* Framework for more complex block node simplification
|
2024-04-29 18:17:55 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
5605566e42
|
* Added field to identify blocknodes that wrap entire subroutines
|
2024-04-29 18:17:55 +00:00 |
|
florian
|
7b0578dc17
|
* cleanup tnodeutils.InsertThreadvars as suggested in #40538, resolves #40538
|
2024-04-28 22:38:28 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
e601156b8c
|
* x86-64: Bug fix where RIP-relative references were made absolute in minmax optimisations by mistake.
|
2024-04-27 16:32:04 +00:00 |
|
florian
|
1de3aba4e3
|
* few types fixed
|
2024-04-26 22:54:27 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
17b7782929
|
* i386: Fixed issue where the peephole optimizer entered an infinite loop when building for CPUs older than Pentium II
|
2024-04-26 19:08:00 +00:00 |
|
florian
|
fc6d6c123d
|
* more debug statments removed
|
2024-04-25 22:50:38 +02:00 |
|
florian
|
ab66440e76
|
* accidently committed debug statement removed
|
2024-04-25 22:47:17 +02:00 |
|
florian
|
51f5726343
|
* (hopefully) more consistent message when the compiler is stopped during showing the help screen, resolves #39455
|
2024-04-25 22:12:31 +02:00 |
|
Sven/Sarah Barth
|
7f03fb6966
|
* revert the changes from b0d61558e3 , as 61397d40ae fixes it more correctly
|
2024-04-24 23:13:57 +02:00 |
|
Sven/Sarah Barth
|
61397d40ae
|
* ensure that Insert() of a single element into a dynamic array is typechecked in a way that the user is notified of errors
+ added test
|
2024-04-24 23:13:36 +02:00 |
|
florian
|
2d1fba1fa1
|
* disable (type ...), it did never work and there are not test, resolves #40562
|
2024-04-24 22:51:11 +02:00 |
|
florian
|
2e86cdb620
|
* allow swapping of operands for three operand instructions if they are commutative
|
2024-04-22 22:25:37 +02:00 |
|
florian
|
c3a3cfe80f
|
* avoid range check error in TVMTBuilder.intf_optimize_vtbls by early bailing out if a class has no interfaces
|
2024-04-21 19:26:01 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
88ab9576b1
|
* a64: Added "ABS" and "CTZ" mnemonics (CSSC instructions)
|
2024-04-21 09:06:16 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
1ba93085f7
|
* a64: Added DOTPROD and PAUTH support flags to relevant instruction sets (v8.4+ and v8.3+ respectively)
|
2024-04-21 09:06:16 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
bba4edb6d0
|
* a64: ARMv8.7 through ARMv8.9 have been added as AArch64 CPU types, along with support for the CSSC extension.
|
2024-04-21 09:06:16 +00:00 |
|
florian
|
9409ec6341
|
* workaround unsupported -march=...+pauth for some assembler/clang versions
|
2024-04-21 11:04:42 +02:00 |
|
florian
|
902c93f3c3
|
* do not limit the number of interfaces per class, resolves #40268
|
2024-04-20 22:05:18 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
9ee1821622
|
* arm / a64: Extended the AND; CMP -> ANDS family of optimisations to catch BIC as well as AND
|
2024-04-20 12:55:47 +00:00 |
|
florian
|
e412f6be55
|
+ in on an empty set is always false, resolves #40745
|
2024-04-19 23:43:35 +02:00 |
|
florian
|
2f9ed0576e
|
* optimize x </>= length(...) also if the operands are swapped
|
2024-04-18 23:07:40 +02:00 |
|
florian
|
e130557d9f
|
* optimize x < length(arr) and x >= length(arr) as proposed in #40292
|
2024-04-17 23:29:13 +02:00 |
|
Pierre Muller
|
a4240a0c62
|
Fix compilation of i8086/n8086add.pas unit after introduction of get_int_value function
|
2024-04-17 07:52:05 +00:00 |
|
florian
|
f29ff58ab9
|
+ get_int_value
|
2024-04-16 23:11:16 +02:00 |
|
florian
|
48eeaf00a4
|
+ fold also divisons involving pointer constants (those nodes are internally generated only)
|
2024-04-15 23:02:28 +02:00 |
|
florian
|
2e9556f2eb
|
+ fold also constant pointer operations on nil nodes
|
2024-04-15 22:52:32 +02:00 |
|
florian
|
b3c1f294ba
|
+ propagate also widechar/pointer constants
|
2024-04-14 10:34:37 +02:00 |
|
florian
|
0aa851b7f7
|
* run constant propagation multiple times if needed and if slow optimizations are turned on
|
2024-04-14 10:00:20 +02:00 |
|
florian
|
5c46b5116d
|
+ also fold nil nodes when used as pointer constants
|
2024-04-13 22:52:46 +02:00 |
|
florian
|
1222456c13
|
* allow [] for constant set constraints, resolves #37020
|
2024-04-13 22:28:54 +02:00 |
|
florian
|
13fc4075f5
|
+ propagate pointer constants
|
2024-04-12 21:40:04 +02:00 |
|
Sven/Sarah Barth
|
b0d61558e3
|
* fix #40725: pass along whole array constructor to the Insert() so that it's converted with the correct checks
+ added test
|
2024-04-12 17:34:58 +02:00 |
|
Sven/Sarah Barth
|
e76c5d96d8
|
* Fix #40716: only add helpers if the type doesn't belong to the current object/class/record hierarchy
+ added test
|
2024-04-12 17:34:58 +02:00 |
|
Sven/Sarah Barth
|
7a1ef994b4
|
* fix #40721: correctly set up the generic defs when parsing fields, especially important when dealing with anonymous fields
+ added tests
|
2024-04-12 17:34:58 +02:00 |
|
Sven/Sarah Barth
|
0e9efd07ef
|
* extend read_anon_type() so that it can take a genericdef as well
|
2024-04-12 17:34:58 +02:00 |
|
Sven/Sarah Barth
|
eaf24269bc
|
* check that the corresponding genericdef of the adjusted def is indeed valid
|
2024-04-12 17:34:58 +02:00 |
|
Sven/Sarah Barth
|
550397b982
|
* fix #40708: when creating the sub-arraydefs for comma separated arrays, ensure that the new sub array also has the generic related information set up correctly
+ added test
|
2024-04-12 17:34:58 +02:00 |
|
J. Gareth "Curious Kit" Moreton
|
3cae3e7e48
|
* x86: Registers are now allocated properly during a FuncMov2Func
optimisation
|
2024-04-09 20:51:24 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
18eec3055e
|
* x86: More accurate register tracking in CheckJumpMovTransferOpt
|
2024-04-09 20:51:24 +00:00 |
|
florian
|
fd68d3bfbb
|
* ensure that left and right have a result type set in tx86addnode.pass_1, resolves #40727
|
2024-04-08 22:53:34 +02:00 |
|
florian
|
80750f7591
|
* second_abs: don't supply a separate 64 bit code path for high level cpu targets
|
2024-04-07 22:49:18 +02:00 |
|
Nikolay Nikolov
|
2e65a5d458
|
+ introduced cgbase.topcg2str and topcmp2str for converting TOpCg and TOpCmp to strings (useful for debug logging, etc)
|
2024-04-07 22:10:41 +03:00 |
|
florian
|
139f2dfe84
|
* fix internalerror 200502052 with certain min/max optimizations on x86-64, resolves #40730
|
2024-04-06 23:31:37 +02:00 |
|
Pierre Muller
|
f56587bddd
|
Use correct check for unsigned size in a_op64_{const/reg}_reg_reg_checkoverflow methods
|
2024-04-03 23:41:50 +02:00 |
|
Pierre Muller
|
8511b0fc7b
|
Increase default stack size to 8Mb for i386 and sparc solaris systems
|
2024-04-03 23:17:55 +02:00 |
|
florian
|
8cdb3deebd
|
* another fix for min/max intrinsics on x86_64 for non constant/reference/register locations, resolves #40724
|
2024-04-03 22:03:30 +02:00 |
|
Pierre Muller
|
8fa80295d0
|
Avoid running cleanppulogs and ppulogs rules in parallel
|
2024-04-03 14:56:51 +00:00 |
|
florian
|
e7716dc05f
|
+ avr: overflow checking for abs, together with the other recent abs-related commits, resolves #40694
|
2024-04-02 19:01:42 +02:00 |
|
florian
|
b00e9543a7
|
* sparc: overflow support for 64 bit operations
|
2024-04-02 16:41:38 +02:00 |
|
florian
|
3b8fcfc6eb
|
* fix min/max intrinsics on x86_64 for non constant/reference/register locations, resolves #40721
|
2024-04-01 23:25:24 +02:00 |
|
Michael Ring
|
7c3ab69c50
|
Fixed missing section for Raspberry Pi Pico
|
2024-04-01 21:00:12 +00:00 |
|
florian
|
e88248d453
|
+ comment to explain last commit
|
2024-03-31 22:33:22 +02:00 |
|
florian
|
bf1c674672
|
* don't remove align directives before case jump tables (they have the type alt_addr)
|
2024-03-31 22:15:08 +02:00 |
|
florian
|
a90691435b
|
+ abs(long/int64): overflow checking for xtensa implemented
|
2024-03-30 20:29:48 +01:00 |
|
florian
|
240739e71d
|
* compilation on 64 bit targets fixed
|
2024-03-29 21:44:23 +01:00 |
|
florian
|
a8d496ade7
|
* i386 uses generic x86 abs(long/int64) code now
|
2024-03-29 20:54:52 +01:00 |
|
florian
|
13e7f947ea
|
* all CPUs use now internal abs(<int64>) so overflow checking is possible
+ added overflow checking to generic abs(<longint>)
|
2024-03-29 20:30:57 +01:00 |
|
florian
|
c87213085f
|
* overflow checking for generic abs(<int64>)
* fix overflow checking on arm for 64 bit signed numbers
* arm uses generic abs(<int64>)
|
2024-03-29 20:06:23 +01:00 |
|
florian
|
8132ccd42b
|
+ generic implementation of abs(<int64>)
|
2024-03-29 15:30:18 +01:00 |
|
florian
|
56d84c9283
|
* compilation fixed
|
2024-03-28 18:31:38 +01:00 |
|
florian
|
0efd3afb8c
|
+ arm: internal abs(<int64>)
+ arm: overflow checking for abs(...)
|
2024-03-28 15:56:52 +01:00 |
|
florian
|
f0cc07fe68
|
+ 8086: overflow checking for abs(<long/int64>)
|
2024-03-28 15:07:47 +01:00 |
|
florian
|
2641f65bb7
|
* compilation with -dEXTDEBUG fixed
|
2024-03-28 15:07:35 +01:00 |
|
florian
|
fea8050457
|
* fix i386 building after fb3c4ff75b
|
2024-03-27 00:04:46 +01:00 |
|
florian
|
15398549a4
|
* fix simplication of max(double,double) with both values being constants
|
2024-03-26 23:55:47 +01:00 |
|
florian
|
fb3c4ff75b
|
* avoid CMPs with constants outside the range of signed 32 bit values
|
2024-03-26 23:53:46 +01:00 |
|
Michaël Van Canneyt
|
564597a573
|
* Fix access violation: module can be reset while loading dependent units. Fixes issue #40705
|
2024-03-26 16:06:27 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
ee1916e919
|
* i8086: Local variables unused in "second_AndOrXorShiftRot_assign" on i8086 are now not defined on this platform
|
2024-03-26 14:18:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
11b341cc97
|
* x86: Added new OptPass1CMOVcc peephole optimisation routine to dust up min/max code
|
2024-03-26 14:18:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
c79361c010
|
* Min/max intrinsics now simplify deterministic results
|
2024-03-26 14:18:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
e4a0ce2fb5
|
* x86: Min/max intrinsic support
|
2024-03-26 14:18:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
77c86cafd0
|
* a64: Fixed bug where unsigned min/max inlines used a signed comparison
|
2024-03-26 14:18:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
81b7b80749
|
* Added support for 64-bit min/max intrinsics
|
2024-03-26 14:18:31 +00:00 |
|
florian
|
8971103a00
|
* use bit_set_reg_reg also to clear single bits in thlcgobj.a_load_regconst_subsetref_intern
|
2024-03-26 14:46:01 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
4378319f87
|
* Added missing "override" directive for XML node dump routine on TDerefNode
|
2024-03-26 13:25:46 +00:00 |
|
Pierre Muller
|
afea558fbe
|
Add -32/-64 for sparc GNU assembler calls
|
2024-03-25 23:48:14 +01:00 |
|
Pierre Muller
|
c68ddc5360
|
Add $EMUL also for sparc CPU GNU linker call on solaris OS
|
2024-03-25 23:48:14 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
948766a37a
|
* x86: New Op/TEST optimisation that rearranges register usage for the most efficient execution
|
2024-03-25 22:25:29 +00:00 |
|
florian
|
7c609ee7c4
|
* proper fix for 9056ab8025
|
2024-03-25 22:33:30 +01:00 |
|
Pierre Muller
|
9056ab8025
|
Fix generation of i8086 CPU code, as BTR/BTS instructions require at least 386 CPU
|
2024-03-25 14:29:08 +00:00 |
|
florian
|
ac150e58c8
|
* thlcgobj.a_load_regconst_subsetref_intern uses a_bit_set_reg_reg if applicable
|
2024-03-25 00:01:24 +01:00 |
|
florian
|
12176d3683
|
* avoid to generate bts/r with memory operand
+ thlcgx86.a_bit_set_reg_reg
|
2024-03-24 23:03:33 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
2b7df4237b
|
* nf_pass1_done, nf_error, nf_processing and nf_do_not_execute
have been moved to a new "transientflags" node field that
isn't stored in PPU files
|
2024-03-24 18:14:49 +00:00 |
|
ccrause
|
dd858f37aa
|
Ensure register to be eliminated is de-allocated before applying optimization LdsMov2Lds.
|
2024-03-24 13:54:31 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
99851f22f5
|
* a64: New B -> RET peephole optimisation
|
2024-03-24 13:31:52 +00:00 |
|
florian
|
20f9b82543
|
* AArch64: overflow checking for abs
* tabs adapted: also abs(longint) must overflow check on 64 bit platforms
|
2024-03-24 12:47:16 +01:00 |
|
florian
|
1fccfd3ee1
|
* AArch64: avoid false overflow error in case of -2^63+0
|
2024-03-24 12:36:02 +01:00 |
|
florian
|
b7322ae4c3
|
* write correct type name in error message
|
2024-03-23 22:24:55 +01:00 |
|
florian
|
4100f75056
|
+ optimize s:=s+[e] into include(s,e)
|
2024-03-23 21:02:15 +01:00 |
|
florian
|
06fc6f1e6b
|
* use destination location instead of a temp when constructing sets, resolves #40384
|
2024-03-22 21:50:42 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
e1297e0859
|
* Adjustment to "(v>=x) and (v<=y)" so it also optimises its inverse: "(v<x) or (v>y)"
|
2024-03-20 21:01:35 +00:00 |
|
Pierre Muller
|
36b511f057
|
FFix compilation of compiler with -dTest_Double_checksum
|
2024-03-20 17:30:12 +00:00 |
|
Michaël Van Canneyt
|
c52794f943
|
* Fix build of nativent
|
2024-03-19 10:27:30 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
f77b9fa4ef
|
* arm/a64: Fixed bug where shifter operand was not preserved in AND/CMP -> TST optimisation
|
2024-03-18 21:21:54 +00:00 |
|
florian
|
316e127948
|
* overflow checking for ti386inlinenode.second_abs_long
|
2024-03-17 10:24:20 +01:00 |
|
florian
|
c3b8b51cb5
|
* more overflow checking for abs(...)
|
2024-03-16 21:54:12 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
a907eb49c9
|
* a64: Several secondary peephole optimizations that clean up CSEL instructions
|
2024-03-15 18:08:37 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
ef1cb852a8
|
* a64: New CSEL block optimisations ported over from x86 CMOV block optimisations
|
2024-03-15 18:08:37 +00:00 |
|
florian
|
2a46596edd
|
* overflow check abs(...) for x86
|
2024-03-14 23:14:47 +01:00 |
|
Pierre Muller
|
f88622a799
|
Be sure not to consume semicolon after _USES twice
|
2024-03-11 11:07:02 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
755d221230
|
* x86: Additional optimisation in OptPass2MOV to help with sub-optimal MOV/CMP/MOV triplets (and a minor refactor).
|
2024-03-10 21:09:59 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
f4e955d04f
|
* x86: Improvement to CMOVcc/Jcc optimisation that attempts to remove temporary registers storing constants
|
2024-03-10 21:09:59 +00:00 |
|
J. Gareth "Curious Kit" Moreton
|
a7fe49f38f
|
* x86: CMOVcc/Jcc pairs are now changed to MOV/Jcc if the register is not used if the jump doesn't branch
|
2024-03-10 21:09:59 +00:00 |
|
florian
|
e35403c3b8
|
* optimize additions of empty sets away if possible, part of #40384
|
2024-03-10 10:47:24 +01:00 |
|
florian
|
594d4cc4f9
|
* transform -1-x into not(x)
|
2024-03-08 22:42:26 +01:00 |
|
florian
|
5086cf7e72
|
* set packenum and setalloc to defined values when changing mode, resolves #40056
|
2024-03-08 20:12:55 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
1dbcba4796
|
* arm/a64: Bug fix where instructions optimised into "mov r0,r0"
could leave registers undefined in some circumstances
|
2024-03-08 18:24:52 +00:00 |
|
Michaël Van Canneyt
|
4c434ceb08
|
* Only consume semicolon after uses clause when units have been connected. Fixes remaining failing tests
|
2024-03-08 11:31:49 +01:00 |
|
Michaël Van Canneyt
|
22de07446d
|
* Fix tgeneric91, need to postpone some additional generic procedures
|
2024-03-07 16:12:24 +01:00 |
|
Michaël Van Canneyt
|
b2bc020fd7
|
* Handle rename of module during parsing, rebuild hash list. Fixes broken test tb0406.pas
|
2024-03-07 10:26:22 +01:00 |
|
florian
|
f41025f5dd
|
* optimize also -(x+1) and -(1+x) into not(x)
|
2024-03-06 22:56:37 +01:00 |
|
Michaël Van Canneyt
|
2e6c3b060d
|
* Initialize firstwaiting, after remark by Pierre
|
2024-03-06 21:55:47 +01:00 |
|
Michaël Van Canneyt
|
76687a04e5
|
* Fix TW22160B1
|
2024-03-06 17:08:52 +01:00 |
|
Pierre Muller
|
821f3e326f
|
Fix compilation with -dDEBUG_DEVIRT
|
2024-03-06 14:40:22 +00:00 |
|
Pierre Muller
|
cc552c0815
|
Fix compilation with -dEXTDEBUG
|
2024-03-06 14:34:53 +00:00 |
|
Pierre Muller
|
9db42f5e67
|
Fix post_load_or_compile tppumodule method for SHORT_ON_FILE_HANDLES code by adding from_module parameter
Fixes compilation of text mode IDE for go32v2 target.
|
2024-03-06 14:16:37 +00:00 |
|
florian
|
0fb4fca957
|
* fix building of llvm compiler after node flag refactoring
|
2024-03-05 22:23:39 +01:00 |
|
florian
|
59c77a48b5
|
* transform -x-1 into not(x), resolves #40313
|
2024-03-05 22:11:32 +01:00 |
|
florian
|
1f2203c304
|
* fix compilation with 3.2.2 rtl
|
2024-03-05 22:11:32 +01:00 |
|
Michaël Van Canneyt
|
a15dfba971
|
* Fix compilation
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
325d29307f
|
* Indentation and casing changes
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
91946b78d5
|
* Fix xtensa compilation
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
4e8b1cb97a
|
* Fixed signature of insert_init_final_table
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
64e7dcbc81
|
* Log continue result
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
6ac14de986
|
* Properly handle finish state
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
42c9eb4096
|
* Add Logging of tasks under define
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
c96ef4902b
|
* Handle finish state separately
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
2ba04dbd13
|
* generate init_final table from actual uses clauses
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
0bf0f26dd5
|
* Introduce m_processed
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
546de9f7e7
|
* Return first waiting in usedunitsloaded
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
c98e160c19
|
* Introduce state variables, used to construct list of used units
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
462c201ce6
|
* Introduce m_processed
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
5298e25c84
|
* Introduce task (Single main-level task at the moment, no change in behaviour).
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
881eb0fab5
|
* Check whether call to deref(impl) is needed during re-resolve (indexes may be -1 if not yet built)
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
a5caf91f74
|
* Split load_ppu for clarity
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
8aa9ac99a6
|
* Remove loaded_from in tmodule. The same unit can be loaded from different places
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
9cc30829fa
|
* Restore messages state
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
1351746a46
|
* Make tglobalstat a class
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
6f7481fd24
|
* Remove freeold from set_current_scanner
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
7cd044eae7
|
save/restore state when loading other modules.
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
d9317e5df5
|
* Remove use of current_module
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
a81715d6ea
|
* Pass loaded from
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
3ce07ef6fa
|
* use set_current_scanner, add mainscanner
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
93ae6261cc
|
* Make current_scanner a function/procedure to better control lifetime
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
4443e83b75
|
* replace/restore_scanner use var in state to make sure the correct scanner is freed
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
8fa3c57c1b
|
* split module creation from parsing start
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
5b27fa9375
|
* Remove commented variables
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
83b5047931
|
* Move program/library header parsing to separate routines
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
b45aee980f
|
* Split parsing from post-processing, code generation and linking
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
122251f71d
|
* Move interface parsing part to separate routine so we can split tasks later
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
560d597c85
|
* Move implementation part to separate routine so we can split tasks later
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
97f159e4b2
|
* Refactory: remove current_module use from top-level parsing
|
2024-03-05 07:56:14 +00:00 |
|
Michaël Van Canneyt
|
277a3be9b0
|
* DRY Refactoring: introduce discardppu
|
2024-03-05 07:56:14 +00:00 |
|
florian
|
bf2a3566fa
|
* patch by Sergey Larin: Compile dynarr := nil (and, preferably, SetLength(dynarr, 0)) as fpc_dynarray_clear, resolves #40309
|
2024-03-04 22:44:23 +01:00 |
|
florian
|
bcf320a76e
|
* patch by Rika: Don’t pretend optinfo^.index can be aword(−1), resolves #40405
|
2024-03-03 22:49:28 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
1ab46c909a
|
* Reduced the number of expensive calls to "GetUserCode" in DFA
|
2024-03-03 00:10:41 +00:00 |
|
florian
|
64141c8bdd
|
* increase ppu long version as the format changed
|
2024-03-02 21:31:21 +01:00 |
|
florian
|
4103b3d180
|
* formatting
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
dba69917a9
|
* Flags specific to TInlineNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
4736cc2360
|
* Flags specific to TDerefNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
179fc5848b
|
* Flags specific to TArrayConstructorNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
ecc16278f0
|
* Flags specific to TAssignmentNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
0e5da37533
|
* Flags specific to TAsmNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
c21a0f0654
|
* Flags specific to TModDivNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
b804fc5164
|
* Flags specific to TAddNode have been moved to their own field
|
2024-03-02 21:31:21 +01:00 |
|
J. Gareth "Curious Kit" Moreton
|
5ea60b97b1
|
* Clarity over blocknode and VMT flags. nf_usercode_entry doesn't need to be cascaded in "firstpass" as TBlockNode.Simplify already does this
|
2024-03-02 21:31:21 +01:00 |
|