Commit Graph

26781 Commits

Author SHA1 Message Date
Pierre Muller
219fedfea6 Restore start section at end of assembler block inside z80 asm reader 2023-05-15 19:51:11 +02:00
Pierre Muller
7c64bce04e Set defdynlinker depending on selected ABI for riscv32 and riscv64 2023-05-11 16:21:05 +00:00
Pierre Muller
665670ae01 Add -EB or -EL paramter to xtensa assembler call (Warning: this requires a patched 2.40 release\!) 2023-05-11 01:02:04 +00:00
Pierre Muller
4750840e89 Specify endianess and abi when calling xtensa linker 2023-05-11 01:02:04 +00:00
Pierre Muller
60cff917ba Only modify softfloat_exception_mask, as this is not handled equally for all CPUs with GetEXceptionMask/SetExceptionMask 2023-05-10 15:16:24 +01:00
Pierre Muller
24acfb8064 * Use correct sizeof to check if entry size is large enough 2023-05-10 07:38:28 +01:00
Pierre Muller
b53034705f Use GetExceptionMask/SetExceptionMask to avoid floating point exception inside FPC_SOFT_FFPUX80 code 2023-05-06 10:03:26 +02:00
Pierre Muller
f720ea3a21 Restrict previous change to compilers that do not have 10-byte extended type 2023-05-04 22:54:59 +02:00
Pierre Muller
bb407aa135 Fix for tentryfile.getreal with FPC_SOFT_FPUX80, putreal still needs the same change 2023-05-04 00:23:30 +02:00
J. Gareth "Curious Kit" Moreton
e40996cd2c * Fixed bug in "JccMovJmpMov2CMovCMov" optimisation where it didn't track registers in references getting changed 2023-04-30 22:25:55 +00:00
Pierre Muller
144ee6d51d Add missing swaping in case of different endianess of stab entry inside TInternalAssembler.WriteStab 2023-04-30 21:23:06 +02:00
Pierre Muller
dc04a8a677 Fix storing of unaligned 64-bit to memory 2023-04-21 10:32:13 +01:00
Pierre Muller
aaf356ba9f Avoid read past buffer end for empty source when checking for utf-8 signature 2023-04-12 20:10:44 +02:00
Pierre Muller
892220d6fe Treat -Cb / -Cb- options in first pass (to be able to use FPC_BIG_ENDIAN inside .fpc.cfg config file) 2023-04-06 16:49:40 +02:00
Pierre Muller
2a4ca98e85 Use systems_darwin set for supported targets for as_clang_llvm_darwin 2023-04-06 14:40:15 +00:00
Pierre Muller
3855625b8d Add tf_use_psabieh for LLVM for x86_64-iphonesim, aarch64-ios and aarch64-iphonesim targets 2023-04-05 00:01:03 -05:00
florian
a807144ead * patch by Rika: Fix and possible simplification of SanitiseXMLString, part of #39800 2023-04-04 23:21:14 +02:00
florian
8f3cce556d * some error messages use nicer symbol names 2023-04-01 22:34:37 +02:00
Nikolay Nikolov
4143912b72 * use a TFPList, instead of a dynamic array in twasmnodeutils.InsertObjectInfo.
No functional changes.
2023-04-01 17:17:42 +03:00
Nikolay Nikolov
e82c98bfce * wasm32: generate module info by traversing through current_module and its
used_units list recursively. This should fix #40229
2023-04-01 04:25:15 +03:00
florian
e40f997a40 * another patch to fix #40223 2023-03-31 23:45:45 +02:00
Pierre Muller
644ffa8e7a Do not always set DEBUG_AOPTCPU 2023-03-30 22:07:37 +00:00
florian
6663d5ca63 * do not replace index registers with esp/rsp, resolves #40223 2023-03-30 21:36:35 +02:00
Dmytro Bogatskyy
327aac7f24 Add aarch64-iphonesim target 2023-03-27 18:45:00 +00:00
florian
b797bbf5dc * spelling fixed 2023-03-26 15:55:37 +02:00
florian
466561f09f * patch by Rika: Use Index* for pointer lists, resolves #40218 2023-03-25 21:32:29 +01:00
florian
3ad8b4199c * patch by Rika: Shorten cutils.compareansistrings, resolves #40213 2023-03-24 22:50:19 +01:00
Jonas Maebe
12bde4e903 WPO: fix dead code detection, and handle procvars
Extend dead code detection to not only look for the main mangled name, but also
for any aliases before deciding that a routine has been dead-stripped.

