Commit Graph

320 Commits

Author SHA1 Message Date
florian
d7a9a73194 + stack pages need to be touched on aarch64-win64 as well
git-svn-id: trunk@49559 -
2021-06-24 20:02:26 +00:00
florian
e841e95390 * aarch64-darwin supports unaligned memory access, confirmed by testing with clang 12
git-svn-id: trunk@49469 -
2021-06-02 20:03:55 +00:00
florian
5e3efa4455 * Aarch64: apply OptPass1Data to CSEL as well
git-svn-id: trunk@49414 -
2021-05-30 18:08:37 +00:00
florian
964c04aded * patch by J. Gareth Moreton, second part of #38841
git-svn-id: trunk@49341 -
2021-05-06 18:44:18 +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
210674b9a0 * patch by J. Gareth Moreton: AArch64: Improved speed and efficiency with constant generation, resolves #38837
git-svn-id: trunk@49321 -
2021-05-01 18:56:25 +00:00
Jonas Maebe
5ca1e37fb6 * AArch64: fix spilling information for BFI
git-svn-id: trunk@49312 -
2021-05-01 13:58:07 +00:00
pierre
5ef44c550a Avoid range/overflow error after commit #49290
git-svn-id: trunk@49298 -
2021-04-30 09:55:11 +00:00
florian
256ca9d210 * patch by J. Gareth Moreton: AArch64 "magic division"
(replace division by constant with multiplication), part of #38806

