florian
84a1f614d9
* fix several double ;
...
git-svn-id: trunk@45488 -
2020-05-24 17:52:09 +00:00
florian
82a3877126
+ x86: track use of full ymm registers and generate vzeroupper if needed
...
git-svn-id: trunk@45484 -
2020-05-24 17:52:05 +00:00
yury
627fcb4354
* Do not use the LOC_VOID location to indicate unused parameters.
...
* Added the tprocdef.parentfpsym property. Set parentfpsym.varstate to vs_read instead of using the pio_needs_parentfp flag.
* Replaced tcgcallparanode.push_zero_sized_value_para by tparamanager.has_strict_proc_signature.
git-svn-id: trunk@45454 -
2020-05-21 09:36:40 +00:00
pierre
c77ef7d6dd
Regenerate all Makefile's after change in utils/fpcm/fpcmake.ini to better support use of i386 compiler on x86_64 machines
...
git-svn-id: trunk@45356 -
2020-05-13 13:53:15 +00:00
Károly Balogh
04a42bef84
m68k: fixed instruction code formatting in the generated include
...
git-svn-id: trunk@45314 -
2020-05-08 21:06:59 +00:00
Károly Balogh
d5874b0088
m68k: added a full instruction table (minus CF MAC/EMAC instructions for now), based on vasm, and the required tool to process it
...
git-svn-id: trunk@45310 -
2020-05-08 12:05:11 +00:00
nickysn
56b79257a1
* fixed fpmake invokation when building an i386-linux snapshot on a x86_64-linux host
...
git-svn-id: trunk@45298 -
2020-05-06 20:41:01 +00:00
yury
40504a6f9d
* If a nested procedure does not access its parent's frame pointer, optimize it by removing the hidden $parentfp parameter.
...
* Improved the tisogoto1.pp test.
git-svn-id: trunk@45292 -
2020-05-06 14:43:49 +00:00
marcus
4d71051859
ppudump: catch exception on illegal datetime (mainly cross compiled units)
...
git-svn-id: trunk@45219 -
2020-05-02 09:32:11 +00:00
nickysn
6f6598712f
* synchronized with trunk
...
git-svn-id: branches/z80@45131 -
2020-04-26 22:33:58 +00:00
svenbarth
60345366f2
* fix for Mantis #35140 : apply patch by Ryan Joseph together with some further changes by me to add support for constant parameters in generics
...
+ added tests
git-svn-id: trunk@45080 -
2020-04-25 22:12:35 +00:00
nickysn
86643f8a34
* synchronized with trunk
...
git-svn-id: branches/z80@44981 -
2020-04-21 23:36:44 +00:00
svenbarth
184d6d61ed
* regenerate makefiles
...
git-svn-id: trunk@44958 -
2020-04-21 06:09:20 +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
d57ffc4745
* changed the object file format for z80-embedded and z80-zxspectrum to .rel
...
git-svn-id: branches/z80@44899 -
2020-04-20 23:36:15 +00:00
nickysn
2f68090dd6
* synchronized with trunk
...
git-svn-id: branches/z80@44898 -
2020-04-20 22:42:08 +00:00
svenbarth
068f0d2ec8
* fix for Mantis #36935 : apply patch by J. Gareth Moreton to fix a typo in cs_opt_remove_empty_proc
...
git-svn-id: trunk@44888 -
2020-04-20 18:42:30 +00:00
pierre
cd6de6a4ca
Regenerate all Makefiles
...
git-svn-id: trunk@44882 -
2020-04-20 13:58:47 +00:00
nickysn
0f323df7a3
* synchronized with trunk
...
git-svn-id: branches/z80@44873 -
2020-04-19 21:10:31 +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
be50c77f34
* regenerated
...
git-svn-id: trunk@44867 -
2020-04-19 19:22:05 +00:00
florian
c96a3cc9d1
+ take care of OPTNEW when building utils
...
git-svn-id: trunk@44866 -
2020-04-19 19:07:43 +00:00
Jonas Maebe
26ec913725
* regenerated makefiles
...
git-svn-id: trunk@44861 -
2020-04-19 17:33:47 +00:00
nickysn
b868d653bb
* regenerated makefiles after sync with trunk
...
git-svn-id: branches/z80@44847 -
2020-04-19 13:00:50 +00:00
nickysn
daf22383b0
* makefiles regenerated with the zxspectrum target
...
+ added zxspectrum to ppudump
git-svn-id: branches/z80@44820 -
2020-04-19 01:56:06 +00:00
nickysn
d2c32efb7b
* synchronized with trunk
...
git-svn-id: branches/z80@44809 -
2020-04-18 23:47:30 +00:00
Jonas Maebe
4b59bcb0ca
* regenerated makefiles
...
git-svn-id: trunk@44793 -
2020-04-18 16:08:25 +00:00
nickysn
4b01ff605a
* changed max_operands to 2 for the Z80
...
git-svn-id: branches/z80@44758 -
2020-04-17 23:34:56 +00:00
nickysn
53de231c23
+ added the instruction opcode information strings to the compiler instruction table
...
git-svn-id: branches/z80@44755 -
2020-04-17 22:57:18 +00:00
nickysn
be095914ec
+ created and included an Z80 instruction table
...
git-svn-id: branches/z80@44753 -
2020-04-17 22:47:15 +00:00
florian
5bab6201d5
* rebuild Makefiles
...
git-svn-id: trunk@44679 -
2020-04-10 19:42:14 +00:00
nickysn
692ec2fcba
* synchronized with trunk
...
git-svn-id: branches/z80@44623 -
2020-04-06 22:14:42 +00:00
pierre
9dd0a1f3b5
Fix ppudump after addition of system_xtensa_linux target
...
git-svn-id: trunk@44617 -
2020-04-06 06:43:05 +00:00
nickysn
4027ad18e0
+ added strict validation for the param types in z80ins.dat
...
git-svn-id: branches/z80@44557 -
2020-04-04 02:11:20 +00:00
nickysn
20eab5582f
+ generate the Z80 instruction enum and string table from z80ins.dat via a newly created tool
...
git-svn-id: branches/z80@44556 -
2020-04-04 01:36:07 +00:00
florian
0fc1ba26f8
* compilation fixed
...
git-svn-id: branches/z80@44546 -
2020-04-03 20:25:31 +00:00
nickysn
48b4cc34cb
* synchronized with trunk
...
git-svn-id: branches/z80@44414 -
2020-03-29 23:04:40 +00:00
nickysn
fc6e74642d
* regenerate makefiles
...
git-svn-id: branches/z80@44413 -
2020-03-29 23:01:16 +00:00
florian
1f00875f8c
* fix ppudump after addition of freertos-xtensa
...
git-svn-id: trunk@44405 -
2020-03-29 17:13:48 +00:00
nickysn
755fe97c51
* synchronize with trunk
...
git-svn-id: branches/z80@44397 -
2020-03-29 16:24:32 +00:00
Jonas Maebe
429b3744c4
* fpc: don't search for compiler binary in current directory when paramstr(0)
...
does not contain a path (unless the current directory is also in the PATH)
git-svn-id: trunk@44395 -
2020-03-29 14:52:45 +00:00
florian
43dc4c7ea0
* regenerated Makefiles
...
git-svn-id: trunk@44333 -
2020-03-21 20:59:59 +00:00
Jeppe Johansen
3189e4245d
makefiles: Add support for xtensa-embedded target.
...
git-svn-id: trunk@44332 -
2020-03-21 20:59:33 +00:00
florian
34d1b90921
+ Xtensa: support in the build utilities
...
git-svn-id: trunk@44319 -
2020-03-20 22:34:35 +00:00
florian
08c12ca439
+ Xtensa: register information
...
git-svn-id: trunk@44316 -
2020-03-20 22:34:29 +00:00
michael
a880367b37
* Show message about creating fppkg/conf.d directory
...
git-svn-id: trunk@44279 -
2020-03-07 11:40:32 +00:00
Jeppe Johansen
c20b27ede9
Add most SSE instructions as intrinsics.
...
git-svn-id: trunk@44274 -
2020-03-06 21:34:22 +00:00
Jonas Maebe
254b85c352
+ new pio_inline_forbidden flag to indicate that while parsing the
...
implementation the compiler determined the routine must never be
inlined
o difference with po_noinline: can also be set in the implementation
o difference with pio_inline_not_possible: it indicates that e.g.
LLVM must not inline the routine either
git-svn-id: trunk@44065 -
2020-01-29 22:21:17 +00:00
Jonas Maebe
b625afe800
* never inline routines that call get_frame (otherwise get_frame would return
...
the frame of the caller rather than of the current routine, which could
cause e.g. stackframes to be missed in RTL helpers that are known to be
only called from run time error routines)
git-svn-id: trunk@44064 -
2020-01-29 22:21:14 +00:00
florian
70a836c4a2
* first part of merging parts of Jeppe's intrinsics patch, mainly r31135
...
is merged by this commit with a lot of adaptions
git-svn-id: trunk@43949 -
2020-01-14 21:52:39 +00:00
Jonas Maebe
b355ba3d39
* record whether a function uses fastmath, and define the function as
...
strictfp if it doesn't (so LLVM doesn't perform transformations that can
change the fp/exception behaviour)
git-svn-id: trunk@43818 -
2019-12-30 15:05:06 +00:00
Jonas Maebe
f5833dc048
* support for marking arraydefs as vectors
...
git-svn-id: trunk@43782 -
2019-12-24 22:12:31 +00:00
pierre
8c2aa32683
* Remove duplicate ibextraheader handling.
...
* Move SymAnsiStr boolean setting inside parseextraheader function.
* Only accept same CurrentPPULongVersion in parseextraheader function.
git-svn-id: trunk@43672 -
2019-12-11 17:14:27 +00:00
svenbarth
0a915e883e
* keep track of static symbols that a global function references, as those must now be exported from a dynamic package as well if the function can potentially be inlined
...
git-svn-id: trunk@43544 -
2019-11-21 21:44:53 +00:00
florian
798a1b6219
* -P option for ppumove
...
git-svn-id: trunk@43487 -
2019-11-16 11:03:53 +00:00
michael
43a09af7f2
* Fix overflow of compiler messages (bug id 27973)
...
git-svn-id: trunk@43481 -
2019-11-15 15:37:58 +00:00
pierre
a09e40945c
Regenerate all Makefile's after commit #43472
...
git-svn-id: trunk@43478 -
2019-11-15 14:47:02 +00:00
pierre
9b3447a6a4
Fix ppudump after commit #43450
...
git-svn-id: trunk@43458 -
2019-11-13 16:59:26 +00:00
Jonas Maebe
2f914ee2d8
* packed tabstractvarsym.addr_taken/different_scope fields into a set
...
git-svn-id: trunk@43450 -
2019-11-11 09:26:51 +00:00
Jonas Maebe
ac1e0f96bd
* replaced tentryfile.get/putsmall/normalset() with a common tget/putset
...
that expects an open array of byte, and use it for all sets
o since all sets need to be typecasted to an array type of the appropriate
size, we'll get a compilation error in case this needs to be done and
that also tells us at the same time that the ppu version will need to
be increased
* enabled {$packset 1} for the compiler, as this is now safe with the above
changes
git-svn-id: trunk@43407 -
2019-11-06 21:50:19 +00:00
florian
cffc69ec1d
+ support pi_needs_tls
...
git-svn-id: trunk@43124 -
2019-10-05 20:48:22 +00:00
Károly Balogh
19a6964088
m68k: add subregisters. on 68k, these are not as universal as on x86 and work differently, but the compiler needs this infrastructure to do 16bit math (which is a massive improvement on '000) or word-size indexes on CPUs which support it
...
git-svn-id: trunk@43043 -
2019-09-20 11:35:35 +00:00
Jonas Maebe
9678542ba6
+ add "thunk" attribute for stubs/thunks and emit it for LLVM
...
- also removed wrong "noreturn" attribute for interface thunks generated
for high level code generator targets
git-svn-id: trunk@43018 -
2019-09-15 20:43:12 +00:00
florian
69786ffe73
somehow committing went wrong, second part of last commit:
...
+ AArch64: support for vX.8b/vX.16b register names
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
git-svn-id: trunk@42917 -
2019-09-03 21:07:33 +00:00
florian
a5a87fa84c
+ AArch64: support for vX.8b/vX.16b register names
...
+ support for more than 256 registers in the register dat files
- removed totherregisterset
+ AArch64: use vmov to load immediates if possible
+ AArch64: use eor to clear mm registers
+ small command line tool for quick creating of vfp register list in a64reg.dat
git-svn-id: trunk@42916 -
2019-09-03 20:59:13 +00:00
pierre
0e02b4f58c
Fix problems with big endian systems without 80-bit floating point support
...
git-svn-id: trunk@42906 -
2019-09-02 16:00:15 +00:00
Jonas Maebe
956aab3be0
* implement support for the Objective-C "related result type" convention
...
as described on
http://releases.llvm.org/8.0.0/tools/clang/docs/LanguageExtensions.html#objective-c-features
(rest of mantis #35994 )
git-svn-id: trunk@42816 -
2019-08-25 15:23:53 +00:00
pierre
5ed7bd35df
Update all trunk/fpcsrc Makefile's after commit 42749
...
git-svn-id: trunk@42750 -
2019-08-20 15:58:10 +00:00
pierre
36bc9b726e
Reduce cpu-os dependency on real constant printout by using system.str
...
git-svn-id: trunk@42670 -
2019-08-13 06:20:23 +00:00
florian
f883dd6dbb
Synchronized with trunk, part 2 (make all works, avx-512 support not yet tested, no regression testing yet)
...
git-svn-id: branches/tg74/avx512@42643 -
2019-08-10 19:38:35 +00:00
florian
746bfced25
Synchronized with trunk, part 1 (only make cycle tested, make all is broken, avx-512 support not yet tested
...
git-svn-id: branches/tg74/avx512@42642 -
2019-08-10 13:53:20 +00:00
pierre
651922c2f8
Correct size of asizeint, which is still 4-byte long even when CpuAddrBitSize is 16 as for avr and i8086
...
git-svn-id: trunk@42609 -
2019-08-09 09:29:50 +00:00
pierre
843a379cc2
Fix gettokenbufshortint, as shortint is one byte long, not two
...
git-svn-id: trunk@42596 -
2019-08-06 21:32:51 +00:00
pierre
6c87348b86
Add mode and optimizer switches names, and check that no unknown switch is set
...
git-svn-id: trunk@42591 -
2019-08-06 06:32:52 +00:00
pierre
0167ddf44c
Reorganize token buffer output to be able to use it for generics and inlined functions
...
git-svn-id: trunk@42583 -
2019-08-05 09:15:12 +00:00
pierre
dca8147958
Try to fix ppudump for generic/inline.
...
* entfile.pas: Differenciate ibsymtableoptions and ibrecsymtableoptions.
* ppu.pas: Increase ppu unit CurrentPPULongVersion value.
* utils/ppuutils/ppudump.pp: Add current_symtable_options variable.
Change readsymtableoptions from procedure to function returning
the new tsymtableoptions.
git-svn-id: trunk@42530 -
2019-07-29 16:40:58 +00:00
pierre
f2b200e4f0
Fix recordtoken writing into ppu files to allow correct
...
handling in cross-configuration with different endianess.
The code has been modified to use the same scheme as the writing of
the other parts of the ppu, i.e. change_endian filed has been
added also to tscannerfile class of scanner unit.
This field is then used to swap values that required endianess
conversion.
* scanner.pas: change_endian filed added to tscannerfile class.
The value of this field is set as the same field in tentryfile class of entfile unit.
Token read and write methods converted to use change_endian field.
* ppu.pas: Increase CurrentPPILongVersion
* utils/ppuutils/ppudump.pp: Remove unneeded FPC_BIG_ENDIAN code
which was needed because tokens were previously written using a
different rule.
git-svn-id: trunk@42527 -
2019-07-29 05:33:00 +00:00
svenbarth
b945e66e28
* store attribute information in PPU; this is less important for the compiler, but more for e.g. Lazarus when dealing with binary only units
...
* increase ppu version
+ added test
* adjust ppudump to handle attributes as well
ToDo: output parameter nodes as well
git-svn-id: trunk@42401 -
2019-07-12 22:07:46 +00:00
svenbarth
2a7b750d70
* write a name for the none property access entry (looks nicer than a "(Nil)" at the start of the line)
...
git-svn-id: trunk@42354 -
2019-07-12 16:25:36 +00:00
svenbarth
54c4fb2a00
* write an entry name for the property options
...
git-svn-id: trunk@42353 -
2019-07-12 16:25:33 +00:00
marcus
d9f3867783
Fixed ppudump compilation on big endian platforms after r42324
...
git-svn-id: trunk@42325 -
2019-07-04 16:49:26 +00:00
pierre
40f0372d8c
Correctly read saved tsettings
...
git-svn-id: trunk@42324 -
2019-07-04 15:25:40 +00:00
Jonas Maebe
40f6a4ea3c
- removed remnants of old ppu file support (ppudump does not support any
...
other ppu version than the current one anyway)
git-svn-id: trunk@42313 -
2019-06-30 16:24:48 +00:00
Jonas Maebe
cc9f8b7f56
* record in ppu flag whether or not symbols are ansistrings, and use that
...
flag in ppudump rather than hardcoding targets (it's also the case for
LLVM)
git-svn-id: trunk@42312 -
2019-06-30 16:24:44 +00:00
Jonas Maebe
489582e36a
* fix ppudump compilation
...
git-svn-id: branches/debug_eh@42121 -
2019-05-25 14:41:30 +00:00
Jonas Maebe
a0e35fd1bc
* synchronised with trunk till r42118
...
git-svn-id: branches/debug_eh@42119 -
2019-05-25 13:19:06 +00:00
pierre
769f85783a
List TSettings partially and improve generic output
...
git-svn-id: trunk@42111 -
2019-05-20 22:06:57 +00:00
Jonas Maebe
0cd0e1614b
* synchronised with trunk till r42105
...
git-svn-id: branches/debug_eh@42106 -
2019-05-19 19:24:25 +00:00
Jonas Maebe
aad87820e6
* abstracted registration of library init/fini routines (to be able to add
...
LLVM support)
git-svn-id: trunk@42104 -
2019-05-19 19:20:47 +00:00
Jonas Maebe
9e9a982bfe
* synchronised with trunk till r42095
...
git-svn-id: branches/debug_eh@42096 -
2019-05-18 18:43:51 +00:00
pierre
c0f064a35c
Remove two warnings about missing case (others are still present in ppudump.pp source)
...
git-svn-id: trunk@42085 -
2019-05-16 12:42:39 +00:00
Jonas Maebe
128bf046b4
* regenerated Makefiles with LLVM bitcode installation support
...
git-svn-id: branches/debug_eh@41914 -
2019-04-20 18:56:45 +00:00
Jonas Maebe
fc60ec2ea4
+ support for LLVM LTO: compile units with -CLflto -> when compiling a main
...
program/library also with -Clflto, all units compiled with that option
will be linked using their bitcode files and LTO
o compiling with -CLflto will compile all units twice: once for normal
(static or smart) linking, and once for LTO. So the result can be
used both with and without LTO.
git-svn-id: branches/debug_eh@41910 -
2019-04-20 18:56:11 +00:00
Jonas Maebe
2923e484fd
* synchronised with trunk till r41907
...
git-svn-id: branches/debug_eh@41908 -
2019-04-20 18:22:52 +00:00
Jonas Maebe
d150869dea
* record symbols that need to remain in their original order, and on Darwin
...
pass them to the linker so it does not reorder them
o fixes resource strings on Darwin when using LTO (this used to reorder the
resource string symbols, so they no longer all appeared between the START
and END symbols for their compilation module)
git-svn-id: trunk@41907 -
2019-04-20 18:18:10 +00:00
Jonas Maebe
0225a3a39a
* ppudump: fixed reading of ibresource section
...
git-svn-id: trunk@41905 -
2019-04-20 18:18:03 +00:00
pierre
ec76e879c9
Integrate patch from bug report 35409.
...
Add possibiliy to throw InternalError
for unhandled case values inside tentryfile,
But avoid adding dependency on verbose unit
as this would break ppudump handling of ppu files.
Add RaiseAssertion virtual method to tentryfile class.
Call RaiseAssertion in tentryfile methods
where an internal error is wanted.
Override RaiseAssertion method in symtype.pas unit
to call InternalError.
Add new class tppudumpfile to override RaiseAssertion
in utils/ppuutils/ppudump.pp unit.
git-svn-id: trunk@41896 -
2019-04-18 14:08:03 +00:00
Jonas Maebe
a7bd37d17a
* synchronised with trunk till r40776
...
git-svn-id: branches/debug_eh@41867 -
2019-04-13 15:16:09 +00:00
Jonas Maebe
349bb2ff38
* check CurrentPPULongVersion in ppumove
...
git-svn-id: trunk@41866 -
2019-04-13 15:12:09 +00:00
Jonas Maebe
0b61b5d4cf
* added extra header to ppu inside a subsection, so we won't run into
...
trouble when the ppu version hits 255
* also moved several ppu flags to a set inside that section
git-svn-id: trunk@41846 -
2019-04-06 21:28:43 +00:00
Jonas Maebe
dc2cbf8018
* synchronised with trunk till r41725
...
git-svn-id: branches/debug_eh@41726 -
2019-03-17 15:25:31 +00:00
Jonas Maebe
1bb8bd471a
* fix msgtxt array size if the text size is an exact multiple of 240
...
git-svn-id: trunk@41725 -
2019-03-17 15:22:06 +00:00
pierre
74fed2a4cd
Regenerate Makefile's after fpcmake change in commit #41721
...
git-svn-id: trunk@41723 -
2019-03-17 14:45:03 +00:00
yury
b0535d8d0f
* ppudump: Fixed a warning regarding text clipping.
...
git-svn-id: trunk@41628 -
2019-03-07 10:36:05 +00:00
yury
54756c0f60
* ppudump: Fixed formatting of a error message.
...
git-svn-id: trunk@41627 -
2019-03-07 10:33:04 +00:00
yury
37941d03cc
* ppudump: Avoid using GetLastOSError on platforms that doesn't support it (e.g. go32v2).
...
git-svn-id: trunk@41625 -
2019-03-07 10:18:15 +00:00
Jonas Maebe
ac883969a9
* synchronised with trunk till r41423
...
git-svn-id: branches/debug_eh@41424 -
2019-02-23 17:08:03 +00:00
Jonas Maebe
8b9e90dc7a
* keep track of whether a routine has a C-style variadic parameter in the
...
procoptions even when it's through an array-of-const parameter
* always call create_varargs_paraloc_info() instead of create_paraloc_info()
in the former case, even when no varargs parameters are specified (because
on some platforms even some non-variadic parameters need to be passed
differently, such as on ARM with gnueabihf)
git-svn-id: trunk@41420 -
2019-02-23 15:42:45 +00:00
yury
fa4596a08f
* ppudump: Fixed warnings with -O3.
...
git-svn-id: trunk@41394 -
2019-02-20 10:24:48 +00:00
yury
9a3ddf650c
* ppudump: Use buffered write when outputting to json or xml. It improves the output speed a lot.
...
git-svn-id: trunk@41393 -
2019-02-20 10:13:18 +00:00
florian
6b0c2a45f5
* compilation fixes
...
git-svn-id: branches/debug_eh@41290 -
2019-02-10 19:33:14 +00:00
Jonas Maebe
503ea604f3
+ nolinline modifier to specify that a routine must never be inlined
...
git-svn-id: trunk@41198 -
2019-02-03 21:00:17 +00:00
joost
6ffe906794
* Mover {CompilerVersion} from the fppkg.cfg template to samplecfg, because
...
on Windows it is possible to install fpc in a location without the
compilerversion in the path.
git-svn-id: trunk@41184 -
2019-02-03 13:32:43 +00:00
Károly Balogh
6c87b89e45
atari: fpc now searches for the compiler with .ttp extension, as that's the default on Atari
...
git-svn-id: trunk@41141 -
2019-01-30 10:48:27 +00:00
pierre
3e2b102a44
Add missing support for -PriscvXX and -Psparc64
...
git-svn-id: trunk@40833 -
2019-01-10 12:18:22 +00:00
Jonas Maebe
51e68eb302
* fixed several places where the interface crc could change:
...
o unsetting po_inline while parsing the implementation for various reasons
(interprocedural goto/label, accessing a local in a parent frame,
having nested procedures)
o instead handle this via the pio_inline_not_possible flag
o noreturn can no longer be specified only in the implementation
git-svn-id: trunk@40789 -
2019-01-06 20:35:56 +00:00
Károly Balogh
5182dc37af
haiku-x86_64: regenerated all Makefiles, take 2
...
git-svn-id: trunk@40758 -
2019-01-04 03:18:42 +00:00
Károly Balogh
2f7fe0e737
haiku-x86_64: add target to the compiler and ppudump, enable it in fpmake and fpcmake
...
git-svn-id: trunk@40753 -
2019-01-04 02:16:24 +00:00
Jonas Maebe
50ab607676
+ customint torddef type to create arbitraty bit-width integers
...
o use this to handle non-power-of-two-sized parameters for llvm
o no general support in the parser/code generator, so don't expose
git-svn-id: trunk@40398 -
2018-11-29 20:57:08 +00:00
pierre
0052e4da81
* Use getasizeint/putasizeint for tfieldvarsym.fieldoffset
...
* Change CurrentPPUVersion
git-svn-id: trunk@40347 -
2018-11-18 10:32:13 +00:00
florian
9f16c34329
+ initial work for tls-based threadvar support on arm-linux
...
git-svn-id: trunk@40267 -
2018-11-07 22:02:58 +00:00
yury
dd60397165
+ Added the pio_inline_not_possible flag to timplprocoption. It is set if a function can't be inline (contains an assembler block, etc). When calling such functions, no note "Call to subroutine "?" marked as inline is not inlined" is emitted.
...
git-svn-id: trunk@40254 -
2018-11-07 12:20:30 +00:00
pierre
e49025a086
More -CriotR fixes:
...
* entfile.pas: Change PPU header falgs filed from longint to dword.
* ngtcon.pas: Change local variable startoffset type to aword.
* omfbase.pas: Avoid calling move with a nil string s indexed as s[1],
to avoid a range check error.
* owomflib.pas: Disable range check explicitly in hash computation.
* utils/ppuutils/ppudump.pp: Adapt to flags type change in entfile.pas
git-svn-id: trunk@40163 -
2018-11-01 21:58:54 +00:00
pierre
3b49fda0a2
Only call moved if len>0, as otherwise astring local variable is nil, which leads to a range check error for astring[1]
...
git-svn-id: trunk@40132 -
2018-11-01 07:09:47 +00:00
pierre
9c2ac7b3dd
Avoid range check error in ReadPosInfo
...
git-svn-id: trunk@40115 -
2018-10-31 22:53:11 +00:00
pierre
378e1dfaa4
Add explicit typecast to avoid range check error
...
git-svn-id: trunk@40001 -
2018-10-20 22:19:08 +00:00
yury
a29290202f
* Regenerated makefiles to support x86_64-android.
...
git-svn-id: trunk@39958 -
2018-10-17 17:12:20 +00:00
yury
e367577bf1
+ added support for x86_64-android target.
...
git-svn-id: trunk@39956 -
2018-10-17 16:56:27 +00:00
Jonas Maebe
0b246f3dbd
* converted Boolean8 to an internal type, and mapped Boolean to the
...
new internal pasbool1(type) (part of mantis #34411 )
o apply the _Bool x86-64 parameter passing rules only to pasbool1
git-svn-id: trunk@39949 -
2018-10-16 21:14:18 +00:00
pierre
a898ae856f
Adapt ppudump to fix introduced in revision 39912
...
git-svn-id: trunk@39914 -
2018-10-12 06:05:50 +00:00
yury
8c59eb1ce5
* Regenerated makefiles to support aarch64-android.
...
git-svn-id: trunk@39863 -
2018-10-06 09:36:03 +00:00
yury
671d31df1d
+ Added support for the aarch64-android target.
...
git-svn-id: trunk@39862 -
2018-10-06 09:33:09 +00:00
pierre
915fb05055
Update remaining Makefile's
...
git-svn-id: trunk@39830 -
2018-09-27 07:10:27 +00:00
florian
a34d4e715c
Merged riscv_new branch
...
git-svn-id: trunk@39813 -
2018-09-26 19:49:08 +00:00
svenbarth
600ed6701e
+ keep track whether a structured type has fields with management operators (or fields that in turn have fields with management operators and so on) and store that in the PPU to speed up compilation again
...
* adjusted PPUdump for this
git-svn-id: trunk@39709 -
2018-09-03 18:00:27 +00:00
marco
98f00acb06
* trunk to 3.3.1
...
git-svn-id: trunk@39635 -
2018-08-18 15:47:44 +00:00
Jeppe Johansen
2aaf481d89
Regenerated makefiles.
...
git-svn-id: branches/laksen/riscv_new@39476 -
2018-07-20 10:40:57 +00:00
Jeppe Johansen
ceb38833f2
Added RiscV32/64 target, from a cleaned up version of branches/laksen/riscv/trunk.
...
git-svn-id: branches/laksen/riscv_new@39474 -
2018-07-20 08:21:15 +00:00
svenbarth
cc153176f3
+ add a new symtable option sto_has_non_trivial_init that is true if the symtable contains a symbol with an
...
Initialize() operator (like sto_needs_init_final this flag is calculated on demand)
* increase PPU version
git-svn-id: trunk@39252 -
2018-06-20 19:00:08 +00:00
florian
8c0d5411d0
* dwarf numbers corrected
...
* zmm14 definition fixed
+ commented definitions for bnd/k registers added
* made reg. cound a longint
git-svn-id: branches/tg74/avx512@39209 -
2018-06-10 14:17:37 +00:00
tg74
31e4d4ef5e
AVX512 support for MMRegister xmm16..31 and ymm16..31, zmm0..31, vpaddsb support AVX512
...
git-svn-id: branches/tg74/avx512@39196 -
2018-06-08 06:53:35 +00:00
florian
21d785e41b
* do not unroll loops if the counter variable is accessed outside the current scope
...
git-svn-id: trunk@39163 -
2018-06-03 15:12:48 +00:00
nickysn
a275d15da2
+ added an i8086-specific column in x86reg.dat for the dwarf register numbers
...
and filled it with the dwarf register mapping, used by Open Watcom (Watcom
also uses this mapping on i386, but we don't need to support their debugger on
i386 for now)
git-svn-id: trunk@39097 -
2018-05-23 15:12:58 +00:00
pierre
d12ba4d37d
Regenerated Makefile's after addition of ppas and ppaslink script removal in rev 38745
...
git-svn-id: trunk@38749 -
2018-04-12 15:21:49 +00:00
pierre
79730fe479
Fix compilation error after introduction of po_hasnearfarcallmodel
...
git-svn-id: trunk@38734 -
2018-04-11 20:09:05 +00:00
pierre
554c0c5a2a
Avoid to access past length of string in last commit
...
git-svn-id: trunk@38417 -
2018-03-05 21:43:28 +00:00
pierre
01154e1f55
Also discard lines beginning with # for multiline messages
...
git-svn-id: trunk@38416 -
2018-03-05 21:36:37 +00:00
Károly Balogh
77b97abe61
arm-netbsd: regenerated the required Makefiles
...
git-svn-id: trunk@38413 -
2018-03-05 15:44:49 +00:00
Károly Balogh
dbb91b5ef0
arm-netbsd: added platform define and dummy rtl files so the build passes for this platform. port not functional yet
...
git-svn-id: trunk@38412 -
2018-03-05 15:38:46 +00:00
svenbarth
d50848174a
+ add putboolean and getboolean convenience methods to tentfile
...
* use putboolean and getboolean where approbiate
git-svn-id: trunk@37972 -
2018-01-14 21:36:02 +00:00
florian
5bedaf11f4
* fpcmake.inc and Makefiles renerated after last commit
...
git-svn-id: trunk@37834 -
2017-12-27 15:08:18 +00:00
florian
b41cb26727
+ write selected features in ppu of the system unit and load them further on
...
* ppu version update
* -Sf might be used only during system unit compilation
* loadsystemunit factored out so the system unit can be loaded earlier than other units to get features set
git-svn-id: trunk@37708 -
2017-12-10 16:32:56 +00:00
Károly Balogh
0d15323c29
also add solaris-sparc64 to ppudump, fix build breakage after r37701
...
git-svn-id: trunk@37702 -
2017-12-08 17:16:32 +00:00
florian
3bcf774c7b
* compilation fixed
...
git-svn-id: trunk@37534 -
2017-10-30 21:01:10 +00:00
pierre
d18627f0af
* Update all fpcsrc Makefile's using latest fpcmake version 2017-09-21 rev 37286
...
git-svn-id: trunk@37462 -
2017-10-16 00:27:27 +00:00
florian
198c53a908
o patch by J. Gareth "Kit" Moreton, resolves partially issue #32037
...
* generate instructions with shorter imm on x86-64 if possible
git-svn-id: trunk@37376 -
2017-10-01 18:40:09 +00:00
pierre
1aa731df63
Fix Absolute var symbol address (was failing for AVR cpu)
...
git-svn-id: trunk@37320 -
2017-09-25 18:44:16 +00:00
nickysn
e701fa8de1
* converted the x86 instruction flags to a set, so they can be extended more
...
easily and so that all the values are now available to the compiler
(previously, there were several, which were mapped to the same value and thus
were only used to make x86ins.dat easier to read)
git-svn-id: trunk@37299 -
2017-09-21 15:48:27 +00:00
pierre
ce332eb2e2
Fix failures for rtl ppudump on sparc cpu
...
git-svn-id: trunk@37250 -
2017-09-18 14:10:19 +00:00
pierre
bd428ce6ad
Use getptruint for pointer type const, fixes i8086 ppudump problems
...
git-svn-id: trunk@37242 -
2017-09-17 20:44:08 +00:00
pierre
e1dbb5edcb
Fix crash for GenConstraints handling
...
git-svn-id: trunk@37209 -
2017-09-15 08:43:17 +00:00
pierre
8bdd161805
Fix error for jvm compiler
...
git-svn-id: trunk@37207 -
2017-09-14 15:13:31 +00:00
pierre
6a09a68156
Fix failures in rtlppulogs
...
git-svn-id: trunk@37206 -
2017-09-14 13:41:06 +00:00
svenbarth
a6821c63e0
* store the type of the helper that had been encountered during parsing in the objectdef and by extension the PPU
...
git-svn-id: trunk@37202 -
2017-09-13 21:24:06 +00:00
Károly Balogh
04dee0fc04
regenerated Makefiles for m68k-macos target
...
git-svn-id: trunk@37034 -
2017-08-22 11:16:42 +00:00
florian
9529416ba0
+ sparc64 support for the fpc executable
...
git-svn-id: trunk@36959 -
2017-08-20 17:20:40 +00:00
Károly Balogh
addc3a2f94
m68k-palmos: fixed the syscall generation, and improved it to support the dispatch-selector-in-reg-D2 traps
...
git-svn-id: trunk@36892 -
2017-08-13 01:19:19 +00:00
pierre
4c7b73d48d
Adjust string size for CpuTxt and Targets string arrays
...
git-svn-id: trunk@36861 -
2017-08-08 18:17:20 +00:00
pierre
708b9e162c
Add obsolete comment in ppudump output for obsoleted cpu and systems
...
git-svn-id: trunk@36824 -
2017-08-04 09:07:01 +00:00
florian
a2e442e111
* keep the names of X, Y and Z in assembler files, fixes issue #32150
...
git-svn-id: trunk@36776 -
2017-07-23 19:24:45 +00:00
florian
8c33fbbe64
* indention fixed
...
git-svn-id: trunk@36775 -
2017-07-23 19:24:43 +00:00
florian
85050f3383
* Makefiles regenerated
...
git-svn-id: trunk@36528 -
2017-06-18 21:06:34 +00:00
nickysn
e667a18838
+ support the codepage directive in the msg2inc converter util
...
* msgtxt.inc updated to include the codepage info
git-svn-id: trunk@36449 -
2017-06-08 15:46:30 +00:00
Károly Balogh
365d774ca7
fixed zipinstall after r36418
...
git-svn-id: trunk@36419 -
2017-06-04 23:11:51 +00:00
florian
a3aa2616fc
* Makefiles regenerated
...
git-svn-id: trunk@36382 -
2017-05-31 20:59:41 +00:00
florian
b59e4f5652
+ register .inc files for SPARC64
...
git-svn-id: trunk@36380 -
2017-05-31 20:58:30 +00:00
maciej-izak
e91402af87
* better text format for management operators in ppudump.pp
...
git-svn-id: trunk@36202 -
2017-05-13 17:46:58 +00:00
pierre
d6bf9e03ec
Add missing management operator options to ppudump
...
git-svn-id: trunk@35934 -
2017-04-24 12:43:30 +00:00
nickysn
9303a8f61a
* changed the x86 TInsProp.Ch structure from a 3-element array to a pascal set;
...
this removes the limit of 3 Ch_XXX flags per instruction (thus allowing adding
more precise flags, e.g. for tracking only certain bits of the flags register,
etc.) and avoids the ugliness of having the Ch_None filler, which makes
x86ins.dat less readable.
git-svn-id: trunk@35850 -
2017-04-19 16:48:35 +00:00
pierre
17b2671213
Regenerate all Makefile's after changes related to FPCDIR checks
...
git-svn-id: trunk@35833 -
2017-04-18 14:15:47 +00:00
yury
ea61dee00b
* ppudump: Mark objects with abstract methods in the JSON/XML output.
...
* pas2jni: Properly handle inherited classes when an ancestor has abstract methods.
git-svn-id: trunk@35746 -
2017-04-07 09:53:54 +00:00
florian
8025119048
+ z80 support for ppudump
...
git-svn-id: branches/z80@35675 -
2017-03-28 20:19:30 +00:00
florian
e370e9ba15
* register names fixed
...
git-svn-id: branches/z80@35670 -
2017-03-27 20:30:51 +00:00
florian
ea52a23179
+ skeleton for Z80 support
...
git-svn-id: branches/z80@35665 -
2017-03-26 19:10:50 +00:00
yury
29986a1616
* Removed unused vars.
...
git-svn-id: trunk@35534 -
2017-03-07 08:24:10 +00:00
Károly Balogh
e8cad013f4
ppudump: fix build after r35497
...
git-svn-id: trunk@35500 -
2017-03-01 15:41:37 +00:00
florian
8ba0abf0d7
* avoid warning about OutName not being initialized
...
git-svn-id: trunk@35386 -
2017-02-04 13:25:38 +00:00
svenbarth
1a6a8b7c9f
+ introduce a new potype for the main stub of a package library (which on Windows is simply a DLLMain returning True)
...
git-svn-id: trunk@35371 -
2017-01-29 22:37:40 +00:00
svenbarth
c1db48c8c6
* add ability to disable the generation of an indirect symbol if needed (useful if that's done by the constant builder)
...
Note: I'm not yet really happy with both AT_DATA_FORCEINDIRECT and AT_DATA_NOINDIRECT; maybe I should replace them with flags or something like that...
git-svn-id: trunk@35366 -
2017-01-29 17:42:00 +00:00
florian
bba23f6561
* warnings fixed
...
* cleanup
git-svn-id: trunk@35169 -
2016-12-18 20:28:38 +00:00
Károly Balogh
7c1c964c28
arm-aros: enabled basic AROS on ARM build
...
git-svn-id: trunk@34811 -
2016-11-06 14:40:02 +00:00
florian
9553e8b5a8
* fix building of ppudump
...
git-svn-id: trunk@34810 -
2016-11-06 14:35:32 +00:00
Károly Balogh
c7c37f66ed
* refactored syscall types for unified naming,first bits of ARM AROS syscall support
...
git-svn-id: trunk@34806 -
2016-11-06 12:41:56 +00:00
marcus
86940dfb32
AROS: added arm-aros target to compiler and fpcmake
...
git-svn-id: trunk@34805 -
2016-11-06 10:51:45 +00:00
joost
bf8e3c9264
* Added example to samplecfg, to make clear which path is meant
...
git-svn-id: trunk@34733 -
2016-10-16 16:50:05 +00:00
joost
d08a747c29
* Create fppkg-config files in the new format (v5)
...
git-svn-id: trunk@34729 -
2016-10-16 15:43:27 +00:00
Károly Balogh
5db02f4202
atari: initial support for TOS syscalls
...
git-svn-id: trunk@34610 -
2016-10-03 23:37:30 +00:00
pierre
4d09dfca95
Remember usage of checkpointer (-gc) option:
...
Use new cs_checkpointer_called moduleswitches set element.
Use new uf_checkpointer_called PPU flag (reusing obsolete uf_local_browser flag value)
Emit warning if compiled library/program has any code using checkpointer.
* ppu.pas: New constant: uf_checkpointer_called
* globtype.pas: New constant: cs_checkpointer_called
* fppu.pas: Set uf_checkpointer_called flag if cs_checkpointer_called is set in current_settings.module_switches
* i8086/n8086mem.pas: Include cs_checkpointer_called in current_settings.moduleswitches
* ncgmem.pas: Likewise.
* msg/errore.msg: Add new message saying that -gc and -Ur options are incompatible
Add description to -gc option, saying it is experimental.
Add warning at link time for program/library if checkpointer is used in any unit or main code.
* options.pas: if -gc and -Ur options are used, never enable checkpointer code,
instead output a warning that release is incompatible with -gc option.
* pmodules.pas: proc_program: Check all modules for uf_checkpointer_called flag,
emit a warning if checkpointer is used.
* utils/ppuutils/ppudump.pp: Add code for uf_codepointer_called option.
git-svn-id: trunk@34567 -
2016-09-27 14:46:09 +00:00
Károly Balogh
464ecab542
huge syscall support refactor for Amiga-likes. removed large chunks of ancient duplicated code, and in general tried to make the entire thing more maintainable and cleaner. also added support for AROS EAXBase syscall convention
...
git-svn-id: trunk@34416 -
2016-09-03 07:57:23 +00:00
Károly Balogh
c5a123614a
fixed explicit paraloc support in ppudump and made it work on all Amiga-like systems
...
git-svn-id: trunk@34394 -
2016-08-29 21:26:55 +00:00