Jonas Maebe
67b8aceaee
* synchronized with privatetrunk till r30095
...
git-svn-id: branches/hlcgllvm@30101 -
2015-03-05 20:32:15 +00:00
Tomas Hajny
1ecf8dcfa1
* improved paging of help pages so that lines are not missed with 80x25 windows due to lines overflowing the window width
...
git-svn-id: trunk@30026 -
2015-02-27 19:26:23 +00:00
Jonas Maebe
dcb6f2baae
+ print Darwin/AArch64-specific command line options in the help
...
git-svn-id: trunk@29981 -
2015-02-23 22:57:09 +00:00
Jonas Maebe
a8d05b66e2
+ AArch64 internal bsf/bsr support
...
git-svn-id: trunk@29979 -
2015-02-23 22:57:02 +00:00
Jonas Maebe
0a0e74342f
* AArch64 doesn't need the software int64 to double code
...
git-svn-id: trunk@29976 -
2015-02-23 22:56:53 +00:00
Jonas Maebe
b7fb862f4a
* enable internal handling of abs(int64) on AArch64
...
git-svn-id: trunk@29975 -
2015-02-23 22:56:50 +00:00
Jonas Maebe
79a06b1514
+ iphonesim/x86_64 target (64 bit iOS simulator)
...
git-svn-id: trunk@29970 -
2015-02-23 22:56:09 +00:00
Jonas Maebe
f421e83c9a
- don't allow setting the OS X version (-WM) for Darwin/ARM or Darwin/AArch64
...
for now (it's all iOS)
git-svn-id: trunk@29969 -
2015-02-23 22:56:06 +00:00
Jonas Maebe
b0112fa63f
+ initial AArch64 support in systemh.inc, options.pas, version.pas and
...
psystem.pas
git-svn-id: trunk@29903 -
2015-02-23 22:52:04 +00:00
Jonas Maebe
665a5e509e
* default iOS deployment version for AArch64 is iOS 7
...
git-svn-id: trunk@29894 -
2015-02-23 22:51:34 +00:00
Jonas Maebe
f886fe49d6
* only prepend the sysroot path to -Fl paths if these paths are absolute;
...
if they are not, they should be interpreted relative to the current
directory instead (solves compiling tests that depend on a library
when cross-testing for a platform with a sysroot)
git-svn-id: trunk@29825 -
2015-02-23 22:48:02 +00:00
florian
d20116cd07
* really set alignment as intended when -Os is passed
...
* align consts to 1 Byte boundaries on x86 as well
git-svn-id: trunk@29651 -
2015-02-08 11:22:17 +00:00
florian
bb01872821
+ handle -CPPACKENUM and -CPPACKRECORD, resolves #27153
...
git-svn-id: trunk@29283 -
2014-12-13 21:08:18 +00:00
pierre
5c48eb2d96
Fix problem in handling of tf_pic_default
...
git-svn-id: trunk@29140 -
2014-11-23 22:05:42 +00:00
florian
a237648545
+ handle -Cp in the first options processing pass
...
git-svn-id: trunk@29125 -
2014-11-23 17:30:18 +00:00
Tomas Hajny
75c61150d9
* option -m made conditional (-dPREPROCWRITE) like its processing
...
git-svn-id: trunk@29098 -
2014-11-21 13:52:10 +00:00
Tomas Hajny
fc17e318b0
* add some previously missing options to the help page, add support for listing recognized compiler and RTL features in -i and allow skipping an empty section (controllertypes) in -i listing by providing support of multiple output lines based on one source line in the msg file using $\n as newline
...
git-svn-id: trunk@29097 -
2014-11-21 13:03:24 +00:00
Tomas Hajny
3ee3542744
* boolean constant instead of IFDEFs for detection of microcontroller support
...
git-svn-id: trunk@29052 -
2014-11-10 12:34:59 +00:00
pierre
d9d5fd0647
Assume link native for AIX compiled binary
...
git-svn-id: trunk@29046 -
2014-11-09 22:21:45 +00:00
Tomas Hajny
f7e6ea56d9
* support for machine-parseable output of information in fpc -i plus improvements in help (including previously missing information for some less used platforms
...
git-svn-id: trunk@29032 -
2014-11-09 14:55:31 +00:00
sergei
ba324b1bf0
* Set default CPU type to cpu_pic32mx and FPU type to fpu_soft when compiling for mipsel-embedded, patch from Michael Ring.
...
git-svn-id: trunk@28692 -
2014-09-19 15:58:56 +00:00
Károly Balogh
739c66291d
ARM: first naive attempt to get gprofiling work for arm-linux. (Work-In-Progress, but at least for me it doesn't explode)
...
git-svn-id: trunk@28645 -
2014-09-12 18:51:02 +00:00
Jonas Maebe
b18ba8e85b
* syncrhonised with trunk up till r28471
...
git-svn-id: branches/hlcgllvm@28495 -
2014-08-19 20:23:11 +00:00
Károly Balogh
4431ba2c08
merged/updated AROS/i386 target to trunk from AROS branch, to support Marcus Sackrow's work on AROS support which will hopefully benefit all Amiga-like targets (classic, MorphOS) on the long run. Compiler only, RTL comes in the next run.
...
git-svn-id: trunk@28432 -
2014-08-17 18:18:07 +00:00
Jonas Maebe
5c75b6dd6b
* synchronised with trunk up till r28402
...
git-svn-id: branches/hlcgllvm@28403 -
2014-08-13 16:04:30 +00:00
Jonas Maebe
082c81a191
* for now disable internal bsr/bsf for LLVM (can be implemented later
...
based on llvm.ctlz/cttz intrinsics)
git-svn-id: branches/hlcgllvm@28366 -
2014-08-10 19:40:03 +00:00
Jonas Maebe
575911dcb0
+ support for (section-based) threadvars for LLVM
...
git-svn-id: branches/hlcgllvm@28352 -
2014-08-10 13:18:46 +00:00
Tomas Hajny
dfb44e1642
* improve identation of long options and add support for displaying parameter @
...
git-svn-id: trunk@28186 -
2014-07-08 22:30:43 +00:00
Jonas Maebe
7949bebb8d
* synchronised with r28168 of trunk
...
git-svn-id: branches/hlcgllvm@28169 -
2014-07-05 21:30:28 +00:00
nickysn
ce87e72721
* show an error if the user attempts to create a dos .com file in an i8086
...
memory model other than tiny
git-svn-id: trunk@28081 -
2014-06-26 22:52:57 +00:00
sergei
04d8e8a5dc
* On 64-bit targets, handle abs(int64) internally, using the same code as for abs(longint), i.e. without branching. Both generic and x86-specific pass 2 code is already suitable for different operand sizes, only type checking needs removal of excessive conversions to 32 bits.
...
git-svn-id: trunk@27989 -
2014-06-17 18:45:11 +00:00
nickysn
d7f9265eba
* limit the stack size set by the -Cs option to 65520 bytes on i8086 and other
...
CPUs with a 16-bit address space
git-svn-id: trunk@27960 -
2014-06-14 22:48:09 +00:00
sergei
217ab9879c
* Enabled internal handling of Abs(longint) for all targets. It has been implemented in cross-platform way ages ago (see tcginlinenode.second_abs_long), but not enabled on MIPS,SPARC and m68k.
...
- RTL: removed MIPS,SPARC and m68k-specific implementations of Abs(longint), and marked the generic one as required for bootstrapping purposes only.
git-svn-id: trunk@27857 -
2014-06-05 10:35:51 +00:00
Jonas Maebe
bacd303208
* synchronized with trunk up to r27758
...
git-svn-id: branches/hlcgllvm@27779 -
2014-05-12 16:12:34 +00:00
florian
a6ad604207
* compilation fixed
...
git-svn-id: trunk@27771 -
2014-05-11 13:57:28 +00:00
florian
0bce584bae
+ set defines if fast fma is available
...
git-svn-id: trunk@27768 -
2014-05-11 12:15:27 +00:00
Jonas Maebe
724a6e9019
* fixed -Sx (mantis #25930 )
...
git-svn-id: trunk@27697 -
2014-04-30 19:43:34 +00:00
nickysn
015c3269a7
* don't print a 'smart link requires external linker' warning in _any_ of the
...
following cases:
1) external linking is already enabled
2) target does not support an internal linker
3) the 'omit linking stage' option is used
git-svn-id: trunk@27543 -
2014-04-12 08:19:23 +00:00
pierre
ca156aa64a
Force external linker for nasm smartlinking
...
git-svn-id: trunk@27512 -
2014-04-10 15:02:04 +00:00
florian
b2b26f84cf
* partially merged the mips-embedded branch of Michael Ring:
...
- startup code/controller units are not merged yet
- assembler call does not pass the needed CPU type yet
git-svn-id: trunk@27188 -
2014-03-19 21:25:38 +00:00
Jonas Maebe
9420a5d7a7
* also check for targets not supporting -gc/checkpointer functionality in
...
compiler directives, not just on the command line (mantis #25862 )
git-svn-id: trunk@27128 -
2014-03-13 20:42:18 +00:00
Jonas Maebe
e9268a0a14
* synchronised with trunk up till r26975
...
git-svn-id: branches/hlcgllvm@26976 -
2014-03-06 21:36:58 +00:00
nickysn
a7117a6157
+ enabled the compact and large i8086 memory models (they don't work yet, so
...
that's why they're not added to the compiler help screen yet)
git-svn-id: trunk@26927 -
2014-03-02 19:26:49 +00:00
nickysn
f04acb2db7
* parse the memory model command line options and define the FPC_MM_* macro
...
in the first pass of reading parameters, so that #ifdefs based on the memory
models can be used in fpc.cfg
git-svn-id: trunk@26793 -
2014-02-16 09:59:21 +00:00
sergei
e1cf19d05d
+ Require -d and -u command line options to have an argument, Mantis #25082 .
...
+ Check that argument of -d and -u is a Pascal identifier, Mantis #17056 .
git-svn-id: trunk@26755 -
2014-02-12 04:44:35 +00:00
yury
56b3287e29
+ Added compiler support for mipsel-android target.
...
git-svn-id: trunk@26686 -
2014-02-06 17:02:43 +00:00
nickysn
5832c323b1
- don't define FPC_HAS_INTERNAL_BSF and FPC_HAS_INTERNAL_BSR on i8086. BSF/BSR
...
is 386+ only and the internal handling was not used anyway on i8086, due to
some nested defines in systemh.inc missing on i8086.
git-svn-id: trunk@26592 -
2014-01-26 20:02:15 +00:00
pierre
e9c0484b3c
pass new asm extra opt using -ao option
...
git-svn-id: trunk@26538 -
2014-01-21 00:15:43 +00:00
pierre
12d56bad5c
Use os name only to look for units/$target/rtl if target has tf_use_8_3 to find installed directories
...
git-svn-id: trunk@26416 -
2014-01-10 15:11:44 +00:00
paul
52d1cbc544
compiler:
...
+ add -FM command line option to pass directory for unicode binary files
+ enable dynamic loading of charset files (don't disable runtime charset files for the moment)
git-svn-id: trunk@26378 -
2014-01-04 15:44:18 +00:00
sergei
179586f589
+ SEH support for Win32. Enable by cycling with OPT=-dTEST_WIN32_SEH.
...
Although basic things work (no regressions in test suite, also with TEST_OPT=-O2), there are some secondary issues/TODOs:
- Exception frame around PASCALMAIN is not properly removed in DLLs
- No stack traces yet
- Stack overallocated in finalizer procedures, their entry/exit code needs cleanup
- Signals unit is probably completely broken.
git-svn-id: trunk@26225 -
2013-12-12 12:43:46 +00:00
florian
4d5119bf1c
* fixes several issues which cause warnings by the dfa code when using it to detect uninitialized variables
...
git-svn-id: trunk@26161 -
2013-12-01 17:02:08 +00:00
Jonas Maebe
ad84210a9a
* import llvminfo when building an llvm-targeting compiler to override the
...
default -O1/2/3 optimization levels and supported optimization switches
(e.g. -Ooregvar is not supported for the llvm target, nor needed)
git-svn-id: branches/hlcgllvm@26055 -
2013-11-11 11:16:28 +00:00
Jonas Maebe
5409d4321e
+ basic llvm bitcode (textual format) writer:
...
o no support yet for many ait_* types, although eventually most of them
shouldn't be generated at all for the llvm target
o no support yet for calling "opt" (which optimises llvm bitcode) before
calling llc (which translates llvm bitcode into native code) -- compile
with -s and manually call "opt" with -std-compile-opts, -O1, -O2 or -O3
if you want to experiment
o override the assembler writer with the llvm one when compiling an llvm-
targeting compiler
o override the assembler file extension with .ll when compiling an llvm-
targeting compiler
git-svn-id: branches/hlcgllvm@26054 -
2013-11-11 11:16:25 +00:00
Jonas Maebe
9573160c1a
+ llvmdatalayout field for tsysteminfo that contains the encoded data layout
...
as used by llvm for most targets (taken from clang, adapted in some cases
where we use a custom stack alignment)
git-svn-id: branches/hlcgllvm@26032 -
2013-11-11 11:14:55 +00:00
nickysn
93a706f1a0
+ allow smartlinking and dwarf debug info at the same time for i8086-msdos
...
git-svn-id: trunk@25872 -
2013-10-27 20:26:34 +00:00
florian
304d7ef7a1
* restores atari support/rtl partially
...
git-svn-id: trunk@25699 -
2013-10-06 19:36:59 +00:00
nickysn
119cf760eb
* UpdateTargetSwitchStr moved to a new unit dirparse.pas. This avoids the dependence of unit scandir on unit options
...
git-svn-id: trunk@25629 -
2013-10-03 12:21:33 +00:00
nickysn
a846d0fc42
* cleaned up the ugly hack from r25595. The default value of ts_cld for the
...
target is now set before the second pass of parsing the command line
arguments. Then during the second pass, it can be overriden.
git-svn-id: trunk@25607 -
2013-09-29 11:30:52 +00:00
nickysn
989c543ea2
* UpdateTargetSwitchStr moved from unit globals to unit options in order to
...
avoid the dependency of unit globals on unit symtable, which breaks the build
of ppudump
git-svn-id: trunk@25596 -
2013-09-28 15:43:56 +00:00
nickysn
a48b44cfe5
+ added a new tsystemflag tf_cld, which indicates that ts_cld should be enabled
...
by default on this target
+ tf_cld enabled for i8086-msdos (for Turbo Pascal compatibility)
git-svn-id: trunk@25595 -
2013-09-28 14:57:12 +00:00
nickysn
bd0585274e
* tsettings.enablecld converted to a targetswitch ts_cld
...
git-svn-id: trunk@25592 -
2013-09-28 13:41:58 +00:00
nickysn
52fcc0a407
+ added a new x86-specific compiler option 'enablecld', which controls whether
...
the compiler should emit a CLD before using the x86 string instructions.
git-svn-id: trunk@25590 -
2013-09-28 11:54:02 +00:00
nickysn
52a5ffc386
* use apptype to indicate that the target is a DOS .COM file, instead of introducing a new field in tsettings (as suggested by Sven)
...
git-svn-id: trunk@25544 -
2013-09-24 12:13:47 +00:00
nickysn
b0be805561
* actually use the .com suffix, instead of .exe when creating a .com file
...
git-svn-id: trunk@25529 -
2013-09-21 17:06:06 +00:00
nickysn
567cdf875b
+ added new i8086 compiler options -Wtexe and -Wtcom for specifying the MS-DOS
...
binary format (.exe or .com)
* the default format for i8086 tiny model binaries changed to .exe
git-svn-id: trunk@25528 -
2013-09-21 16:44:14 +00:00
florian
02e054a09e
+ fpc -i now writes also the available inline assembler input modes
...
git-svn-id: trunk@25482 -
2013-09-13 19:10:59 +00:00
svenbarth
6f5a648516
Improve the cpu type handling for M68k just in case we should branch 2.8.0 before I can start working on M68k again.
...
Therefor the cpu type (-Cp...) "coldfire" was split up into "isaa", "isaa+", "isab" and "isac". The Linux RTL can currently compiled for "68020", "isab" and "isac". For the other three Bcc.L must be handled differently (only Bcc.B/W supported) and for "68000" also EXT.L needs to be handled differently.
fpcdefs.inc:
+ define CPUCAPABILITIES if capabilities can be set for a certain CPU type (currently ARM, AVR and M68k)
options.pas:
* check for CPUCAPABILITIES instead of specific CPUs
assemble.pas:
- the handling of the CPU type is already done in m68k/ag68kgas.pas, Tm68kGNUAssembler.MakeCmdLine (and thereby already using the gascputypestr array!)
m68k/cpuinfo.pas:
- tcputype: remove "cpu_coldfire"
+ tcputype: add "cpu_isa_a", "cpu_isa_a_p", "cpu_isa_b" and "cpu_isa_c"
+ add "cpu_coldfire" constant which contains all Coldfire specific cpu types
* adjust "cputypestr" and "gascputypestr"
+ add tcpuflags and cpu_capabilities (DBRA restriction was checked with CPUCOLDFIRE, CAS/TAS will be needed for atomic operations and BRAL restriction was discovered during testing of new cpu types)
m68k/cgcpu.pas:
* adjust checks for "cpu_coldfire"
m68k/n68kadd.pas:
* don't use a BRA.L if it is not supported, but (at least for now) a BRA.W
aggas.pas:
* adjusted check for Coldfire
git-svn-id: trunk@25457 -
2013-09-11 17:07:32 +00:00
Jonas Maebe
de56f909d5
* synchronized with trunk up to and including r25430
...
git-svn-id: branches/cpstrrtl@25431 -
2013-09-06 10:09:26 +00:00
florian
6f11e3f316
* clz is only available on thumb2/arm
...
git-svn-id: trunk@25416 -
2013-09-04 21:00:01 +00:00
florian
0e7a7c68b0
* the -CI switch is now handled correctly
...
git-svn-id: trunk@25405 -
2013-09-03 19:24:01 +00:00
florian
d4968e054b
+ arm: tsettings.instructionset
...
* the selected instruction set is now independent from the cpu type: e.g. armv7-a can perfectly execute thumb(2) code
git-svn-id: trunk@25370 -
2013-08-25 21:56:12 +00:00
florian
6e7edf1933
* make x86memorymodel i8086 only
...
git-svn-id: trunk@25369 -
2013-08-25 21:56:08 +00:00
Jonas Maebe
efa95bed66
* changes so the compiler can be compiled with a unicode RTL without warnings
...
git-svn-id: branches/cpstrrtl@25307 -
2013-08-19 22:47:07 +00:00
sergei
38058505ba
* Changed linking infrastructure to look like assembler one:
...
* Changed direct references to linker classes in TSystemInfo records to enumerated ids.
* RegisterExtennalLinker and RegisterInternalLinker procedures replaced by single RegisterLinker procedure and moved to link.pas.
- TAbstractLinker is no longer necessary, removed.
This change allows to register linker once per id, rather than once per target, and also allows TSystemInfo records to be read-only.
git-svn-id: trunk@25279 -
2013-08-18 12:01:21 +00:00
sergei
87cfd86172
* Define SUPPORT_GET_FRAME for targets having "get_frame" as internal symbol (x86,arm and jvm, currently), removes need to enumerate these targets in every related conditional compilation directive and simplifies configuring this feature for other targets.
...
git-svn-id: trunk@24978 -
2013-06-26 11:03:24 +00:00
mazen
9c4052b505
+ Added a new directive, CFGDIR, to configuration file allowing user to add a directory to a list where included configuration files are searched.
...
git-svn-id: trunk@24908 -
2013-06-16 15:43:10 +00:00
nickysn
435a97059d
+ enabled the command line option for the medium memory model
...
git-svn-id: trunk@24847 -
2013-06-09 17:57:42 +00:00
nickysn
b409d600ee
+ implemented the tiny memory model for i8086-msdos; we now produce working dos .com files as well
...
git-svn-id: trunk@24793 -
2013-06-02 23:02:10 +00:00
Jonas Maebe
1358618c36
* only display and allow ABIs that are actually supported by the current
...
compiler binary
git-svn-id: trunk@24475 -
2013-05-08 14:30:38 +00:00
florian
0e41df598e
* merge i8086 branch by Nikolay Nikolov
...
git-svn-id: trunk@24324 -
2013-04-25 20:23:51 +00:00
sergei
6f1997f5e5
+ MIPS: added profiling support
...
git-svn-id: trunk@23950 -
2013-03-21 13:40:50 +00:00
florian
fdde11fcc8
- -CPPAKCSET=NORMAL and CPPAKCSET=DEFAULT should set setalloc to 0 as $PACKSET=... with the same parameters does
...
git-svn-id: trunk@23893 -
2013-03-17 15:10:33 +00:00
florian
380bc56e32
+ create a default heap on embedded targets and register this default heap
...
* sysutils for the embedded target depends on a working heap manager
git-svn-id: trunk@23853 -
2013-03-16 10:37:18 +00:00
nickysn
99212c0f9c
* define FPC_HAS_TYPE_EXTENDED for i8086; undefine FPC_INCLUDE_SOFTWARE_INT64_TO_DOUBLE
...
git-svn-id: branches/i8086@23837 -
2013-03-14 21:11:10 +00:00
sergei
2caa05ccd1
* Make Win64 SEH support enabled by default. If necessary to disable, compiler should be cycled with OPT=-dDISABLE_WIN64_SEH. Mantis #24012 .
...
git-svn-id: trunk@23732 -
2013-03-08 16:58:05 +00:00
nickysn
a9809323dc
some more generic i8086 defines added
...
git-svn-id: branches/i8086@23712 -
2013-03-07 22:46:00 +00:00
yury
63d1c3aa94
* Set default CPU armv5t for arm-android. Issue #23973 .
...
git-svn-id: trunk@23693 -
2013-03-04 21:46:36 +00:00
florian
1eeeb309c7
* intial armv6m support, it is not working yet, constant pool insertation and conditional branch fixup is not working yet
...
git-svn-id: trunk@23682 -
2013-03-03 12:20:10 +00:00
yury
b3862eb4b1
* Use standard Android NDK prefixes for binutils by default.
...
git-svn-id: trunk@23608 -
2013-02-13 17:35:55 +00:00
paul
2a3618fb6c
compiler: set apptype using new SetAppType routine, add 'CONSOLE' define for console apptype.
...
git-svn-id: trunk@23603 -
2013-02-13 03:21:03 +00:00
florian
3ca7a5ff8e
- remove switch -Wx for arm thumb interworking, one should use -CTHUMBTINTERWORKING=ON instead
...
git-svn-id: trunk@23572 -
2013-02-04 21:46:27 +00:00
Jonas Maebe
4022c29500
* mark each target switch with whether it's global or not, so a compiler
...
directive can be added that enables changing the local ones
git-svn-id: trunk@23562 -
2013-02-02 15:22:13 +00:00
florian
bf57cdf409
+ introduce new define CPUTHUMB2
...
git-svn-id: trunk@23539 -
2013-01-29 20:34:55 +00:00
paul
5d74e0578a
compiler: remove unused variables and unneeded assignments
...
git-svn-id: trunk@23467 -
2013-01-21 01:24:36 +00:00
florian
7184306a4c
+ option -Wx to generate thumb interworking safe code on arm
...
git-svn-id: trunk@23463 -
2013-01-20 15:26:59 +00:00
Jonas Maebe
4ea78538e4
* enabled threading feature for jvm target so that rtl/inc/genmath.inc
...
compiles again there (it's possible to take the address of arbitrary
threadvars on the jvm platform, but not of arbitrary other variables)
- disabled inclusion of generic thread manager and threadvar support
on the jvm target if the threading feature is enabled
git-svn-id: trunk@23322 -
2013-01-06 15:05:24 +00:00
florian
00af813eee
* write supported cpu and fpu types more compact
...
git-svn-id: trunk@23260 -
2012-12-31 16:45:30 +00:00
florian
a5cc48da0e
* write controller types more compact
...
git-svn-id: trunk@23259 -
2012-12-31 16:31:23 +00:00
florian
c9d8047113
* open config files read only so they can be open by multiple compilers at once
...
git-svn-id: trunk@23254 -
2012-12-31 14:13:05 +00:00