Commit Graph

24995 Commits

Author SHA1 Message Date
florian
9ec85f940e * do not remove register deallocations/allocation pairs if the register is written
git-svn-id: trunk@49129 -
2021-04-06 19:16:17 +00:00
florian
503fc85dff * patch by J. Gareth Moreton: handle register allocations correctly in MovMov2Mov 3, resolves #38703
git-svn-id: trunk@49128 -
2021-04-06 15:50:28 +00:00
florian
05cf47f995 * AVR: fixed TCpuAsmOptimizer.RegLoadedWithNewValue
git-svn-id: trunk@49126 -
2021-04-06 11:49:48 +00:00
florian
e4cc8af8fc * Makefiles regenerated
git-svn-id: trunk@49124 -
2021-04-05 15:39:07 +00:00
florian
87a67a3222 * typo fixed
git-svn-id: trunk@49118 -
2021-04-03 22:01:47 +00:00
florian
08817f1aed * fixes to deadstore optimization
git-svn-id: trunk@49117 -
2021-04-03 21:28:09 +00:00
florian
f3d8efc8ec * Aarch64: support LSE instructions
git-svn-id: trunk@49112 -
2021-04-03 11:30:23 +00:00
florian
f879d76491 * forgotten " added
git-svn-id: trunk@49109 -
2021-04-02 21:41:31 +00:00
florian
f38f9ff930 * Aarch64: cpu capabilites defines properly named
* Aarch64: enable defining cpu capabilites

git-svn-id: trunk@49108 -
2021-04-02 20:57:12 +00:00
florian
9e7d80a8bd * Aarch64: the M1 is an ARM v8.4-a CPU
git-svn-id: trunk@49107 -
2021-04-02 19:52:00 +00:00
florian
3999d037e3 + write controller unit wiht -ix as well
git-svn-id: trunk@49106 -
2021-04-02 17:13:11 +00:00
florian
bf65bad5c5 + Aarch64: cpu_capabilities support
git-svn-id: trunk@49105 -
2021-04-02 17:08:34 +00:00
florian
f0023a3b04 * Aarch64: patch by J. Gareth Moreton: fix constant writing, resolves #38695
+ test

git-svn-id: trunk@49104 -
2021-04-02 16:44:43 +00:00
svenbarth
e53d18d876 * Windows on ARM64 adheres to the usual Aarch64 ABI, thus references need to be copied on the caller side as well
git-svn-id: trunk@49103 -
2021-04-02 15:25:05 +00:00
svenbarth
2885d3ab56 * fix for Mantis #37426: don't allow an instance function of a type helper to be used on the type instead of a concrete value
+ added test

git-svn-id: trunk@49102 -
2021-04-02 15:25:01 +00:00
florian
682e29c4ff + enable colored output on darwin, resolves #38693
git-svn-id: trunk@49099 -
2021-04-01 16:32:52 +00:00
florian
7811b915a9 * x86-64: we can spill replace 32 bit operations if the operation does not modify a register
git-svn-id: trunk@49097 -
2021-03-31 21:23:22 +00:00
pierre
8ea95e9b95 Use value $00000F00 instead of $F0000000 for IF_FPMASK, and adapt all floating point constants, to avoid IF_VFPv4 having the same value as IF_PASS2
git-svn-id: trunk@49096 -
2021-03-31 21:03:50 +00:00
florian
cc64d9eb4e * do not swap left/right code generation for assignment nodes if
conditional expressions are involved, resolves #38129

