Commit Graph

921 Commits

Author SHA1 Message Date
florian
8fa04a0cee * finished -ix output
git-svn-id: trunk@48936 -
2021-03-10 20:33:49 +00:00
nickysn
f8052134e3 * synchronized with trunk
git-svn-id: branches/wasm@48906 -
2021-03-08 00:52:43 +00:00
florian
b0772ae749 + initial (and so far experimental) implementation of -ix to output -i in xml format for further automated processing
git-svn-id: trunk@48897 -
2021-03-07 14:11:09 +00:00
nickysn
d7df2d45c6 * synchronized with trunk
git-svn-id: branches/wasm@48680 -
2021-02-14 23:47:42 +00:00
florian
a4b35d16f2 + throw an error if hardware floating point operations are used in thumb(-1) mode, this is not supported
git-svn-id: trunk@48672 -
2021-02-13 22:17:35 +00:00
florian
50bc387688 * handle -Ca (as proposed by Michael Ring) and -Cf in the first option pass as well
git-svn-id: trunk@48668 -
2021-02-13 14:37:07 +00:00
nickysn
64bb0359d2 * synchronized with trunk
git-svn-id: branches/wasm@48412 -
2021-01-24 23:38:35 +00:00
florian
1f49e633b6 + modified patch by Christo Crause: if the target support, the switch -Xu can be used to generate the executable as an uf2 file
git-svn-id: trunk@48394 -
2021-01-24 14:21:03 +00:00
nickysn
c3c199cf67 * show the list of wasm32 targets in the compiler help screen
git-svn-id: branches/wasm@48375 -
2021-01-24 02:25:00 +00:00
nickysn
062360341c * synchronized with trunk
git-svn-id: branches/wasm@48248 -
2021-01-20 23:34:58 +00:00
pierre
b88f9ad57c Reset paratargetdbg to dbg_none when handling -g- option, to really suppress debug information generation
git-svn-id: trunk@48243 -
2021-01-20 22:11:15 +00:00
nickysn
b01a0a7018 + define the CPUWASM32 system macro for wasm32
git-svn-id: branches/wasm@47955 -
2021-01-02 07:54:53 +00:00
nickysn
aeafe42144 * synchronized with trunk
git-svn-id: branches/wasm@47653 -
2020-12-01 03:27:01 +00:00
florian
792b629aa6 + -Xa option: generate code which allows to use more than 2 GB of static data on 64 Bit targets
+ implemented support for x86-64
  * more than 2 GB static data requires to use the --no-relax option on linux

git-svn-id: trunk@47651 -
2020-11-30 22:07:34 +00:00
nickysn
f9daec43ef * synchronized with trunk
git-svn-id: branches/wasm@47588 -
2020-11-25 21:59:19 +00:00
Károly Balogh
45fc515400 sinclairql: added platform specific options to allow specifying executable metadata format
git-svn-id: trunk@47567 -
2020-11-25 01:48:36 +00:00
florian
7ad8f94ec4 * set reasonable defaults for arm eabi
git-svn-id: trunk@47530 -
2020-11-22 19:47:12 +00:00
nickysn
59b465bbe7 * synchronized with trunk
git-svn-id: branches/wasm@47525 -
2020-11-22 04:01:56 +00:00
Károly Balogh
ebb199b9d4 sinclairql: make sure the Sinclair QL defaults to vlink
git-svn-id: trunk@47520 -
2020-11-21 21:42:33 +00:00
nickysn
c895c8fa0a * synchronized with trunk
git-svn-id: branches/wasm@47506 -
2020-11-20 23:21:42 +00:00
pierre
47d96efe29 + options.pas: Add new option -sT, to do only the linking on target, by
opposition to the old -st option, which does
    both assembling and linking on target.
    msg/errore.msg: Add new -sT help message
    modify -st help message, to explicitly say that both assembling and linking
    scripts are prepared for target system.
  * msgidx.txt, msgtxt.inc: Regenerated