git-svn-id: trunk@49290 -
2021-04-29 19:48:54 +00:00
pierre
595edf6f9b Use as-clang as idtxt for as_aarch64_clang_gas_info
git-svn-id: trunk@49287 -
2021-04-28 23:03:47 +00:00
pierre
db02c7c85a Add -march=XXX option for aarch64 external assemblers
git-svn-id: trunk@49269 -
2021-04-26 21:10:25 +00:00
florian
5557dbedf2 + Aarch64: directly inline code for frac(...)
git-svn-id: trunk@49261 -
2021-04-25 09:26:47 +00:00
florian
cd3570caf1 + Aarch64: use frintz for int(...) instead of creating a helper call
git-svn-id: trunk@49260 -
2021-04-25 08:53:12 +00:00
Jonas Maebe
7c9fb4b4af * AArch64: fix storing a 32 bit value in the lower 32 bits of a 64 bit
subsetreg (mantis #38766)

git-svn-id: trunk@49236 -
2021-04-19 20:52:12 +00:00
florian
77681333f5 * patch by J. Gareth Moreton: AArch64 OptPass1Shift register tracking fault fix, resolves #38691
git-svn-id: trunk@49235 -
2021-04-19 19:54:39 +00:00
florian
d53b17cadc + Aarch64: completed LSE support for all interlocked operations
git-svn-id: trunk@49212 -
2021-04-16 19:33:31 +00:00
Jonas Maebe
bb977b398d * AArch64: fix spilling integer registers to stack offsets that cannot be
encoded directly into the spilling instructions (second part of
    mantis #38053)

git-svn-id: trunk@49207 -
2021-04-14 20:56:32 +00:00
Jonas Maebe
4b4ae79609 * AArch64: fixed spilling info for MOVK (part of mantis #38053)
git-svn-id: trunk@49206 -
2021-04-14 20:56:29 +00:00
Jonas Maebe
d8021a1102 + FreeBSD/AArch64 support (patch by Mikaël Urankar, mantis #38441)
git-svn-id: trunk@49157 -
2021-04-10 07:57:28 +00:00
Jonas Maebe
ca399f3c71 * don't generate high-level CFI statements when the selected assembler
does not support them, even if the target normally uses them
   o fixes assembling with -Aas-darwin for i386/arm/x86-64 (on OS
     versions that used those)

git-svn-id: trunk@49138 -
2021-04-08 19:50:27 +00:00
florian
c90616944d + Aarch64: create better code for not(<byte>)
git-svn-id: trunk@49135 -
2021-04-08 17:21:59 +00:00
florian
f3d8efc8ec * Aarch64: support LSE instructions
git-svn-id: trunk@49112 -
2021-04-03 11:30:23 +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
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
Jonas Maebe
cfa3f4fa8c + added b.cc/b.cs support to AArch64 assembler reader (mantis #38485)
git-svn-id: trunk@48803 -
2021-02-24 15:40:22 +00:00
florian
ef8d520e82 * more cfi support for aarch64
git-svn-id: trunk@48714 -
2021-02-18 21:44:12 +00:00
florian
599ba8cc2a + generate initial cfi for aarch64
git-svn-id: trunk@48701 -
2021-02-17 20:43:37 +00:00
yury
75491ae21c * Removed/ifdefed the assigned and unused variables.
git-svn-id: trunk@48391 -
2021-01-24 13:58:17 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
florian
2519fb1266 * patch by J. Gareth Moreton: aarch64 EXTDEBUG fixes and extensions, resolves #38383
git-svn-id: trunk@48337 -
2021-01-22 22:02:44 +00:00
florian
072be7b0f7 * Aarch64: fix 32 bit div operations with constant denominators, resolves #38225
git-svn-id: trunk@47812 -
2020-12-18 21:39:35 +00:00
pierre
eb722c8294 Fix ash_savefregp_x handling, as revealed by range check error
git-svn-id: trunk@47773 -
2020-12-14 11:21:10 +00:00
pierre
44b325ec3e * Initialize result out parameter by caling the constructor Init, not the method Reset.
This out parameter called 'result' is of type tcgpara, which is an object, but not a class,
      it has no virtual method, which means that the VMT is never used, and thus the
      fact that the object is not 'constructed' can be easily missed.
      Nevertheless, it could generate problems as the different fields have unassigned
      and thus random value, while reset method can dereference location field
      if not nil.
      Issue found by using -gttt compiler option.

git-svn-id: trunk@47711 -
2020-12-07 16:35:46 +00:00
florian
4c0dac4864 + Aarch64: implemented FMovFMov2FMov, not yet used
git-svn-id: trunk@47534 -
2020-11-22 21:20:51 +00:00
florian
ef1ba48cc4 + Aarch64: call OptPass1FData for FMA instructions as well
git-svn-id: trunk@47533 -
2020-11-22 21:19:51 +00:00
florian
76406dbc36 + implement prefetch intrinsic for aarch64
git-svn-id: trunk@47526 -
2020-11-22 10:27:06 +00:00
pierre
3d374727dd Move explicit typecast to after check to avoid RTE when compiled with -CR
git-svn-id: trunk@47367 -
2020-11-09 21:19:40 +00:00
pierre
b8e6610617 Add explicit longint typecast to avoid range check errors with unwindrec longword variable
git-svn-id: trunk@47231 -
2020-10-28 09:46:02 +00:00
pierre
3f19bd693f + Add new LastCommonAsmOp constant to arm and aarch64 CPU targets.
* Uses this new constant to define TCommonAsmOps set type.
  + Use this constant in armgen/aoptarm MatchInstruction function,
    to avoid a range check error when compiling with -CriotR with optimization.

git-svn-id: trunk@47137 -
2020-10-19 09:19:25 +00:00
Jonas Maebe
9376f5a43a * AArch64: added SIMD instructions (only plain ARMv8-A for now)
o added AArch64 regset parsing support in assembler reader, means that "{"
     no longer starts comments there (like in the ARM assembler reader)
   o added AArch64 indexed SIMD register support and removed old cg hacks
     that worked around its absence

git-svn-id: trunk@47116 -
2020-10-15 20:29:36 +00:00
svenbarth
7dff106d14 * use the name of the symbol instead of the name of the section as the later is always lowercased
git-svn-id: trunk@47109 -
2020-10-14 09:11:37 +00:00
svenbarth
5e6ec33a59 * reset the stored symbol for SEH data once a new section is encountered
git-svn-id: trunk@47108 -
2020-10-14 09:11:32 +00:00
svenbarth
0c2494bec8 * when setting up the symbol for the SEH data don't check whether it is global, instead check whether it's a function
git-svn-id: trunk@47107 -
2020-10-14 09:11:27 +00:00
florian
637976e83f * patch by Marģers to unify internal error numbers, resolves #37888
git-svn-id: trunk@47103 -
2020-10-13 19:59:01 +00:00
florian
eec51afadd * patch (with little modification) by J. Gareth Moreton: refactor ARM/Aarch64 peephole optimizer, first part of #37526
git-svn-id: trunk@46975 -
2020-09-27 21:05:42 +00:00
florian
4de5195a9a + modified patch by J. Gareth Moreton: Aarch64: LDR/STR pairing optimisation, resolves #37580
git-svn-id: trunk@46917 -
2020-09-22 19:51:42 +00:00
florian
8057651e8d * Aarc64: generate code for floating point exception checking which does not destroy
the flags so it works also with floating point comparisons

git-svn-id: trunk@46871 -
2020-09-15 21:08:57 +00:00
pierre
8aa844e2fe Fix compilation with -dEXTDEBUG for aarch64
git-svn-id: trunk@46690 -
2020-08-25 14:33:22 +00:00
florian
f72f021da4 + AAarch64: FMovFMov2FMov optimization
git-svn-id: trunk@46461 -
2020-08-16 16:26:39 +00:00