Commit Graph

1176 Commits

Author SHA1 Message Date
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
pierre
73b563b367 Avoid invalid typecast in tarmunaryminusnode.pass_1 method
git-svn-id: trunk@44726 -
2020-04-15 20:47:04 +00:00
florian
9bcff94e9e * factored out TARMAsmOptimizer.OptPass1UXTB
* several other routines being very similar for ARM and AAarch64 moved to aoptarm

git-svn-id: trunk@44725 -
2020-04-15 20:21:29 +00:00
florian
2276caae24 + common assembler optimizer base class for arm and aarch64
git-svn-id: trunk@44720 -
2020-04-13 21:01:01 +00:00
pierre
3022927a6f Handle all existing possible values for init_settings.fputype to set Tag_FP_Arch .eabi_attribute
git-svn-id: trunk@44719 -
2020-04-13 20:56:44 +00:00
florian
7c2c8581b7 * get rid of fpu_vfp_first/last hack
git-svn-id: trunk@44716 -
2020-04-13 17:27:46 +00:00
florian
3d4cc7c2f6 * fixes compilation on WinCE
git-svn-id: trunk@44715 -
2020-04-13 13:09:15 +00:00
florian
458a6000e7 + arm: optimize sxth/sxtb
git-svn-id: trunk@44713 -
2020-04-12 20:50:40 +00:00
florian
d772a42375 * arm: more fixes for fpu_fpv4_sp_d16
* take care of FPUARM_HAS_VFP_DOUBLE
  * use FPUARM_HAS_VFP_EXTENSION instead of checking fpu_vfp_first and ...last

git-svn-id: trunk@44707 -
2020-04-12 18:05:50 +00:00
florian
38c32bcada * reorganized arm cpu flags
git-svn-id: trunk@44703 -
2020-04-12 14:24:56 +00:00
florian
497ff94cb0 + fpu_fpv4_sp_d32
* some fixes to make fpv4-sp-d32 work

git-svn-id: trunk@44702 -
2020-04-12 14:24:56 +00:00
florian
b033ccbddb * cleanup
git-svn-id: trunk@44515 -
2020-04-02 20:04:03 +00:00
Jonas Maebe
10b15628ab * split i/t_darwin from i/t_bsd, as they don't have that much in common
any more

git-svn-id: trunk@44407 -
2020-03-29 18:27:27 +00:00
florian
80c0fc3c92 * several fixes to get better reg. allocations in the arm assembler optimizer
git-svn-id: trunk@44245 -
2020-02-26 20:59:35 +00:00
florian
62129db44c * ARM: look further ahead when optimizing mov rX, yyyy
* ARM: fix Mov0 and MovMLA2MUL optimizations

git-svn-id: trunk@44244 -
2020-02-25 21:28:53 +00:00
florian
9132b54b3b + ARM: MovMLA2MUL optimization
git-svn-id: trunk@44243 -
2020-02-25 21:28:52 +00:00
florian
684ef3008f * ARM: optimize mov rX,#0 .... mul/mla/umull ...,rX,...
git-svn-id: trunk@44242 -
2020-02-24 21:10:55 +00:00
Jonas Maebe
592df7fa59 * disable cs_opt_regvar on all platforms when compiled for LLVM (LLVM does
that itself, our LLVM code generator can't handle it, and if it did then
    afterwards we would have to spill 90% of those register variables again
    to make them SSA)

git-svn-id: trunk@44062 -
2020-01-29 22:21:07 +00:00
florian
7b4292c94e * patch by Robert Roland to support the RaspberryPi 2 as a bare metal embedded target, resolves #35236
git-svn-id: trunk@44027 -
2020-01-23 21:14:49 +00:00
florian
d409548842 -- Zusammenführen von r31198 in ».«:
C    compiler/arm/aasmcpu.pas
U    compiler/arm/aoptcpu.pas
-- Aufzeichnung der Informationen für Zusammenführung von r31198 in ».«:
 U   .

git-svn-id: trunk@43825 -
2019-12-31 13:28:03 +00:00
Jonas Maebe
1a9e246c29 * added is_normal_fieldvarsym() helper and use it
o fixes several places where there was a check whether something is a
     fieldvarsym, but not whether it's an instance rather than a class field

git-svn-id: trunk@43786 -
2019-12-24 22:12:44 +00:00
Jonas Maebe
1e3f72403e * renamed getintparaloc to getcgtempparaloc
o it can be used for more than integer parameters

git-svn-id: trunk@43781 -
2019-12-24 22:12:25 +00:00
florian
a20209e691 + tf_init_final_units_by_calls
* arm-embedded generates direct calls for unit init/final now as well

git-svn-id: trunk@43771 -
2019-12-24 16:14:30 +00:00
florian
ef87879402 * common naming for fpu_none string
git-svn-id: trunk@43768 -
2019-12-24 16:14:28 +00:00
florian
2a315df80c * check in CheckLive* if a register allocator is initialized for a certain register type
git-svn-id: trunk@43665 -
2019-12-08 22:22:17 +00:00
florian
da54d0e8f7 + patch by J. Gareth Moreton: new method TAOptObj.CanDoJumpOpts and arm specific implementation
git-svn-id: trunk@43519 -
2019-11-20 22:12:27 +00:00
florian
e1e8986462 * patch by J. Gareth Moreton, issue #36271, part 3: support for the other architectures
git-svn-id: trunk@43441 -
2019-11-10 16:11:40 +00:00
pierre
6f7a39adab Fix compilation for arm-darwin using clang and forbid use of eabihf ABI for that target
git-svn-id: trunk@43205 -
2019-10-15 22:17:52 +00:00
florian
29bdbdba95 * reduce amount of software floating point exception checking, VSTR, VMOV, VLDR do not raise those
git-svn-id: trunk@43162 -
2019-10-10 20:31:30 +00:00
florian
245b58c249 + support for arm attributes
* abi notes fixed

git-svn-id: trunk@43157 -
2019-10-09 17:45:40 +00:00
florian
8ecdb2e9ca + dwarf support for tls threadvars
git-svn-id: trunk@43134 -
2019-10-05 20:48:31 +00:00