Commit Graph

69206 Commits

Author SHA1 Message Date
Michaël Van Canneyt
cc195c649a * Guard against empty source, fixes build of docs 2024-02-13 09:07:50 +01:00
florian
3ed5a4a022 + when calling FPC_THROWFPUEXCEPTION in a sub routine, pi_do_call must be set, fixed for aarch64 2024-02-12 23:25:35 +01:00
Michaël Van Canneyt
23ac6c3090 * Make paramdefs owned, so IDE can trace back changes to owning component 2024-02-12 20:54:06 +01:00
Pierre Muller
eae74aaee0 Follow sdas documentation for .ascii limitations by using only printable chars and .byte for others 2024-02-12 14:03:02 +00:00
Pierre Muller
53bf5dc6ef Avoid wrong typecast by adding check that p1 is an instuction before casting it to taicpu 2024-02-12 10:39:18 +00:00
J. Gareth "Curious Kit" Moreton
271f69db12 * arm/a64: "OptPass2AND" and "OptPass2CMP" adapted to remove vestigial CMP and TST instructions 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
6b2e4fa413 * arm: "OpCmp2OpS" moved to Pass 2 so it doesn't conflict with AND; CMP -> TST optimisation 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
bf29f2051c * arm/a64: Added new TST post-peephole optimisation to replace previous AND/CMP/B(c) optimisation 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
b18c10d0d8 * arm/a64: New "OptPass2TST" routine to catch "TST; B.c; AND -> ANDS; B.c" optimisation 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
9f19f582c4 * arm/a64: New AND/CMP -> TST or ANDS optimisation 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
29916bc6f6 * arm: Fixed "RegInInstruction" and "RegModifiedByInstruction" not handling the flags properly 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
38d2f3d58c * a64: Renamed OptPostCMP/And to PostPeepholeOptCMP/AND for internal consistency 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
d7d4b446c1 * FindRegAllocBackward will now return nil if it hits a dealloc for the register first 2024-02-11 21:39:19 +00:00
J. Gareth "Curious Kit" Moreton
1fafcbc125 * New "TryRemoveRegAlloc" optimisation utility 2024-02-11 21:39:19 +00:00
florian
4f82fade82 * extend LeaCallLeaRet2Jmp optimization to work on windows 2024-02-11 18:56:26 +01:00
florian
e7600ee245 * patch by Rika: Small improvements to (a|u)strings.inc, resolves #40364 2024-02-11 16:29:53 +01:00
J. Gareth "Curious Kit" Moreton
62495c964a * x86: New "aoc_DoPass2JccOpts" option to catch branch and
STC/CLC optimisations that only manifest in Pass 2
2024-02-11 15:05:57 +00:00
J. Gareth "Curious Kit" Moreton
2055ef4e88 * x86: STC/CLC optimisations can now handle multiple Jcc instructions 2024-02-11 15:05:57 +00:00
J. Gareth "Curious Kit" Moreton
de03a1b894 * x86: Additional STC/CLC; J(N)C deterministic jump optimisation 2024-02-11 15:05:57 +00:00
J. Gareth "Curious Kit" Moreton
698d432cce * x86: Separated out Jcc; STC/CLC optimisation and added additional peephole optimisations 2024-02-11 15:05:57 +00:00
J. Gareth "Curious Kit" Moreton
3e06242fd8 * x86: New "STC/CLC; MOV" peephole optimisation 2024-02-11 15:05:57 +00:00
J. Gareth "Curious Kit" Moreton
d06dd2b0ea * x86: New "Jcc; CLC/STC; .Lbl" optimisation 2024-02-11 15:05:57 +00:00
Rika Ichinose
c29dd86bb2 Remove runtime ABI adapter in x86_64.inc:IndexByte/Word, and save two jumps in the common case. 2024-02-11 15:05:03 +00:00
florian
2575cbc439 * complain about turned off support of c style operators only in the parser,
so error recovery is better
2024-02-11 11:05:05 +01:00
Rika Ichinose
7bf502ad40 Change Mov*DQ to Mov*PS; they are always equivalent because no operations but the memory transfers are performed, and 1 byte shorter each. 2024-02-10 22:47:40 +00:00
Rika Ichinose
12f18177ae Simplify x86_64.inc:Move non-temporal loops, and adjust thresholds for move distances considered too short for NT. 2024-02-10 22:47:40 +00:00
Rika Ichinose
0b5998ee8b Write two last values after 2× loops unconditionally instead of an extra check. 2024-02-10 22:47:40 +00:00
Rika Ichinose
e395166cb7 Check for Move overlaps in more obvious way (that also does no jumps in forward case). 2024-02-10 22:47:40 +00:00
florian
8a48d1bbbc * clean up of arrayconstructor_to_set, the stringdef case didn't work for years and is not tested, so it probably is not supposed to be there at all 2024-02-10 22:16:02 +01:00
Michaël Van Canneyt
cbbcc4356a * Make color distinct from cardinal 2024-02-10 20:23:14 +01:00
marcoonthegit
78eb340a4f * change elfid to 1400097 aka FreeBSD 14.0 2024-02-10 17:02:44 +01:00
florian
bc0d2293a1 * stricter type checking for set constants, resolves #40631 2024-02-09 23:36:44 +01:00
Sven/Sarah Barth
43721f21c4 * fix #40621: when checking for visibility of members then always use the genericdefs for specializations for correct scoping
+ added test
2024-02-09 17:24:39 +01:00
Sven/Sarah Barth
ed8a05d697 * use iscurrentunit only when there isn't a suitable def that the moduleid of the symtables can be compared to 2024-02-09 17:22:46 +01:00
Sven/Sarah Barth
ddc2259e5e * protect against comparisons of nested types of generics and specializations 2024-02-09 17:14:29 +01:00
Sven/Sarah Barth
244d3df869 * make Lazarus' CodeTools happy 2024-02-09 15:10:31 +01:00
Sven/Sarah Barth
75b5e8e63d * fix #40603:
- initialize thrdinfo record using Default() so that padding bytes are zeroed as well
  - correctly pass the count of ULONG_PTRs
