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
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
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
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
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
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