Assume objects/classes can also be constructed if the address of one of their
constructors or of the TObject.NewInstance class method has been taken.

Resolves #40204
2023-03-24 21:22:18 +01:00
florian
8cd10d88cc * revert use of DW_AT_external for types as this is not covered by the dwarf standard 2023-03-23 22:44:00 +01:00
florian
4848327300 * write types declared in the interface section with a DW_AT_external tag, should resolve #40210 2023-03-22 21:16:49 +01:00
florian
488c389b9b + support FILEEXISTS(...) in preprocessor expressions, resolves #39527
+ tests
  * tscannerfile.readpreproc sets preproc_pattern correctly for quoted strings
2023-03-20 23:17:09 +01:00
florian
0d3ec87492 * also initalize default helper variables of initialization sections, resolves #40183 2023-03-19 21:19:10 +01:00
Jonas Maebe
0ea0b69a30 LLVM: cleaned up some comments 2023-03-18 23:14:25 +01:00
Jonas Maebe
e41bfa0495 LLVM: LLVM 16 support
No changes compared to LLVM 15 that affect us
2023-03-18 23:13:58 +01:00
Jonas Maebe
839849085b LLVM: don't use type names in ctor/dtor arrays
Workaround for https://github.com/llvm/llvm-project/issues/56809
2023-03-18 23:13:03 +01:00
Jonas Maebe
0e46041717 WPO: also consider NewInstance to detect class instancing
Resolves #40200
2023-03-18 21:18:25 +01:00
florian
64319dc019 * PopCount takes care only of the bit pattern, so take the uvalue to avoid an internal error, resolves #40190 2023-03-17 22:30:36 +01:00
Sven/Sarah Barth
c1ecfc323a * ensure that a procvar (especially a "REFERENCE TO") begins either with FUNCTION or PROCEDURE
+ added test
2023-03-15 23:39:59 +01:00
florian
7909f00c83 * project files updated 2023-03-15 23:01:44 +01:00
florian
2b0317f400 * compilation fixed with -Oodfa 2023-03-14 23:10:32 +01:00
florian
30cb20bccd + riscv32-freertos: first version of TlinkerFreeRTOS.GenerateDefaultLinkerScripts 2023-03-14 22:22:01 +01:00
J. Gareth "Curious Kit" Moreton
3f25438d35 * x86: TEST/Jcc/TEST optimisations can now look beyond the next instruction under -O3 2023-03-11 22:10:35 +00:00
J. Gareth "Curious Kit" Moreton
d372286159 * x86: RegModifiedByInstruction and RegInInstruction
are now more accurate for (I)MUL and (I)DIV.
2023-03-11 22:10:35 +00:00
J. Gareth "Curious Kit" Moreton
3635f7cd6f * x86: Fixed oversight in RegModifiedByInstruction not checking W0, W1 and WU-type flags 2023-03-11 22:10:35 +00:00
J. Gareth "Curious Kit" Moreton
b637a3a022 * x86: Fix to MOV/CMP register deallocation positioning 2023-03-11 22:10:35 +00:00
ccrause
f83a8f0f8f Only perform OpCp2Op optimization when the first Op is ANDI and comparison is against 0. 2023-03-09 18:19:20 +02:00
J. Gareth "Curious Kit" Moreton
77f53ebde3 * x86: The LEA/LEA optimisations can now work with a different
destination register and the intermediate register still in
	 use.
2023-03-08 21:54:41 +00:00
J. Gareth "Curious Kit" Moreton
931bda5633 * x86: LeaLea2Lea now handles cases where the second LEA instruction
has a second register in the reference.
2023-03-08 21:54:41 +00:00
florian
66ff7a928c + added debug messages 2023-03-08 22:54:17 +01:00
florian
99b01f6634 * second mul might get called with a zero operand if the other has a side effect,
handle this correctly in ti386addnode.second_mul64bit, resolves #40182
2023-03-06 23:19:34 +01:00