2024-02-09 15:08:27 +01:00
Sven/Sarah Barth
2c527cfc01 * fix typos in comment, no code changes 2024-02-09 14:01:00 +01:00
florian
4fd5237c0e * mask FPU exceptions during libxml initialization to avoid an fpu exception with newer libxml, resolves #40622 2024-02-08 23:03:04 +01:00
Michaël Van Canneyt
be7b9a66db * Patch from Werner Pamler to implement GetInternalSize. Fixes issue #40630 2024-02-08 21:27:43 +01:00
Nikolay Nikolov
26855a29c8 * fix warning 2024-02-08 16:54:33 +02:00
Nikolay Nikolov
e073d5f7f7 + implemented support for the local.get, local.set and local.tee instructions in TWasmValidationStacks.Validate 2024-02-08 16:49:45 +02:00
Michaël Van Canneyt
3a5db26abf * Add TRttiEnumerationType for Delphi compatibility 2024-02-07 15:31:00 +01:00
J. Gareth "Curious Kit" Moreton
b4eabbe5ce * x86: Fixed CPU feature flags for AMD Jaguar and Piledriver 2024-02-06 22:15:51 +00:00
J. Gareth "Curious Kit" Moreton
e4bd58d66a * x86: Replaced CPU features array with "cpu_x86_64_v1_flags" where possible 2024-02-06 22:15:51 +00:00
florian
d7a486f225 * comment fixed, hint by Maxim Ganetsky 2024-02-06 22:09:52 +01:00
Michaël Van Canneyt
cde58d66fc * Make GetEnumName safer, check actual type. Allow passing an integer 2024-02-06 18:04:44 +01:00
Pierre Muller
46508f6af1 Add some output to explain failure for test tests/webtbs/tw40624.pp 2024-02-06 13:09:15 +00:00
florian
f80f1112d4 + Zen 4 2024-02-05 23:18:07 +01:00
Nikolay Nikolov
28c4c58b34 * fix warning 2024-02-05 23:35:45 +02:00