git-svn-id: trunk@49095 -
2021-03-31 20:53:18 +00:00
pierre
c8c6e647be Avoid keeping optimized out node in callcleanupblock.statements or callinitblock.statements
git-svn-id: trunk@49094 -
2021-03-31 20:53:08 +00:00
florian
07a8e6c1d6 + some more change information entries added
git-svn-id: trunk@49092 -
2021-03-31 18:53:31 +00:00
florian
bc4a22e24d + Xtensa: tcpuinlinenode.second_prefetch
git-svn-id: trunk@49090 -
2021-03-30 21:43:20 +00:00
florian
aa1a68000b * prefetch instructions read only the operand
git-svn-id: trunk@49089 -
2021-03-30 21:24:00 +00:00
florian
47557e0ad2 * cpubase.cgsize2subreg should handle all valid sizes, resolves #38557
git-svn-id: trunk@49087 -
2021-03-30 16:44:19 +00:00
nickysn
8ec71bc810 * fixed memory leak, introduced accidentally in r48998
git-svn-id: trunk@49084 -
2021-03-30 11:05:00 +00:00
Jonas Maebe
793ecb3fa6 * fixed assembling via pipe on Darwin
git-svn-id: trunk@49067 -
2021-03-27 19:01:04 +00:00
florian
6218254e53 * allow also 8 byte string constants in assembler, resolves #28640
git-svn-id: trunk@49066 -
2021-03-27 17:13:14 +00:00
Jonas Maebe
308aee42a0 * the offset parameter of reference_reset* must be asizeint rather than
longint (mantis #38636)

git-svn-id: trunk@49065 -
2021-03-27 15:31:33 +00:00
svenbarth
ca7c775e36 * fix for Mantis #38642: for enumerations with jumps Delphi behaves as follows:
- GetTypeKind returns tkEnumeration (FPC previously generated a compile error here)
  - GetTypeInfo on a generic parameters returns Nil for such types (FPC previously generated a compile error here)
  - GetTypeInfo otherwise generates a compile error (as before)

git-svn-id: trunk@49064 -
2021-03-27 09:35:07 +00:00
svenbarth
067b9b2922 * copy and compare the typesym inside type nodes as well
git-svn-id: trunk@49062 -
2021-03-27 09:34:59 +00:00
florian
4d82e814a0 * patch by Do-wan Kim: fix loop unrolling for try .. finally blocks in win32,
similiar to r48972 for win64

git-svn-id: trunk@49057 -
2021-03-26 22:21:09 +00:00
florian
c2ff85ac5b * patch by J. Gareth Moreton: Nothing (NOP) node optimisation, resolves #38194
git-svn-id: trunk@49054 -
2021-03-25 21:51:52 +00:00
Jonas Maebe
7a0c6ab591 - removed unused leftovers from old t_bsd code
* no longer execute the linker via a shell script, but directly

git-svn-id: trunk@49046 -
2021-03-24 14:33:13 +00:00
Jeppe Johansen
1105726dcf * Add SAMD51P19A controller type. Unit generated by Michael Ring and slightly modified.
git-svn-id: trunk@49034 -
2021-03-22 18:40:12 +00:00
florian
bae6ca6883 * Dwarf: write variant fields only if the require features are present, resolves #38651
git-svn-id: trunk@49032 -
2021-03-22 18:11:41 +00:00
florian
a32a870f33 * another loop counter copying fix
git-svn-id: trunk@49028 -
2021-03-21 21:39:57 +00:00
florian
c4ddb94cb4 * remove nf_write from the counter node when converting for loops into while loops if the counter is only read
git-svn-id: trunk@49020 -
2021-03-20 21:28:58 +00:00
nickysn
9fa61a6c9f - removed the discardresult proc directive
git-svn-id: trunk@49017 -
2021-03-20 01:22:43 +00:00
florian
b9affc3406 * RiscV64: type conversion to 8 bit improved
git-svn-id: trunk@49015 -
2021-03-19 17:39:52 +00:00
florian
9e2bcd940a + RiscV: initial OpAddi02Op implementation
git-svn-id: trunk@49002 -
2021-03-18 21:49:25 +00:00
nickysn
ecad5e9a6c + WebAssembly implementation of g_rangecheck that uses if/endif instead of
jumps to labels (which causes internal compiler error, because they're not
  supported in WebAssembly)

git-svn-id: trunk@49000 -
2021-03-18 16:45:40 +00:00
nickysn
d608b4b689 * instead of registering all and then deleting non-propgetter/setter procdefs in
pdecvar.read_property_dec, don't register them by default, and then only
  register them, if they are propgetter/setter. This prevents dangling pointers
  in current_module.deflist and potential use-after-free bugs.

git-svn-id: trunk@48998 -
2021-03-17 19:16:38 +00:00
florian
53effea0f5 + X86: JccMovJmpMov2MovSetcc optimization
git-svn-id: trunk@48993 -
2021-03-16 22:19:21 +00:00
florian
612f063795 + patch by J. Gareth Moreton: AddMov2LeaAdd and AddMov2Lea optimizations, resolves #38579
git-svn-id: trunk@48989 -
2021-03-15 21:12:02 +00:00
nickysn
811cf381ad * when parsing unions, set the uniondef reference to nil in
current_module.deflist after freeing the object to prevent dangling pointers
  and use after free

git-svn-id: trunk@48986 -
2021-03-15 18:13:45 +00:00
nickysn
d090af4abe * skip nil values in current_module.deflist in TLLVMMachineCodePlaygroundAssembler.WriteImports
git-svn-id: trunk@48985 -
2021-03-15 18:12:36 +00:00
nickysn
f7dd8755cc + introduced TFPList.IndexOfItem and TFPObjectList.IndexOfItem, which are like
IndexOf, but can also search backwards. The same method already exists in
  FPC's classes unit.

git-svn-id: trunk@48984 -
2021-03-15 18:06:44 +00:00
pierre
a7de0b365b Avoid invalid typecast error when using -CR option
git-svn-id: trunk@48978 -
2021-03-15 13:25:59 +00:00
pierre
85fa313e59 Use uvalue field to get unsigned and avoid range check or overflow errors
git-svn-id: trunk@48977 -
2021-03-15 13:24:27 +00:00
nickysn
77f3acdf76 * the TFPList.List property made protected in order to discourage using it
directly, as this circumvents range checking

git-svn-id: trunk@48976 -
2021-03-14 23:17:44 +00:00