Commit Graph

1206 Commits

Author SHA1 Message Date
florian
0ffd4f8780 * fix compilation of arm compiler on 32 bit hosts
git-svn-id: trunk@49281 -
2021-04-27 16:36:40 +00:00
pierre
423940afd7 Avoid range check error inside genitem_thumb2 by changing local variable i type
git-svn-id: trunk@49278 -
2021-04-27 14:01:35 +00:00
pierre
d03c3c0669 Disable overflow/range check in some part of the arm code
git-svn-id: trunk@49274 -
2021-04-26 21:51:42 +00:00
pierre
c2faf6a8fd Avoid invalid typecast if hp is not an instruction
git-svn-id: trunk@49273 -
2021-04-26 21:50:53 +00:00
pierre
f1d30a5bc6 Add .force_thumb pseudo-directive support forarm reader
git-svn-id: trunk@49271 -
2021-04-26 21:14:27 +00:00
florian
695665c393 + optimized multiplication for "symmetric" bit patterns on arm
git-svn-id: trunk@49199 -
2021-04-13 21:16:56 +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
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
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
09d6398942 * arm: better cfi
git-svn-id: trunk@48685 -
2021-02-15 22:25:18 +00:00
florian
e694897bb3 * initial implementation of CFI support for arm (non-thumb)
git-svn-id: trunk@48684 -
2021-02-15 21:34:07 +00:00
florian
a3d68e6839 * arm thumb: generate proper cfi
git-svn-id: trunk@48678 -
2021-02-14 21:26:41 +00:00
florian
44856e660c * ARM: NR_RETURN_ADDRESS_REG is R14
git-svn-id: trunk@48677 -
2021-02-14 21:25:36 +00:00
florian
0316a7697f * arm thumb1: several fixes for the internal assembler writer
git-svn-id: trunk@48675 -
2021-02-14 17:52:26 +00:00
florian
33ce19799b * forgotten part of last commit
git-svn-id: trunk@48674 -
2021-02-14 17:15:37 +00:00
florian
f1883c4e61 * arm: taicpu uses set instead of boolean to store instruction states
+ track if an instruction is a thumb instruction in taicpu

git-svn-id: trunk@48673 -
2021-02-14 15:51:48 +00:00
florian
dda9f83dfe * factored out tbasecgarm.init_mmregister_allocator
git-svn-id: trunk@48671 -
2021-02-13 22:16:59 +00:00
florian
87e1dc159d * do not mess with FPA registers if they are not available
git-svn-id: trunk@48669 -
2021-02-13 17:04:03 +00:00
florian
7f1aac8bd7 - armv5 never existed (without extension), removed
git-svn-id: trunk@48652 -
2021-02-11 21:27:12 +00:00
florian
3b49e95415 * do not initialize unncessary register allocators
git-svn-id: trunk@48628 -
2021-02-10 19:52:52 +00:00
yury
9b1567f054 * Corrected method's visibility.
git-svn-id: trunk@48393 -
2021-01-24 14:06:35 +00:00
yury
64c586b86d * Removed/ifdefed lots of unused variables.
git-svn-id: trunk@48384 -
2021-01-24 12:24:01 +00:00
pierre
19d5e43615 Avoid internalerror in RemoveCurrentP for arm compiler
git-svn-id: trunk@47690 -
2020-12-05 21:23:09 +00:00
florian
1014e53081 * patch by J. Gareth Moreton: fixes crash on ARM with -CriotR, resolves #38116
git-svn-id: trunk@47531 -
2020-11-22 19:47:34 +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
e50a388f30 Change CLZ support for arm32 minimal CPU to armv5t according to ARM documentation in arminst.dat
git-svn-id: trunk@47207 -
2020-10-26 13:40:45 +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
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
28f25b2df0 * reworked usage of tcgnotnode.handle_locjump
git-svn-id: trunk@46275 -
2020-08-05 21:15:32 +00:00
Jonas Maebe
eb7ba1690e * mark all external assemblers using an LLVM tool using af_llvm
+ added support for constructing target triplets
  * pass "-target triplet" when using an LLVM assembler
   o removed no longer needed $DARWINVERSION and $ARCH parameters
  * consistently use as_clang_gas when clang is used to assembler GAS-style
    assembly, and rename as_llcm_clang to as_clang_llvm (for consistency)
  * support pipe assembling when using clang on *nix in all cases