git-svn-id: trunk@47488 -
2020-11-20 15:09:24 +00:00
nickysn
509821260e * synchronized with trunk
git-svn-id: branches/wasm@47448 -
2020-11-19 01:12:38 +00:00
pierre
f0b22a1569 Revert commit #47257, Disable use of cmov instructions in alignment patterns for some i386 targets (it prevents use of some emulators)
Replace it by a new set of i386 targets, for which the default cpu is set to i80486 instead of pentium2
  to avoid (for default configuration) use of CMOVxx or PREFETCHyyy instructions, not supported by some emulators.

git-svn-id: trunk@47433 -
2020-11-16 17:04:46 +00:00
florian
e440bf0e00 * cosmetics
git-svn-id: trunk@47403 -
2020-11-12 20:32:00 +00:00
florian
d9784412a4 * patch by Cyrax: forbid to use heaptrc and valgrind at the same time, resolves #36529
* load cmem before line* units as they might allocate memory

git-svn-id: trunk@47390 -
2020-11-11 20:55:03 +00:00
Károly Balogh
82e16f02ca sinclairql: make sure the default CPU target is 68000 for the QL. also, some cleanups
git-svn-id: trunk@47360 -
2020-11-09 01:03:44 +00:00
nickysn
d3d51d2f7e * synchronized with trunk
git-svn-id: branches/wasm@47338 -
2020-11-07 22:40:43 +00:00
Károly Balogh
519701960c m68k: initial commit to add the Sinclair QL as a compiler target
git-svn-id: trunk@47307 -
2020-11-04 14:20:28 +00:00
nickysn
48b81da877 * synchronized with trunk
git-svn-id: branches/wasm@47249 -
2020-10-29 10:49:36 +00:00
pierre
075966f142 Display xtensa specific options for ppcxtensa -h
git-svn-id: trunk@47232 -
2020-10-28 10:48:06 +00:00
nickysn
578750a646 * synchronized with trunk
git-svn-id: branches/wasm@47135 -
2020-10-19 05:06:33 +00:00
florian
9ea52b8578 + new switches -DD and DT which allow to pass an arbitrary string which is used by %DATE%/%TIME%
git-svn-id: trunk@47132 -
2020-10-18 17:13:38 +00:00
Jonas Maebe
d0d07dc3bf * naturally align threadvar lists/tables
o required for (future) Darwin arm64e target, and a good idea elsewhere too
     (on constrained targets, it won't make a difference because the alignment
     of pointers won't be > sizeof(longint))

git-svn-id: trunk@47115 -
2020-10-15 20:29:32 +00:00
nickysn
8f059a6b8a * synchronized with trunk
git-svn-id: branches/wasm@47106 -
2020-10-14 02:41: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
nickysn
114d0d738b * synchronized with trunk
git-svn-id: branches/wasm@46970 -
2020-09-26 23:19:51 +00:00
florian
7f53d04ffd + xtensa: make use of nsau to implement Bsr*
git-svn-id: trunk@46963 -
2020-09-26 22:03:13 +00:00
nickysn
c1197ddb90 * synchronized with trunk
git-svn-id: branches/wasm@46529 -
2020-08-20 21:45:40 +00:00
florian
7157bac9fd * patch by Christo Crause, resolves #37335
* ESP8266 support for t_freertos.pas
    + -Ff switch to be able to pass the IDF_PATH without using an evironment variable

git-svn-id: trunk@46527 -
2020-08-20 21:29:48 +00:00
nickysn
2b3b1b4373 * synchronized with trunk
git-svn-id: branches/wasm@46488 -
2020-08-18 22:38:25 +00:00
florian
004ac4d1f4 * Xtensa: set abi correctly
git-svn-id: trunk@46485 -
2020-08-18 21:10:06 +00:00
nickysn
de29036512 * synchronized with trunk
git-svn-id: branches/wasm@46407 -
2020-08-12 22:20:37 +00:00
svenbarth
b88d12c7b9 + add option -FF to force the use of fpcres as RC compiler
Note: if we merge this to 3.2.x then we can switch to this by default once 3.2.2 is released

git-svn-id: trunk@46398 -
2020-08-12 19:08:25 +00:00
nickysn
62cb7c2d12 * synchronized with trunk
git-svn-id: branches/wasm@46214 -
2020-08-03 21:15:39 +00:00
nickysn
a893f06813 [PATCH 55/83] minor fixes and cleanups for the wasm target (#1)
* wasm: add support to the Makefile.fpc files. Makefiles needs to be regen'd

* wasm: include fpcdefs.inc in all units

* wasm: one more missing fpcdefs.inc

* wasm: define some system macro defaults

* + increase the size of some tsysteminfo fields, as wasm uses longer names, this fixes some warnings

* wasm: fixed mkwasmreg program name

* wasm: don't override MakeCmdLine, the inherited function serves us just fine, as it also replaces . Also fixes a warning about result being uninitialized

From 3f1ed3fd157d3ed217ef8845ade8e3e3630f424b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?K=C3=A1roly=20Balogh?= <charlie@amigaspirit.hu>
Date: Mon, 23 Sep 2019 04:08:46 +0200

git-svn-id: branches/wasm@45932 -
2020-07-29 19:02:27 +00:00
Jonas Maebe
64da9c4ab2 * add a patch level to the default version numbers so llvm doesn't complain
* fixed compiler variable for default macOS 11.0

git-svn-id: trunk@45809 -
2020-07-19 14:30:41 +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
Jonas Maebe
6fe8d7bd14 * don't crash if no info is registered for the selected external assembler
git-svn-id: trunk@45806 -
2020-07-19 14:30:31 +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
florian
5ad02a3799 + Xtensa: more cpu capabilites
+ Xtensa: set cpu for xtensa-linux as call window support is required

git-svn-id: trunk@45731 -
2020-07-04 21:18:13 +00:00
svenbarth
921e73ab0c + add compiler support for the Z80 MSX-DOS target
git-svn-id: trunk@45596 -
2020-06-06 17:16:20 +00:00
nickysn
f5489b5678 + allow specifying the program load address for the ZX Spectrum target via the -WB option
git-svn-id: trunk@45581 -
2020-06-03 20:09:27 +00:00
florian
a4695a7015 * xtensa-embedded: fix setting of the fpu and abi
git-svn-id: trunk@45270 -
2020-05-05 20:41:36 +00:00
pierre
1b5ee0d063 * Put all code adding cs_fp_emulation by default inside one big
{$ifdef cpufpemu}
  * Add system_arm_freertos and system_xtena_linux to the list
    of systems that automatically add cs_fp_emulation to 
    init_settings.moduleswitches.
  + Do not use controller specfic default fputype for xtensa-linux 
    target that does not support use of -Wp option to set controller type.

git-svn-id: trunk@45265 -
2020-05-05 12:20:21 +00:00
nickysn
caecdfd51d + allow setting the heap size for the ZX Spectrum target
git-svn-id: branches/z80@45102 -
2020-04-26 14:58:47 +00:00
nickysn
4c5f095422 + reenabled fileio and textio, because consoleio doesn't seem to work without them
git-svn-id: branches/z80@45029 -
2020-04-23 02:55:08 +00:00
nickysn
3f62fb7fe7 + enabled FPU emulation for the Z80
git-svn-id: branches/z80@45007 -
2020-04-22 22:18:33 +00:00
nickysn
86643f8a34 * synchronized with trunk
git-svn-id: branches/z80@44981 -
2020-04-21 23:36:44 +00:00
svenbarth
3af74d2fd2 + implement initial compiler support for Win64 on Aarch64
git-svn-id: trunk@44914 -
2020-04-21 06:04:22 +00:00
nickysn
e261ea8e2b - disable some rtl/compiler features on the ZX Spectrum
git-svn-id: branches/z80@44909 -
2020-04-21 03:03:06 +00:00
nickysn
2f68090dd6 * synchronized with trunk
git-svn-id: branches/z80@44898 -
2020-04-20 22:42:08 +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
nickysn
d2c32efb7b * synchronized with trunk
git-svn-id: branches/z80@44809 -
2020-04-18 23:47:30 +00:00
Jonas Maebe
ea2e516b4e + -ib parameter to print the code generator backend type: FPC or LLVM
* some cleanups related to -i printing

git-svn-id: trunk@44787 -
2020-04-18 15:44:42 +00:00
nickysn
b2549b63cd * implemented pop_parasize for the Z80 and declared stdcall to be a clearstack pocall on this arch
git-svn-id: branches/z80@44629 -
2020-04-07 00:07:34 +00:00
nickysn
50e5b07568 * synchronize with trunk
git-svn-id: branches/z80@44503 -
2020-04-01 22:43:55 +00:00
florian
ba9e930556 * Xtensa: set fpu type dependending on the controller
git-svn-id: trunk@44495 -
2020-04-01 20:08:23 +00:00
nickysn
a581ca4dce * synchronized with trunk
git-svn-id: branches/z80@44474 -
2020-03-31 22:00:40 +00:00
florian
5ef1ede0a4 * xtensa-freertos: enable softfloat for now
git-svn-id: trunk@44463 -
2020-03-31 19:33:11 +00:00
nickysn
e0efce2dd8 + added Z80-specific help messages, using the Z identifier
+ added help about the available Z80 assemblers

git-svn-id: branches/z80@44460 -
2020-03-31 19:32:17 +00:00
nickysn
3e3942e324 * synchronize with trunk
git-svn-id: branches/z80@44458 -
2020-03-31 19:18:42 +00:00
Károly Balogh
8bdcf4273d * darwin: remove some leftover resource-spec structures from i_bsd, clean up some related darwin specific int/ext resource handling in options
git-svn-id: trunk@44455 -
2020-03-31 04:57:08 +00:00
nickysn
6e346f1c79 * synchronize with trunk
git-svn-id: branches/z80@44444 -
2020-03-30 22:36:17 +00:00
Jonas Maebe
79974a9671 + -XlS<x> option to specify a suffix for externally called LLVM utilities,
e.g. -XlS-7 to call clang-7 instead of clang)
  * IMPORTANT: changed the -CL llvm code generation options to -Cl, for
    consistency with the new -Xl option (-XL was already taken)

git-svn-id: trunk@44436 -
2020-03-30 19:58:49 +00:00
nickysn
48b4cc34cb * synchronized with trunk
git-svn-id: branches/z80@44414 -
2020-03-29 23:04:40 +00:00
florian
391512546e + initial FreeRTOS RTL support, largely based on the Embedded target, limited to Xtensa so far
git-svn-id: trunk@44400 -
2020-03-29 17:13:45 +00:00
nickysn
755fe97c51 * synchronize with trunk
git-svn-id: branches/z80@44397 -
2020-03-29 16:24:32 +00:00
florian
73c68236b6 * Xtensa: completed compiler skeleton
git-svn-id: trunk@44323 -
2020-03-21 12:49:45 +00:00
florian
9e40d536cb + Xtensa: initial skeleton completed
+ xtensa-embedded support in the compiler

git-svn-id: trunk@44318 -
2020-03-20 22:34:33 +00:00
florian
95e8992e2f + AArch64: profiler support for aarch64-linux
git-svn-id: trunk@44216 -
2020-02-19 21:10:19 +00:00
Tomas Hajny
8de6066b95 + added possibility to list supported modeswitches using -im and documented it in help pages
git-svn-id: trunk@44120 -
2020-02-05 22:37:43 +00:00
joost
171142a724 * Make Win32 SEH support enabled by default. If necessary to disable, compiler should be cycled with OPT=-dDISABLE_WIN32_SEH. Mantis #12974.
git-svn-id: trunk@43830 -
2020-01-01 14:43:57 +00:00
Jonas Maebe
6fc79c7ed0 * set default target iOS/iPhoneSim version to 9.0 so we no longer depend
on crt.o existing, which is not shipped with the current SDKs anymore

git-svn-id: trunk@43822 -
2019-12-30 16:36:57 +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
pierre
ba73f7376f Also accept -a5 for older binutils for mips and mpisel cpus
git-svn-id: trunk@43599 -
2019-11-27 22:54:47 +00:00
pierre
01fbad64b7 Use defined(aarch64) instead of defined(cpuaarch64) for FPC_HAS_INTERNAL_ABS_INT64
git-svn-id: trunk@43598 -
2019-11-27 22:15:23 +00:00
pierre
7d12e8cc6d Avoid warnings for m68k compiler
git-svn-id: trunk@43391 -
2019-11-05 10:00:48 +00:00
Jonas Maebe
62da49577d * set default Mac OS X/OS X/macOS target version to 10.8 for i386 and x86-64,
instead of the previous 10.4 for i386 and 10.5 for x86-64. This prevents
    issues with finding the crt.* files, as starting with 10.8 those files
    are no longer required.

git-svn-id: trunk@43374 -
2019-11-02 22:44:15 +00:00
Károly Balogh
421b06affe morphos: in SDK 3.14, the binutils is finally upgraded to 2.32 (from 2.9.1), which makes section smartlinking working with binutils, and also has finally properly working stabs relocations for lineinfo, etc. so it's the default again both cross and native compilations
git-svn-id: trunk@43313 -
2019-10-26 22:24:00 +00:00
Jonas Maebe
6483b3f5e3 * fixed opt-in sysroot substitution again, renamed the three-argument version
TSearchPathList.AddPath() to AddLibraryPath() to make it clear it's only
    to be used for adding library search paths (and replaced one case where
    it was used for a source file search path with a call to the
    two-argument version)
  * also added some missing '=' prefixes to built-in library search paths,
    and fixed wrong DirectoryExists checks in t_linux in case of using
    a sysroot, cross-compiling or linking on target

git-svn-id: trunk@43312 -
2019-10-26 13:48:30 +00:00
Jonas Maebe
78fb35525f * change convention for searching sysroot library paths to be the same as the
one used by GNU ld: only search for library paths in the sysroot if they
    are built into the compiler or start with "=". Previously, all
    user-provided library paths were also searched in the sysroot
    (mantis #36198)

git-svn-id: trunk@43279 -
2019-10-20 17:26:44 +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
a2d3522812 * general-dynamic -> global-dynamic
git-svn-id: trunk@43132 -
2019-10-05 20:48:29 +00:00
florian
03f7ef4c63 * renamed tls model switches and symbols to match gcc
git-svn-id: trunk@43122 -
2019-10-05 20:48:20 +00:00
florian
d8e2db2691 + command line switch -CV to select the threadvar model for section threadvars
git-svn-id: trunk@43071 -
2019-09-25 21:19:04 +00:00
florian
26d8cc9142 + define FPC_STACKALIGNMENT
git-svn-id: trunk@43008 -
2019-09-15 17:17:28 +00:00
florian
c418d63c16 + create defines with FPU capabilites
+ make use of FPU capability defines in the rtl

git-svn-id: trunk@42681 -
2019-08-13 22:12:49 +00:00
florian
85edf1c1eb * reworked arm vfp capability handling to use fpu_capabilites
git-svn-id: trunk@42679 -
2019-08-13 18:41:15 +00:00
svenbarth
e296b26e9e - remove unit info and related code again as that will be handled similar, but differently with dynamic packages
git-svn-id: trunk@42369 -
2019-07-12 22:05:47 +00:00
svenbarth
84848df18d Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 3/3]
Added FPC_REQUIRES_PROPER_ALIGNMENT to TUnitInfo definition. Added FPC_HAS_EXTENDED_RTTI define.

git-svn-id: trunk@42358 -
2019-07-12 22:04:56 +00:00