Jonas Maebe
c813e024ee
* support non-section-based threadvars on the LLVM target
...
git-svn-id: trunk@31645 -
2015-09-12 23:33:14 +00:00
nickysn
bdfd23cc2e
+ new target switch "FarProcsPushOddBP", which causes the i8086 compiler to push
...
odd values of BP if the procedure is far. Enabled this by default for Win16.
git-svn-id: trunk@31569 -
2015-09-07 19:05:18 +00:00
nickysn
839ab714cc
+ started implementing a win16 target :)
...
git-svn-id: trunk@31521 -
2015-09-05 02:47:42 +00:00
nickysn
8458bbfaf6
+ enabled the huge memory model command line option
...
git-svn-id: trunk@31495 -
2015-09-03 17:31:41 +00:00
Jonas Maebe
3f9f498e0d
- removed leftover alpha, ia64 and vis code
...
git-svn-id: trunk@31446 -
2015-08-28 22:31:29 +00:00
Jonas Maebe
21066ba3f3
* changed LinkTypeSetExplicitly from a global variable into a field of toption
...
git-svn-id: trunk@31444 -
2015-08-28 22:31:21 +00:00
Jonas Maebe
0d74e4f719
* changed paratargetdbg from a global variable into a field of toption
...
git-svn-id: trunk@31443 -
2015-08-28 22:31:17 +00:00
Jonas Maebe
84bd523867
* changed paratargetasm from a global variable into a field of toption
...
git-svn-id: trunk@31442 -
2015-08-28 22:31:12 +00:00
Jonas Maebe
13638d958d
* changed paratarget from a global variable into a field of toption
...
git-svn-id: trunk@31441 -
2015-08-28 22:31:08 +00:00
Jonas Maebe
7a8921a060
* define CPULLVM when using the LLVM backend (in addtion to the CPUXXX define
...
for the actual target architecture)
git-svn-id: trunk@31405 -
2015-08-24 22:06:50 +00:00
Jonas Maebe
2cf17c0487
* don't generate DWARF cfi when targeting LLVM, it will do that itself
...
git-svn-id: trunk@31343 -
2015-08-18 16:09:44 +00:00
Jonas Maebe
0d87df71a9
* default to ARMv7/VFPv3 for Darwin/ARM (since that's what most iOS devices
...
use nowadays)
git-svn-id: trunk@31302 -
2015-08-09 09:08:26 +00:00
florian
29ba426fcc
* call DefaultReplacements for #WRITE and #INCLUDE, resolves #28315
...
git-svn-id: trunk@31263 -
2015-08-02 20:45:49 +00:00
florian
73c0422997
+ create defines for CPU ALU size
...
git-svn-id: trunk@30441 -
2015-04-05 19:09:28 +00:00
Jonas Maebe
201121d7c9
* synchronised with trunk till r30345
...
git-svn-id: branches/hlcgllvm@30349 -
2015-03-28 12:28:15 +00:00
florian
3396e2e1f4
* interpret -daaa:=bbb after -Sm was passed as a macro definition, resolves #27529
...
git-svn-id: trunk@30271 -
2015-03-22 10:20:37 +00:00
Jonas Maebe
bd203a5b57
* synchronised with trunk till r30240
...
git-svn-id: branches/hlcgllvm@30241 -
2015-03-15 19:44:58 +00:00
Jonas Maebe
cc071ded4b
* define _CALL_ELF=1 or _CALL_ELF=2 symbol when targeting ppc(64)
...
ELFv1/ELFv2, like GCC
git-svn-id: trunk@30195 -
2015-03-14 18:35:22 +00:00
Jonas Maebe
3946971c73
* default to ppc64le/elfv2 when compiling on a ppc64le platform
...
* default to elfv2 abi when targeting ppc64le and no abi has been specified
git-svn-id: trunk@30193 -
2015-03-14 18:35:16 +00:00
Jonas Maebe
d4bc74ecc0
* support for -WM10.XX (for 10.10) and defining the correct associated
...
version macro
git-svn-id: trunk@30178 -
2015-03-13 08:35:30 +00:00
Jonas Maebe
6a70c84258
+ internal bsr/bsf support for ppc32 and ppc64
...
git-svn-id: trunk@30152 -
2015-03-09 16:48:34 +00:00
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
pierre
11e743e5b8
Use FPC_INCLUDE_LONGWORD_TO_DOUBLE for m68k
...
git-svn-id: trunk@23181 -
2012-12-18 15:11:48 +00:00
Jonas Maebe
2dac1c445a
- disabled Stabs support on 64 bit targets (mantis #23365 )
...
* show a warning if an unsupported debug format is selected
git-svn-id: trunk@23056 -
2012-11-24 13:15:58 +00:00
florian
a42b934c69
* introduce FPC_SUPPORT_X87_TYPES_ON_WIN64 define which allows to build
...
a win64 compiler support the x87 types extended and comp/currency handled by the FPU, this
requires to use a i386 compiler as starting compiler and cross compilation because the starting
compiler must support the 80 bit extended type
git-svn-id: trunk@23023 -
2012-11-18 17:30:51 +00:00
florian
f142019343
* set default cpu type to armv7a when compiling for armhf
...
git-svn-id: trunk@22845 -
2012-10-24 19:09:16 +00:00
florian
970405c0f3
o merging r22801 of Jeppe Johansen
...
git-svn-id: trunk@22812 -
2012-10-21 19:05:59 +00:00
Jeppe Johansen
4e84431dde
Fix some optimizations which assume that there are 3 operands
...
Add simple Mul+Sub/Mul+Add into MLS/MLA optimizations
Fix some other small issues in the optimizer
Implement Interlocked* functions with proper use of LDREX/STREX
git-svn-id: branches/laksen/arm-embedded@22801 -
2012-10-21 16:20:52 +00:00
Jonas Maebe
614436d8cb
* added pocall_mwpascal to cdecl_pocalls so we no longer have to explicitly
...
add it everywhere in the paramanagers (where it was often forgotten)
- removed places where it was explicitly added to cdecl_pocalls checks
+ test
git-svn-id: trunk@22616 -
2012-10-12 08:41:03 +00:00
florian
ca5fabda6d
* cleanup some unused units from uses clauses
...
git-svn-id: trunk@22433 -
2012-09-21 18:53:46 +00:00
florian
d63ebe6464
* bsr implementation for armv5+ using clz
...
git-svn-id: trunk@22310 -
2012-09-04 12:56:38 +00:00
florian
9be3ca04ad
* split FPC_HAS_INTERNAL_BSX_* defines into FPC_HAS_INTERNAL_BSF_* and FPC_HAS_INTERNAL_BSR_*
...
git-svn-id: trunk@22308 -
2012-09-04 12:56:18 +00:00
florian
ff12d63248
+ generic popcnt support
...
git-svn-id: trunk@22290 -
2012-09-02 20:59:44 +00:00
florian
b782918434
* first draft to support the popcnt instruction, works so far for x86 with a real popcnt instruction
...
git-svn-id: trunk@22289 -
2012-09-02 20:59:39 +00:00
Jonas Maebe
f5b1c64d36
* default to VFPv2 on Darwin/ARM (all iOS devices ever released until
...
now support it, and the VFPv2 code has been very stable for quite
some time already)
git-svn-id: trunk@22120 -
2012-08-19 09:36:46 +00:00
florian
b8ab3d48f6
* fix compilation on non avr/arm architectures
...
git-svn-id: trunk@22093 -
2012-08-15 16:02:36 +00:00
florian
895aa0d752
* reworked cpuflags for avr
...
+ define cpuflags in options unit so user programs can access them
git-svn-id: trunk@22089 -
2012-08-15 15:48:59 +00:00
Jonas Maebe
ed8087c71a
* check with parameters that must be followed by either nothing or a +/-,
...
are indeed never followed by other characters (prevents typos such as
-EnabledFeature instead of -dEnableFeature from simply switching of
linking)
git-svn-id: trunk@22065 -
2012-08-12 13:30:36 +00:00
florian
4d86d25c6c
* -O4 switch for optimizations which are correct but which might have unexpected effects
...
like field reordering (possible problems cracker classes) or using ebp as normal register (broken
stack traces from dump_stack)
+ niln is also valid in a cse domain
* parameters passed by reference shall have a complexity >1
* load nodes from outer scopes shall have a complexity >1
* better cse debugging
+ more node types added to cse
* consider parameters passed by reference in cse
* take care of cse in parameters in simple cases
git-svn-id: trunk@22050 -
2012-08-09 18:58:54 +00:00
florian
58a7baa62b
* build an armhf armv6 compiler if it is built by an armhf armv6 compiler
...
git-svn-id: trunk@21966 -
2012-07-24 17:11:09 +00:00
pierre
ecddfb7838
+ Added FPC_LOCALS_ARE_STACK_REG_RELATIVE system macro for MIPS cpu
...
git-svn-id: trunk@21893 -
2012-07-12 08:54:06 +00:00
masta
59c726c829
Support ABS intrinsic on ARM
...
This code will generate the following sequence on arm:
r1=dst
r0=src
movs r1, r0
rsbmi r1, r0, #0
movs will set the N-flag when the MSB of r0 is set, if it is set, rsb
will calculate dst:=0-src;
git-svn-id: trunk@21678 -
2012-06-21 20:12:36 +00:00
pierre
600dd162af
Merge of rev21557 by Foxsen
...
Make macro MIPS/CPUMIPS/MIPS32 common for big endian and little endian mips processors
use MIPSEL* for little endian systems
use MIPSEB* for big endian systems
git-svn-id: trunk@21599 -
2012-06-13 22:25:38 +00:00
pierre
2b90b444bf
Differentiate mips/mipsel default system macros
...
git-svn-id: trunk@21546 -
2012-06-08 10:08:24 +00:00
pierre
d6d237d688
* Patch from Fuxin Zhang: FPC_HAS_INTERNAL_SAR set for mips and mipsel CPUs
...
git-svn-id: trunk@21532 -
2012-06-07 23:07:32 +00:00
Jonas Maebe
7dbfd9dc81
* don't say a config file is empty if it only contains #define, #undef,
...
#write and/or #include statements (mantis #20504 )
git-svn-id: trunk@21345 -
2012-05-20 15:00:53 +00:00
sergei
78c0215447
Preparations to native threadvar support:
...
- i386/cgcpu.pas: removed segment check, rejecting references with segment here is too early. These references are passed to tcgx86.a_loadaddr_ref_reg, which can generate required code for them (or reject if they are not allowed for the target).
- ncgld.pas: removed "not tf_section_threadvars in target_info" condition, it is inverse to one on the following line, making non-generic branch impossible to execute.
+ Define FPC_SECTION_THREADVARS macro if corresponding flag is set for the target.
git-svn-id: trunk@21210 -
2012-05-03 16:26:44 +00:00
Jonas Maebe
aee5380ae0
* merged trunk up to r20882
...
o support for the new codepage-aware ansistrings in the jvm branch
o empty ansistrings are now always represented by a nil pointer rather than
by an empty string, because an empty string also has a code page which
can confuse code (although this will make ansistrings harder to use
in Java code)
o more string helpers code shared between the general and jvm rtl
o support for indexbyte/word in the jvm rtl (warning: first parameter
is an open array rather than an untyped parameter there, so
indexchar(pcharvar^,10,0) will be equivalent to
indexchar[pcharvar^],10,0) there, which is different from what is
intended; changing it to an untyped parameter wouldn't help though)
o default() support is not yet complete
o calling fpcres is currently broken due to limitations in
sysutils.executeprocess() regarding handling unix quoting and
the compiler using the same command lines for scripts and directly
calling external programs
o compiling the Java compiler currently requires adding ALLOW_WARNINGS=1
to the make command line
git-svn-id: branches/jvmbackend@20887 -
2012-04-15 15:54:10 +00:00
Tomas Hajny
2cb7b4cf0f
* fixed a silly bug from r20694
...
git-svn-id: trunk@20852 -
2012-04-11 21:12:03 +00:00
Jonas Maebe
7aa3b99fb5
+ -CN/{$CHECKLOWADDRLOADS+/-} switch to enable explicit checks for accesses
...
to low addresses in case the target cpu/OS does not support this (enabled
for reads on AIX/PPC because on AIX the first 16KB are readable)
git-svn-id: trunk@20832 -
2012-04-11 18:05:50 +00:00
florian
d1e16c3cd4
+ define CPUX86 on i386 and CPUX64 on x86-64, resolves #21670
...
git-svn-id: trunk@20726 -
2012-04-06 21:05:09 +00:00