git-svn-id: trunk@45807 -
2020-07-19 14:30:35 +00:00
florian
db250b04e0 * generate soft float code for arm vfp units which have no double operation support
git-svn-id: trunk@45799 -
2020-07-17 16:45:52 +00:00
pierre
bb6d4929d8 * Handle R_SUBMMWHOLE in reg_cgsize for R_MMREGISTER type
* Disable range and overflow checking inside is_continuous_mask function.

git-svn-id: trunk@45798 -
2020-07-17 15:27:27 +00:00
pierre
53eca29309 Also issue -mfpu option when calling GNU assembler for fpu_fpa family
git-svn-id: trunk@45788 -
2020-07-15 09:01:10 +00:00
Jonas Maebe
e7d1a77f9a * rename the ARM/AArch64-Darwin targets to ARM/AArch64-iOS
* rename the m68k/PowerPC-MacOS targets to m68k/PowerPC-MacOSClassic
  * repurpose the AArch64/Darwin target for AArch64/macOS
   o make AArch64-Darwin default target for a hosted AArch64-Darwin compiler

git-svn-id: trunk@45758 -
2020-07-10 21:52:24 +00:00
pierre
39f3a72c62 tarmunaryminusnode.pass_1 must call inherited method for system_arm_wince
git-svn-id: trunk@45755 -
2020-07-10 09:43:15 +00:00
pierre
96ac7f29f7 Only try to use softfpu functions when fputype is fpu_soft
git-svn-id: trunk@45751 -
2020-07-09 22:51:42 +00:00
pierre
cb41b22fdc Try to fix tarmunaryminusnode.pass_1
git-svn-id: trunk@45750 -
2020-07-09 22:50:34 +00:00
florian
c5d7e6807c * ARM: factor out TARMAsmOptimizer.OptPass1And
git-svn-id: trunk@45536 -
2020-05-30 20:44:19 +00:00
florian
0acae47310 * ARM: get rid of more unneeded sxtb/h uxtb/h instructions
git-svn-id: trunk@45529 -
2020-05-29 20:51:04 +00:00
florian
651f5cb8a1 * ARM: (V)LDM do not load from the registers in the reg. set
git-svn-id: trunk@45525 -
2020-05-28 21:37:05 +00:00
pierre
f2b924573a Do not use inherited first_int_to_real when arm FPU_HAS_FPA is in fpu_capabilities
git-svn-id: trunk@45267 -
2020-05-05 12:25:18 +00:00
nickysn
29d681168a * merged the z80 branch
git-svn-id: trunk@45143 -
2020-04-27 20:07:54 +00:00
florian
a084c8829f * patch by J. Gareth Moreton: refactor RemoveCurrentP
git-svn-id: trunk@45142 -
2020-04-27 19:27:16 +00:00
nickysn
a8fe46c0f5 + introduced labelmaxlen in tasminfo and added code in ReplaceForbiddenAsmSymbolChars that limits the
output label to that length

git-svn-id: branches/z80@45066 -
2020-04-25 12:59:25 +00:00
florian
8ac8c79a71 + initial support for arm-freertos largely based on patch by Michael Ring
git-svn-id: trunk@44871 -
2020-04-19 20:59:52 +00:00
florian
099faf2d2b * factored out and improved TARMAsmOptimizer.RedundantMovProcess
+ AArch64: use TARMAsmOptimizer.RedundantMovProcess

git-svn-id: trunk@44799 -
2020-04-18 21:48:25 +00:00
florian
9176efbab4 * factored out TARMAsmOptimizer.OptPass1SXTH
* AArch64: use TARMAsmOptimizer.OptPass1SXTH

git-svn-id: trunk@44739 -
2020-04-16 21:19:14 +00:00
florian
19a9d4c4ac * factored out TARMAsmOptimizer.OptPass1SXTB
* AArch64: use TARMAsmOptimizer.OptPass1SXTB

git-svn-id: trunk@44738 -
2020-04-16 21:19:13 +00:00
florian
7172397077 * factored out TARMAsmOptimizer.OptPass1UXTH
* AArch64: use TARMAsmOptimizer.OptPass1UXTH

git-svn-id: trunk@44737 -
2020-04-16 21:19:12 +00:00