Commit Graph

1255 Commits

Author SHA1 Message Date
florian
9b1861a104 + enable cs_opt_consts on arm as well 2024-05-07 22:40:13 +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
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
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
Michaël Van Canneyt
4e8b1cb97a * Fixed signature of insert_init_final_table 2024-03-05 07:56:14 +00:00
florian
8146443336 + set pi_do_call on ARM as well if we check for fpu exceptions 2024-02-17 21:03:55 +01:00
florian
a71cc71585 + function needs_check_for_fpu_exceptions to unify fpu exception handling 2024-02-13 17:42:21 +01: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
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
florian
f7bfa0e426 * range checking is already performed in pass_typecheck 2024-01-07 17:51:35 +01:00
Pierre Muller
6e9521d99a Fix for trunk arm STM optimize bug 2023-11-12 18:22:19 +00:00
ccrause
652f21b656 RP2040 support based on modification by Michael Ring (https://github.com/michael-ring/freepascal). 2023-11-11 17:45:23 +00:00
J. Gareth "Curious Kit" Moreton
c4061e49e6 * ARM: Fixed issue where some offsets of ADR assembly instructions
were incorrectly encoded by the internal assembler
2023-10-22 12:04:05 +00:00
florian
be401422fd * more warnings after last commit fixed 2022-10-24 22:52:52 +02:00
J. Gareth "Curious Kit" Moreton
d6ff4ed967 * arm/a64: New sbfx/ubfx -> mov optimisation 2022-07-30 18:36:16 +00:00
Jonas Maebe
2ed4071c1e ARM: fixed compiler compilation after 75c16b6126 2022-07-24 15:00:49 +02:00
Jonas Maebe
75c16b6126 llvm: support for getting the llvm rtl (rt) architecture name
This is the name used as part of the llvm rt libraries, like
asan (address sanitizer)
2022-07-24 14:36:13 +02:00
J. Gareth "Curious Kit" Moreton
d1f035f456 * arm: Labels to constants are now data labels and not jump labels 2022-07-15 17:03:10 +00:00
J. Gareth "Curious Kit" Moreton
be39828fca * arm: Symbol reference counts are corrected when PC-relative data is inserted 2022-07-15 17:03:10 +00:00
florian
83ce54b815 set Tag_ABI_VFP_args to 1 only if the hard float abi is used, should resolve #39817 2022-06-30 22:02:11 +02:00
Jonas Maebe
03a961709b arm paramanager: always create at least one paraloc
Even for parameters of 0 bytes. Matches behaviour on other targets.
2022-06-13 22:52:27 +02:00
Pierre Muller
2cdbdcd5c5 Manually increase refs of newly created labelsymbol in insertpcrelativedata 2022-05-31 14:26:00 +00:00
Sven/Sarah Barth
7f3a5eb9ab * extend tabstractprocdef.getcopyas by a parameter to control whether the copy should be registered or not 2022-05-26 21:42:59 +02:00
florian
27fb9086aa * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
florian
2a93e65511 * seperator => separator 2022-01-02 13:12:33 +01:00
florian
6404478ea4 * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
florian
9423d5e390 + fp-armv8 fpu type added 2021-11-06 11:00:53 +01:00
florian
9feafc7bd7 + ARM: started on vfpv5 support 2021-11-05 23:05:38 +01:00
florian
ff3acfb8cd * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
florian
bbcc396644 * ARM: fix for Merge Add/Sub optimization
git-svn-id: trunk@49520 -
2021-06-21 21:36:32 +00:00
florian
356afdd25b * ARM (thumb): do not save registers in routines marked as noreturn
git-svn-id: trunk@49519 -
2021-06-20 18:14:30 +00:00
florian
50648f2a60 + ARM: PushPop optimziation
git-svn-id: trunk@49510 -
2021-06-17 21:12:08 +00:00
florian
e1d9d1be0a + Merge Add/Sub optimization
git-svn-id: trunk@49508 -
2021-06-16 19:53:56 +00:00
florian
3f8aeadb91 * do not generate exit code for arm (thumb and thumb-2) if a routine is marked as noreturn
git-svn-id: trunk@49506 -
2021-06-15 20:09:46 +00:00
florian
7ee31ae252 * optimization "Merging stores: STR/STR -> STM" cannot be carried out when generating thumb code
git-svn-id: trunk@49503 -
2021-06-15 19:05:34 +00:00
florian
776667366f * patch by J. Gareth Moreton: ARM - str/str -> stm optimisation, second part of #38975
git-svn-id: trunk@49499 -
2021-06-13 20:46:46 +00:00
florian
214936b90e * patch by J. Gareth Moreton: refactoring to standardise the "Peephole Optimization: " prefix on peephole debug messages, part of #38975
git-svn-id: trunk@49493 -
2021-06-09 18:31:52 +00:00
florian
134bc7eb42 * ARM: split TCpuThumb2AsmOptimizer.PeepHoleOptPass1Cpu
git-svn-id: trunk@49489 -
2021-06-07 21:20:43 +00:00
florian
814b68fac0 * more fixes for VASM for ARM
git-svn-id: trunk@49398 -
2021-05-23 19:46:40 +00:00
florian
e9b3db0d78 * more fixes to support vasm on arm
* do not crash on empty eabi attribute strings

git-svn-id: trunk@49397 -
2021-05-22 20:22:53 +00:00
florian
929fc50004 * cleanup
git-svn-id: trunk@49349 -
2021-05-10 20:30:31 +00:00
florian
8535c758ef + initial support for ARMv2
* check for unassigned valuestr when writing ntbs eabi attributes

git-svn-id: trunk@49348 -
2021-05-09 20:42:31 +00:00
florian
4ab310e0ed + ARM: basic vasm support
git-svn-id: trunk@49347 -
2021-05-08 20:48:59 +00:00
florian
d936280c6b * (modified) patch by J. Gareth Moreton to unify ldr/str optimizations on Aarch64/ARM, part of #38841
git-svn-id: trunk@49338 -
2021-05-05 20:38:05 +00:00
florian
0ffd4f8780 * fix compilation of arm compiler on 32 bit hosts
git-svn-id: trunk@49281 -
2021-04-27 16:36:40 +00:00