Commit Graph

5496 Commits

Author SHA1 Message Date
florian
b6097a0300 * correctly handle result type of string constant nodes for internally created
nodes

git-svn-id: trunk@45231 -
2020-05-03 12:41:17 +00:00
Jonas Maebe
722ad1ff7b * support floating point parameters split over multiple locations, including
integer registers, for homogeneous records/arrays on ppc64le (related to
    mantis )

git-svn-id: trunk@45205 -
2020-05-01 13:02:48 +00:00
Jonas Maebe
05923af386 * ppc64le: fix storing homogeneous 64 bit float parameters in case they are
split over just FPU registers and memory (related to mantis )

git-svn-id: trunk@45204 -
2020-05-01 13:02:45 +00:00
Jonas Maebe
d83232f881 * ELFv2: fixed homogeneous aggregate parameter passing when they should
overflow into integer registers (mantis )

git-svn-id: trunk@45199 -
2020-04-30 20:53:05 +00:00
marcus
95ced4a7f5 Amiga: special CRT unit (named vidcrt) based on video unit
git-svn-id: trunk@45197 -
2020-04-30 19:28:45 +00:00
nickysn
19c1ecda54 + started work on the Z80 internal assembler
git-svn-id: trunk@45191 -
2020-04-30 14:27:48 +00:00
Károly Balogh
c206415450 zxspectrum: pascal startup code. this allows the RTL to be built with any assembler
git-svn-id: trunk@45165 -
2020-04-28 23:13:29 +00:00
Károly Balogh
23fc0fe66a z80: added quick & dirty vasm assembler support to the target
git-svn-id: trunk@45152 -
2020-04-28 01:23:31 +00:00
nickysn
fa052f76ee + added empty strings.inc and stringss.inc files
git-svn-id: trunk@45148 -
2020-04-27 22:13:36 +00:00
nickysn
6f6598712f * synchronized with trunk
git-svn-id: branches/z80@45131 -
2020-04-26 22:33:58 +00:00
svenbarth
a467332187 * fix for Mantis : arraydefs are not allowed for generic types (this is only used for type declarations; for specializing constant strings which are char arrays are still allowed)
+ added test

git-svn-id: trunk@45089 -
2020-04-26 11:46:10 +00:00
svenbarth
60345366f2 * fix for Mantis : 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
26ba399a66 * synchronized with trunk
git-svn-id: branches/z80@45056 -
2020-04-24 19:16:32 +00:00
svenbarth
bd01182ff0 * add support for AND, OR, XOR and NOT of integer values in preprocessor directives (Delphi allows that as well)
+ added test

git-svn-id: trunk@45053 -
2020-04-24 14:09:04 +00:00
nickysn
02dbca9ae4 + added dummy sysdir.inc to the ZX Spectrum RTL
git-svn-id: branches/z80@45032 -
2020-04-23 03:03:42 +00:00
nickysn
f732b8413c + added dummy sysfile.inc
git-svn-id: branches/z80@45031 -
2020-04-23 03:01:39 +00:00
nickysn
0d7e3921aa + added susheap.inc to the ZX Spectrum RTL (empty for now)
git-svn-id: branches/z80@45027 -
2020-04-23 02:35:11 +00:00
nickysn
76a8d47eb6 + added z80/int64p.inc (empty for now)
git-svn-id: branches/z80@45021 -
2020-04-23 01:57:03 +00:00
nickysn
cae8a928c9 * fixed tz80loadparentfpnode.pass_generate_code to return result in an imaginary register sequence,
instead of simply returning IX

git-svn-id: branches/z80@45020 -
2020-04-23 01:40:13 +00:00
nickysn
a189ea4b0b * synchronized with trunk
git-svn-id: branches/z80@45010 -
2020-04-22 22:43:31 +00:00
florian
483837ae5c + Xtensa: make use of ADDX*
git-svn-id: trunk@45001 -
2020-04-22 21:03:08 +00:00
svenbarth
5ef9a78f5f * fix for Mantis : B and BL can take immediate literals as well
+ added test

git-svn-id: trunk@44999 -
2020-04-22 20:19:14 +00:00
yury
7b425ed4a6 * Moved the common interface part of the win32 and win64 System units to the syswinh.inc include file.
git-svn-id: trunk@44996 -
2020-04-22 12:04:05 +00:00
nickysn
63e6c8fcf1 + override the NOT node for the Z80 (not yet implemented)
git-svn-id: branches/z80@44991 -
2020-04-22 02:56:51 +00:00
nickysn
86643f8a34 * synchronized with trunk
git-svn-id: branches/z80@44981 -
2020-04-21 23:36:44 +00:00
svenbarth
2b59000d56 + implement compiler support for SEH on Win64
Note: due to the way we access variables in a nested function (which in this case includes exception filters) we can not extract the finally handlers and call them (like we do on i386 and x86_64, but instead we duplicate the finally code)

git-svn-id: trunk@44941 -
2020-04-21 06:06:05 +00:00
nickysn
d3e946b779 * fixed Z80 stack and temp allocation, so it doesn't have any wasted bytes
git-svn-id: branches/z80@44906 -
2020-04-21 02:51:44 +00:00
nickysn
861ae0b139 + some rtl include files added
git-svn-id: branches/z80@44904 -
2020-04-21 02:11:52 +00:00
nickysn
aeafe0db40 + added math.inc and set.inc for Z80, empty for now
git-svn-id: branches/z80@44903 -
2020-04-21 02:05:10 +00:00
nickysn
2f68090dd6 * synchronized with trunk
git-svn-id: branches/z80@44898 -
2020-04-20 22:42:08 +00:00
florian
b4ff93c9fe + forgotten files added
git-svn-id: trunk@44889 -
2020-04-20 20:08:19 +00:00
nickysn
f8d69601f2 + added makefiles for ihx2tzx
git-svn-id: branches/z80@44857 -
2020-04-19 15:58:29 +00:00
nickysn
21dd92df23 + added Makefile for the ZX Spectrum rtl
git-svn-id: branches/z80@44852 -
2020-04-19 14:45:14 +00:00
nickysn
3deeff689a + added a ZX Spectrum target to the compiler
git-svn-id: branches/z80@44815 -
2020-04-19 01:09:03 +00:00
nickysn
8c87ef2a32 + added makefile.fpc for the ZX Spectrum RTL
git-svn-id: branches/z80@44814 -
2020-04-19 00:48:12 +00:00
nickysn
4f1174cc6e + added a very minimal and incomplete ZX Spectrum RTL
git-svn-id: branches/z80@44813 -
2020-04-19 00:24:22 +00:00
nickysn
c4950d1723 * synchronized with trunk
git-svn-id: branches/z80@44754 -
2020-04-17 22:48:14 +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
svenbarth
de35356a4d * when checking for an existing operator overload for the assignment operator, check for the correct variant (explicit or not) matching the overload
+ added tests

git-svn-id: trunk@44746 -
2020-04-17 14:44:14 +00:00
nickysn
c3ca85e349 * synchronized with trunk
git-svn-id: branches/z80@44721 -
2020-04-13 21:10:10 +00:00
florian
2276caae24 + common assembler optimizer base class for arm and aarch64
git-svn-id: trunk@44720 -
2020-04-13 21:01:01 +00:00
florian
cd35cdad25 * fix Min/MaxSingle/Double values, resolves
git-svn-id: trunk@44714 -
2020-04-13 08:48:32 +00:00
nickysn
a8e047fcbb * synchronized with trunk
git-svn-id: branches/z80@44649 -
2020-04-08 22:36:55 +00:00
Károly Balogh
d6a4347fae amiunits: rotating cube example program, tuned for low-end systems
git-svn-id: trunk@44641 -
2020-04-08 07:55:01 +00:00
nickysn
9573e373f2 * synchronize with trunk
git-svn-id: branches/z80@44637 -
2020-04-07 22:19:18 +00:00
florian
1dd914ffc8 + initial xtensa-linux rtl
git-svn-id: trunk@44636 -
2020-04-07 21:01:07 +00:00
nickysn
b2549b63cd * implemented pop_parasize for the Z80 and declared stdcall to be a clearstack pocall on this arch
git-svn-id: branches/z80@44629 -
2020-04-07 00:07:34 +00:00
nickysn
692ec2fcba * synchronized with trunk
git-svn-id: branches/z80@44623 -
2020-04-06 22:14:42 +00:00
florian
460369405e + xtensa-linux: OS specific system unit header files
git-svn-id: trunk@44612 -
2020-04-05 21:12:13 +00:00
nickysn
052bc6c5e8 * synchronized with trunk
git-svn-id: branches/z80@44609 -
2020-04-05 20:52:53 +00:00
florian
2f5d51436e + with the randseed set as in the test, the test fails on x86_64-linux, added so it won't be forgotten
git-svn-id: trunk@44599 -
2020-04-05 16:26:11 +00:00
florian
0f06a7205b * do not create full copies of objects when object checking is on, resolves
git-svn-id: trunk@44598 -
2020-04-05 16:26:10 +00:00
nickysn
ac1d4ad499 + added unit zxbasic, containing ZX Spectrum constants for the ZX BASIC keywords
* use these constants to construct the BASIC program loader (so it's now less cryptic what we're writing there)

git-svn-id: branches/z80@44590 -
2020-04-05 14:51:08 +00:00
nickysn
175cbf672f + initial implementation of an .IHX (Intel hex format) to .TZX (ZX Spectrum tape file format) file conversion tool
git-svn-id: branches/z80@44588 -
2020-04-05 04:23:46 +00:00
nickysn
87eae35e2f * synchronize with trunk
git-svn-id: branches/z80@44584 -
2020-04-04 22:54:29 +00:00
Károly Balogh
8d690546f3 m68k-amiga: make all legacy support functions have a public name, and supply headers for them (will be utilized by athreads, dos, and sysutils units)
git-svn-id: trunk@44564 -
2020-04-04 13:21:54 +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
nickysn
565cc0e96b + created a parseable Z80 instruction description file, very loosely based on x86ins.dat. Parser not
implemented yet, but will be soon.

git-svn-id: branches/z80@44554 -
2020-04-04 00:21:50 +00:00
florian
a6cfaa996a * few cleanups towards building the z80-embedded system unit
git-svn-id: branches/z80@44550 -
2020-04-03 20:37:27 +00:00
nickysn
50e5b07568 * synchronize with trunk
git-svn-id: branches/z80@44503 -
2020-04-01 22:43:55 +00:00
michael
a24a4b9745 * Patch from Bart Broersma to fix bug ID - test program
git-svn-id: trunk@44478 -
2020-04-01 07:06:01 +00:00
nickysn
377f52ee69 + started work on the sdcc-sdasz80 asm backend
git-svn-id: branches/z80@44445 -
2020-03-30 23:31:04 +00:00
nickysn
6e346f1c79 * synchronize with trunk
git-svn-id: branches/z80@44444 -
2020-03-30 22:36:17 +00:00
michael
13986a1f8f * Added ability to use UTF16, expanded patch from Anton Kavalenka
git-svn-id: trunk@44435 -
2020-03-30 19:36:04 +00:00
nickysn
a340a39ae3 * synchronize with trunk
git-svn-id: branches/z80@44428 -
2020-03-30 03:14:29 +00:00
Károly Balogh
b96109727c m68k-amiga: initial work on some support functions to allow the RTL to be compiled for AmigaOS 1.x
git-svn-id: trunk@44427 -
2020-03-30 03:06:23 +00:00
nickysn
48b4cc34cb * synchronized with trunk
git-svn-id: branches/z80@44414 -
2020-03-29 23:04:40 +00:00
Jonas Maebe
10b15628ab * split i/t_darwin from i/t_bsd, as they don't have that much in common
any more

git-svn-id: trunk@44407 -
2020-03-29 18:27:27 +00:00
florian
391512546e + initial FreeRTOS RTL support, largely based on the Embedded target, limited to Xtensa so far
git-svn-id: trunk@44400 -
2020-03-29 17:13:45 +00:00
nickysn
755fe97c51 * synchronize with trunk
git-svn-id: branches/z80@44397 -
2020-03-29 16:24:32 +00:00
florian
639f1c476f + Xtensa: tcpuinlinenode.second_abs_long
git-svn-id: trunk@44364 -
2020-03-25 21:17:05 +00:00
florian
e34a759659 + Xtensa: mathu.inc using only the softfloat unit provided mechanisms
git-svn-id: trunk@44347 -
2020-03-23 20:54:55 +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
729425447f + Xtensa: basic operations for Xtensa implemented
git-svn-id: trunk@44324 -
2020-03-21 12:49:46 +00:00
florian
73c68236b6 * Xtensa: completed compiler skeleton
git-svn-id: trunk@44323 -
2020-03-21 12:49:45 +00:00
florian
28c0a47a95 + Xtensa: completed rtl skeleton
git-svn-id: trunk@44322 -
2020-03-21 12:49:43 +00:00
florian
83a6efd759 + Xtensa: RTL skeleton
git-svn-id: trunk@44320 -
2020-03-20 22:35:43 +00:00
florian
9e40d536cb + Xtensa: initial skeleton completed
+ xtensa-embedded support in the compiler

git-svn-id: trunk@44318 -
2020-03-20 22:34:33 +00:00
florian
27349661e0 + Xtensa: lazarus project
git-svn-id: trunk@44317 -
2020-03-20 22:34:30 +00:00
florian
08c12ca439 + Xtensa: register information
git-svn-id: trunk@44316 -
2020-03-20 22:34:29 +00:00
michael
abda57b3b9 * SAX example
git-svn-id: trunk@44293 -
2020-03-13 08:05:42 +00:00
marco
7b4ef925f0 * attempt at crt1 translation to get freebsd 12 running.
git-svn-id: trunk@44289 -
2020-03-08 16:37:30 +00:00
florian
bc3131688a * fix precedence of IS operator, resolves
git-svn-id: trunk@44266 -
2020-03-06 10:10:58 +00:00
svenbarth
97c8464b11 * fix for Mantis : when copying a record using its copy operator we assume that we've copied the whole record; this way managed records inside non-managed records are handled correctly
+ added (adjusted) test

git-svn-id: trunk@44257 -
2020-03-02 22:04:45 +00:00
svenbarth
8003f675c5 + add test for already fixed Mantis
git-svn-id: trunk@44249 -
2020-02-28 16:29:14 +00:00
florian
4dff373fef * (modified) patch by J. Gareth Moreton: processor-aware MOVZX optimisation cleanup, resolves
git-svn-id: trunk@44233 -
2020-02-22 18:37:38 +00:00
florian
c146aecc01 * throw an error if the forward interface type and the actual interface type do not match, resolves
git-svn-id: trunk@44230 -
2020-02-21 20:35:27 +00:00
svenbarth
2ad3c6dd97 * fix global generic functions with constraints in mode Delphi by handling implementations with defines outside of parse_generic_parameters
+ added tests

git-svn-id: trunk@44189 -
2020-02-16 09:53:37 +00:00
florian
b7afb2431c * do not allow constraints in headers of procedure implementations in delphi mode, resolves
* better error message if a constraint is found at a wrong location

git-svn-id: trunk@44174 -
2020-02-14 20:56:55 +00:00
svenbarth
c4f3f7f453 * only resolve a dummy symbol if it is a type symbol (thus truly a dummy symbol)
+ added tests

git-svn-id: trunk@44172 -
2020-02-14 16:49:07 +00:00
svenbarth
147559349b * fix for Mantis : gracefully handle the error if one tries to implement a method of a type from another unit
+ added test

git-svn-id: trunk@44170 -
2020-02-14 16:48:58 +00:00
florian
1e64133a08 * fix TVector.Reserve after IncreaseCapacity changes, resolves
git-svn-id: trunk@44167 -
2020-02-13 21:29:23 +00:00
yury
39c48f0d01 * Fixed r43577 for cases when the size of the new result of a simplified node after typecheckpass is smaller than the size of the original node's result. This caused internal errors or invalid assembly in some cases. Issue .
git-svn-id: trunk@44151 -
2020-02-11 12:49:12 +00:00
florian
297d6e2c60 * patch by Christo Crause: more avr1 controllers and remove attiny28 from avr25 makefile list, resolves
git-svn-id: trunk@44136 -
2020-02-09 10:51:14 +00:00
florian
04ad607bb4 * patch by Christo Crause: more AVR controllers, resolves
git-svn-id: trunk@44130 -
2020-02-08 20:43:22 +00:00
florian
5040e31f11 * patch by Christo Crause: add missing atmega-PB controllers, resolves
git-svn-id: trunk@44128 -
2020-02-07 19:48:46 +00:00
florian
2d47013cd1 * patch by J. Gareth Moreton: fixes internal error 200405231 with inline, resolves
git-svn-id: trunk@44119 -
2020-02-05 20:35:03 +00:00
florian
de213ba258 - test removed as it cannot work on all variants of currency support
git-svn-id: trunk@44107 -
2020-02-03 20:16:33 +00:00
florian
2b7447c78d * EPoll_Event is packed only on x86-64, not other 64 Bit CPUs, resolves
* epoll_pwait expects the SigSet size as sixth parameter (kernel syscall only)
  + simple epoll* test

git-svn-id: trunk@44093 -
2020-02-02 14:23:51 +00:00
florian
d479069f8c * might_have_sideeffects takes care of absolute
git-svn-id: trunk@44083 -
2020-02-01 18:00:38 +00:00
svenbarth
1407aa2b4b * fix for Mantis : it's an error if a POINT after an array is not followed by an identifier
+ added tests

git-svn-id: trunk@44082 -
2020-02-01 17:51:46 +00:00
florian
00214406bc + patch by Christo Crause: Support for attiny10x controllers, resolves
git-svn-id: trunk@44081 -
2020-02-01 15:54:57 +00:00
florian
9d91d680fb * patch by Christo Crause: support for megaAVR 0 and tinyAVR 0/1, , part 3/3
git-svn-id: trunk@44038 -
2020-01-26 14:35:32 +00:00
florian
7892e3f7b7 * patch by Christo Crause: support for megaAVR 0 and tinyAVR 0/1, , part 2/3
git-svn-id: trunk@44037 -
2020-01-26 14:35:29 +00:00
florian
6c71fd461d * avoid internalerror for dec/inc(...,v) with v>high(int64), resolves
git-svn-id: trunk@44031 -
2020-01-24 21:39:07 +00:00
florian
d87a5cc9fb * take care of m_duplicate_names when checking for duplicate locals, resolves
git-svn-id: trunk@44028 -
2020-01-23 21:32:09 +00:00
florian
7b4292c94e * patch by Robert Roland to support the RaspberryPi 2 as a bare metal embedded target, resolves
git-svn-id: trunk@44027 -
2020-01-23 21:14:49 +00:00
svenbarth
4fc02d3d09 * enable tail recursion optimization also for const and constref open arrays
+ added test

git-svn-id: trunk@44011 -
2020-01-21 21:29:56 +00:00
florian
01302bc47d * subroutines working with an OS dependend time stamp use an int64 now, so the 2038 problem
on unixes can be tackled

git-svn-id: trunk@44010 -
2020-01-21 20:59:20 +00:00
florian
069e040e49 * do for-loop unrolling after for-loop simplification, resolves
git-svn-id: trunk@43999 -
2020-01-19 18:21:12 +00:00
michael
d6894f2814 * Add calendar example
git-svn-id: trunk@43991 -
2020-01-19 16:34:03 +00:00
michael
6984cf8606 * Fix bug , amended patch by Pascal Riekenberg
git-svn-id: trunk@43973 -
2020-01-18 16:40:57 +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
Jeppe Johansen
2678522db5 - RISC-V: Add controller types for common RV32 MCUs.
- Adds initial controller units for these MCUs.

Code contributed by Michael Ring

git-svn-id: trunk@43935 -
2020-01-13 22:54:26 +00:00
Jeppe Johansen
02c3f328a2 - RISC-V: Share optimizations between 32 and 64-bit.
git-svn-id: trunk@43934 -
2020-01-13 22:49:23 +00:00
florian
1ceb5ea343 + lazarus project
git-svn-id: trunk@43916 -
2020-01-11 22:45:32 +00:00
florian
007df5d0fa * fix for
git-svn-id: trunk@43913 -
2020-01-11 21:15:19 +00:00
svenbarth
7a0a1d9f36 * fix for Mantis : provide an overall exception handler for the library startup code in case of unhandled exceptions (the loading of the library is considered failed in that case) when SEH is active
+ added test

git-svn-id: trunk@43901 -
2020-01-10 15:39:20 +00:00
Jonas Maebe
31ef82b9c6 * constrained sitofp is not yet supported in LLVM for all targets
git-svn-id: trunk@43885 -
2020-01-07 20:22:17 +00:00
florian
404c6e0c15 + forgotten file
git-svn-id: trunk@43879 -
2020-01-06 20:59:25 +00:00
florian
6612bb4434 * proper naming
git-svn-id: trunk@43871 -
2020-01-06 14:58:06 +00:00
florian
6371d5f26d + infrastructure to profile different stages of the compiler
git-svn-id: trunk@43869 -
2020-01-06 14:46:32 +00:00
florian
d425a85f8d + Linux.fpstatx, resolves
git-svn-id: trunk@43837 -
2020-01-02 14:10:31 +00:00
florian
f6c16323fa * unified loadnf_load_self_pointer into loadnf_load_addr
+ var parameters are now allowed when doing tail recursion optimziation, resolves 

git-svn-id: trunk@43824 -
2019-12-30 22:43:10 +00:00
svenbarth
3e7dc25667 * fix for Mantis : correctly handle the function result alias variable inside generic functions
+ added tests

git-svn-id: trunk@43823 -
2019-12-30 21:35:26 +00:00
marcus
9b67c65749 AROS, OS4, MorphOS: Console, ConUnit added, Crt first Version
git-svn-id: trunk@43815 -
2019-12-30 14:32:32 +00:00
florian
00859420ab * correctly handle reading of class/object pointers in combination with @, resolves
git-svn-id: trunk@43804 -
2019-12-28 17:59:23 +00:00
florian
7032c80041 * accept as eof in iso mode, resolves
git-svn-id: trunk@43801 -
2019-12-28 10:35:46 +00:00
florian
94d222ba69 + test for , meanwhile fixed
git-svn-id: trunk@43797 -
2019-12-26 21:10:34 +00:00
florian
fd0012deff * when copying goto nodes take care if the label node is part of the copied tree
or not, resolves 

git-svn-id: trunk@43793 -
2019-12-25 17:10:14 +00:00
florian
4de6b3e6b9 * do not crash when an unsupported code page is encountered, resolves
git-svn-id: trunk@43764 -
2019-12-23 21:44:50 +00:00
florian
2f374a37b7 * patch by Bart Broersma to allow to declare "LongInt = AnsiString" comparison
operator in non-macpas modes, resolves 

git-svn-id: trunk@43709 -
2019-12-22 22:06:26 +00:00
svenbarth
8111e92e1f * rework syntax for cblocks: now a cblock directive is required
* additionally implicit calling conventions of cdecl or mwpascal now work as well
* adjusted tests
+ added tests

Note: the generator for packages/univint needs to be fixed, until then building on macOS will be broken

git-svn-id: trunk@43684 -
2019-12-14 16:45:38 +00:00
florian
f62fd437b1 * patch by J. Gareth Moreton: improve test and benchmark, resolves
git-svn-id: trunk@43671 -
2019-12-10 21:31:42 +00:00
florian
ef7e4f6f62 * fix J. Gareth Moreton to resolve
git-svn-id: trunk@43670 -
2019-12-09 22:00:45 +00:00
florian
ac6e4f59c6 * better error recovery, resolves
git-svn-id: trunk@43653 -
2019-12-05 20:46:50 +00:00
michael
b82eaf4ce2 * Fix bug : AV when killing daemon app
git-svn-id: trunk@43645 -
2019-12-05 14:54:15 +00:00
michael
db895fcebe * Fix bug , use buffer when reading csv
git-svn-id: trunk@43641 -
2019-12-05 10:43:02 +00:00
svenbarth
927c91e093 * fix for Mantis : correctly handle generic constraints when looking for helpers
git-svn-id: trunk@43629 -
2019-12-02 22:29:34 +00:00
florian
86d8e79e86 * fix some currency issues, resolves and
git-svn-id: trunk@43620 -
2019-12-01 20:24:00 +00:00
florian
f2a8b8ad6a * adapt register if the size of the paraloc and the register differ, resolves
git-svn-id: trunk@43617 -
2019-11-30 20:37:55 +00:00
florian
d8f1aacd78 * better error recovery, resolves
git-svn-id: trunk@43612 -
2019-11-29 22:13:17 +00:00
Jonas Maebe
5800ac6213 * fix conversion from Objective-C class/protocol to tvarrec (store in
vPointer) (mantis )

git-svn-id: trunk@43594 -
2019-11-26 21:24:56 +00:00
florian
fb4b1cbf35 * warn only in delphi mode if an explicit enumeration value exceeds the range, relaxes r43191
git-svn-id: trunk@43590 -
2019-11-25 20:58:20 +00:00
svenbarth
ef6c9e930b * correctly handle the genericdef being a procdef, otherwise no code will be generated (and no error either :/ )
+ added test

git-svn-id: trunk@43586 -
2019-11-25 20:28:23 +00:00
michael
bcee247240 * Simple, read-only example, no authentication
git-svn-id: trunk@43584 -
2019-11-25 14:14:19 +00:00
svenbarth
39f4b97ea5 + add test for a problem reported by Michael van Canneyt which is fixed by the previous revision
git-svn-id: trunk@43569 -
2019-11-24 00:04:35 +00:00
pierre
bfb4b885ca Add riscv32 mathu inculde file, redirecting to ../riscv64/mathu.inc file (this file seems to have no 64-bit specific code)
git-svn-id: trunk@43530 -
2019-11-21 10:52:27 +00:00
pierre
0e0407ad57 Add si_XXX.inc files, pointing to riscv64 counterparts
git-svn-id: trunk@43526 -
2019-11-20 22:51:03 +00:00
florian
3de38c4894 * naming of tests fixed
git-svn-id: trunk@43502 -
2019-11-16 17:18:04 +00:00
florian
60b3296594 * relax conditions in tcallnode.optimize_funcret_assignment, resolves
git-svn-id: trunk@43501 -
2019-11-16 17:16:16 +00:00
Jonas Maebe
4fd670c6ec * fixed missing masking of values after shifting them during inline
evaluation
   o also only mask values when performing a constant evaluation of
     "0 shl/shr x" during inline evaluation (just like when evaluating other
     shl/shr operations)

git-svn-id: trunk@43497 -
2019-11-16 14:27:47 +00:00
michael
3b85cc4040 * Fix bug ID , newer version compaible with 1.3.14
git-svn-id: trunk@43477 -
2019-11-15 14:40:48 +00:00
florian
e1433adc2e * check in the internal assembler for references with incorrect use of RIP
+ test

git-svn-id: trunk@43461 -
2019-11-13 20:47:42 +00:00
florian
9d0389aa53 + readded accidently deleted file
git-svn-id: trunk@43448 -
2019-11-10 21:22:33 +00:00
florian
7747c5fc27 -- Zusammenführen von r43307 bis r43443 in ».«:
D    tests/webtbs/tw32219.pp
U    compiler/i386/i386att.inc
U    compiler/i386/i386atts.inc
U    compiler/i386/i386int.inc
U    compiler/i386/i386nop.inc
U    compiler/i386/i386op.inc
U    compiler/i386/i386prop.inc
U    compiler/i386/i386tab.inc
U    compiler/i8086/i8086att.inc
U    compiler/i8086/i8086atts.inc
U    compiler/i8086/i8086int.inc
U    compiler/i8086/i8086nop.inc
U    compiler/i8086/i8086op.inc
U    compiler/i8086/i8086prop.inc
U    compiler/i8086/i8086tab.inc
U    compiler/x86/x86ins.dat
U    compiler/x86_64/x8664ats.inc
U    compiler/x86_64/x8664att.inc
U    compiler/x86_64/x8664int.inc
U    compiler/x86_64/x8664nop.inc
U    compiler/x86_64/x8664op.inc
U    compiler/x86_64/x8664pro.inc
U    compiler/x86_64/x8664tab.inc
U    tests/utils/avx/avxopcodes.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r43443 in ».«:
 U   .

git-svn-id: trunk@43444 -
2019-11-10 16:44:34 +00:00
Jonas Maebe
af97c43bdc + tests for r43436
git-svn-id: trunk@43438 -
2019-11-10 13:13:57 +00:00
michael
8b89a5cc51 * Remove testsuite again
git-svn-id: trunk@43431 -
2019-11-09 18:56:14 +00:00
michael
1c3b41eb54 * Testsuite in punit format
git-svn-id: trunk@43425 -
2019-11-09 13:39:14 +00:00
svenbarth
b0ac0ddcc9 + add support for the IsManagedType() intrinsics which reports for a type (or variable) whether it needs initialization/finalization
+ added tests

git-svn-id: trunk@43409 -
2019-11-06 23:04:52 +00:00
tg74
1454e8b29d new avx512-opcodes VBMI2,VNNI,BITALG ...
git-svn-id: branches/tg74/avx512merge@43406 -
2019-11-06 19:51:01 +00:00
florian
fabe4cc067 * patch by Christo Crause: reg. allocation information if non-volatile registers
are used for parameter passing as it is might happen on avr, resolves 

git-svn-id: trunk@43390 -
2019-11-04 20:14:46 +00:00
florian
d3c5bd2a3e * test for tw36212
git-svn-id: trunk@43385 -
2019-11-03 17:33:26 +00:00
florian
c6659d62f8 * do not join register deallocations/allocations as it makes no use and causes later on trouble in
the assembler optimizer as register allocations are not correct, resolves 

git-svn-id: trunk@43384 -
2019-11-03 17:13:59 +00:00
florian
b8f186dab2 * reverted r43366
git-svn-id: trunk@43382 -
2019-11-03 14:42:02 +00:00
florian
5ead23513d * more overloads for Math.Min/Max, resolves
git-svn-id: trunk@43366 -
2019-11-02 16:21:43 +00:00
svenbarth
fdeaacac21 * fix for Mantis : when parsing a helper type its extendeddef might be Nil
+ added test

git-svn-id: trunk@43346 -
2019-11-01 15:02:31 +00:00
florian
cb67577002 * fix length(<dyn. type>)=0 optimization, resolves
git-svn-id: trunk@43343 -
2019-10-31 21:29:41 +00:00
michael
71b6573e41 * HTML/JS Resource support
git-svn-id: trunk@43317 -
2019-10-27 13:08:44 +00:00
florian
fa9c7a92c7 -- Zusammenführen von r42725 bis r43306 in ».«:
A    tests/webtbs/tw32219.pp
U    tests/utils/avx/avxopcodes.pas
U    tests/utils/avx/asmtestgenerator.pas
U    compiler/i386/i386tab.inc
U    compiler/i386/i386nop.inc
U    compiler/i8086/i8086tab.inc
U    compiler/i8086/i8086nop.inc
U    compiler/x86_64/x8664tab.inc
U    compiler/x86_64/x8664nop.inc
U    compiler/x86/aasmcpu.pas
U    compiler/x86/x86ins.dat
U    compiler/x86/rax86.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42706 bis r43306 in ».«:
 U   .

git-svn-id: trunk@43307 -
2019-10-23 18:17:50 +00:00
florian
99d44ce40e + test for the initial bug
git-svn-id: branches/tg74/avx512merge@43301 -
2019-10-21 20:14:46 +00:00
svenbarth
9dcd897ce6 * fix for Mantis : free a property's attributes when the property is destroyed
+ added test

git-svn-id: trunk@43299 -
2019-10-21 19:42:19 +00:00
florian
d3c898a96b * properly round in ISO mode, resolves
git-svn-id: trunk@43281 -
2019-10-20 21:11:40 +00:00
florian
626ef4ae0c * give an error if an explicit enumeration valid exceeds the valid range, resolves
git-svn-id: trunk@43191 -
2019-10-13 15:48:21 +00:00
florian
6457846435 * sorted out tests
git-svn-id: trunk@43189 -
2019-10-13 11:42:33 +00:00
florian
b02470468b * handle off by one in FilePos due to the filled buffer in iso mode, resolves
git-svn-id: trunk@43188 -
2019-10-13 11:37:37 +00:00
Jonas Maebe
33c4a5dda7 * don't try to bitpack arrays of non-ordinals (mantis )
git-svn-id: trunk@43187 -
2019-10-13 11:11:28 +00:00
Jonas Maebe
51c6ebfe54 * work around broken x86 shifting in bitpacked value calculation
(mantis )

git-svn-id: trunk@43186 -
2019-10-13 10:47:31 +00:00
florian
245b58c249 + support for arm attributes
* abi notes fixed

git-svn-id: trunk@43157 -
2019-10-09 17:45:40 +00:00
marco
bacc9f6489 * initial version system.uitypes.
git-svn-id: trunk@43144 -
2019-10-06 17:23:38 +00:00
michael
01b946706b * Fix bug ID : added several firebird constructs
git-svn-id: trunk@43139 -
2019-10-06 11:20:20 +00:00
svenbarth
beb606be13 * fix for Mantis : when converting a static class field to a global variable the varspez of the field needs to be respected
+ added test

git-svn-id: trunk@43116 -
2019-10-03 16:39:40 +00:00
svenbarth
b4e998b3f8 + add tests to check for correct definition of the FPC_* mode defines
git-svn-id: trunk@43115 -
2019-10-03 12:34:42 +00:00
marco
ed7ea98eb4 * lowercase filenames for easier crossplatform use.
git-svn-id: trunk@43085 -
2019-09-28 14:31:25 +00:00
florian
7837356954 + extra test to test remap functionality with -gh
git-svn-id: trunk@43082 -
2019-09-26 20:33:12 +00:00
michael
80663ce324 * Add (cust)microhttpapp, high-concurrency standalone server
git-svn-id: trunk@43063 -
2019-09-25 14:06:28 +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
michael
df6c01be27 * Lazarus project file for json test
git-svn-id: trunk@43041 -
2019-09-19 17:14:49 +00:00
michael
8d4a46a5bd command-line version of test progam
git-svn-id: trunk@43040 -
2019-09-19 17:11:55 +00:00
michael
671e3ddec7 * Demo for macro support
git-svn-id: trunk@43002 -
2019-09-15 10:14:01 +00:00
Jonas Maebe
ef6dde6de3 * fixed loading the address of a copied labelnode in a loadnode
(mantis )

git-svn-id: trunk@42987 -
2019-09-13 19:06:40 +00:00
michael
da47ba14c1 * Add fpwebproxy
git-svn-id: trunk@42984 -
2019-09-13 16:28:48 +00:00
michael
ff0887b9b3 * Additional tests for sqlite3dataset by Luis Americo (bug ID 323247)
git-svn-id: trunk@42945 -
2019-09-08 10:31:05 +00:00
michael
8cfee11345 * Initial version of System.NetEncoding.pp
git-svn-id: trunk@42937 -
2019-09-07 19:20:04 +00:00
florian
8ffb72ddd0 * another missing part of r42916 ...
git-svn-id: trunk@42919 -
2019-09-04 16:36:54 +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
michael
bf938bd538 * Add TTestBufferedFileStream
git-svn-id: trunk@42897 -
2019-09-02 07:21:20 +00:00
florian
9c00a8b616 + FMA support for aaarch64
git-svn-id: trunk@42885 -
2019-08-31 19:37:17 +00:00
florian
fd20dc1086 * support unique copies of currencies which are handles by torddef, resolves
git-svn-id: trunk@42837 -
2019-08-26 19:31:48 +00:00
michael
a3a5c01010 * Moved fpmimetypes unit to fcl-web
git-svn-id: trunk@42825 -
2019-08-26 08:30:06 +00:00
michael
071aaccb49 * Add mime.types for benefit of windows users, call new LoadKnownTypes
git-svn-id: trunk@42821 -
2019-08-26 06:44:10 +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 )

git-svn-id: trunk@42816 -
2019-08-25 15:23:53 +00:00
marco
5416e3657f * inprocess comserver example. Polished up test From Anton K. from mantis
git-svn-id: trunk@42812 -
2019-08-25 09:33:02 +00:00
svenbarth
b0b2218cca * fix for Mantis : ensure that the "specialize" token is only really used in non-Delphi modes
git-svn-id: trunk@42776 -
2019-08-23 14:59:20 +00:00
svenbarth
33f6adfab6 * fix for Mantis : free created attributes once the type is freed
+ added test

git-svn-id: trunk@42773 -
2019-08-23 14:59:13 +00:00
pierre
e45ad64d41 * Revert changes to tarray15.pp
* Modify treadonlydata.pp to not use dynamic array.
   + Add test treadonlydata2.pp that should fail at compile time.

git-svn-id: trunk@42752 -
2019-08-21 07:23:51 +00:00
pierre
9b0893e6ae Add generated Makefile which was not on svn yet
git-svn-id: trunk@42751 -
2019-08-20 16:07:59 +00:00
pierre
c406d0121e Move test for read-only data to new separate test source treadonlydata.pp
git-svn-id: trunk@42747 -
2019-08-20 14:15:06 +00:00
Jonas Maebe
693e72ade3 * Darwin now uses Mach VM calls for memory allocation instead of mmap/munmap
+ added sysrealloc support for Darwin (Darwin does not have mremap)

git-svn-id: trunk@42729 -
2019-08-18 15:55:07 +00:00
florian
f0213a2c46 + make use of the mremap syscall of linux to re-allocate large memory blocks faster
git-svn-id: trunk@42713 -
2019-08-16 20:47:37 +00:00
svenbarth
0e79bd2c70 + add a test that ensures that the introduction of fullscale array constructors didn't mess with array constructors passed to an open array of Variant
git-svn-id: trunk@42701 -
2019-08-15 14:33:03 +00:00
svenbarth
44bfa98a30 * fix for Mantis : when the element of an array constructer requires an operator for conversion we don't let the caller of compare_defs_ext know that, instead we simply say that some conversion is required and let the typecheck handler deal with the element wise conversion
+ added test

git-svn-id: trunk@42700 -
2019-08-15 14:33:00 +00:00
svenbarth
10af6fe2fb * fix for Mantis : correct alignment also for the class info used to retrieve the unit name
+ added test

git-svn-id: trunk@42697 -
2019-08-15 13:29:19 +00:00
sergei
416c974d3f * x86_64: Fixed code generation for try..finally blocks, so that exit label from inner try..finally stays within scope of procedure's implicit try..finally block if one is present. Mantis .
git-svn-id: trunk@42673 -
2019-08-13 08:29:28 +00:00
florian
5947143d8f * intel asm reader: try to read avx512 extensions only if the instruction supports them
* cleanup

git-svn-id: trunk@42656 -
2019-08-12 10:46:19 +00:00
pierre
008c1436d8 Fix bug report 35937 by simple assembly code change and add test
git-svn-id: trunk@42603 -
2019-08-08 14:10:21 +00:00
Jonas Maebe
6b9f2114f1 * test from mantis , already fixed
git-svn-id: trunk@42575 -
2019-08-03 13:52:46 +00:00
Jonas Maebe
46afcbb362 * an incomplete case statement is not an error in ISO Pascal (mantis )
* give a compile-time error in ISO/Extended Pascal if the compiler can prove
    the case selector value is not handled, and a warning in other modes
    (mantis )
   o trigger the case node simplification at the end of the case node typecheck
     pass, like for other nodes

git-svn-id: trunk@42574 -
2019-08-03 13:47:27 +00:00
Jonas Maebe
ce598c15ec * factored out the conditions under which add nodes need to perform
overflow checks
   o in particular ensure that cpu-specific overrides don't perform overflow
     checks when nf_internal is set

git-svn-id: trunk@42573 -
2019-08-03 12:19:50 +00:00
svenbarth
6952ab5baf * fix for Mantis : don't set the mangledname for the attribute's constructor function; let the compiler do its job instead
git-svn-id: trunk@42560 -
2019-08-02 14:07:17 +00:00
Mattias Gaertner
847ac91d1d pastojs: skip generic type
git-svn-id: trunk@42524 -
2019-07-28 20:17:12 +00:00
Jonas Maebe
3fb7c19482 - removed tests as modern Delphi versions behave differently (mantis )
git-svn-id: trunk@42512 -
2019-07-28 12:03:40 +00:00
Jonas Maebe
789f288771 * fixed distribution of random(int64) based on patch by Pangea
(mantis )

git-svn-id: trunk@42508 -
2019-07-28 11:14:58 +00:00
Jonas Maebe
1da43f67d4 * (non-ancient) Delphi versions that accept explicit ordinal -> floating
point typecasts behave the same as FPC (convert the value) rather than
    as Turbo Pascal (reinterpret the bit pattern) (mantis )

git-svn-id: trunk@42507 -
2019-07-28 11:14:54 +00:00
Jonas Maebe
b9948899e3 * new CocoaInt units based on https://github.com/genericptr/MacOS_10_10
o note that CoreData and QuartzCore are now part of CocoaAll due to
     dependencies

git-svn-id: trunk@42500 -
2019-07-26 17:43:41 +00:00
Jonas Maebe
701f81f2d8 * updated to r441 of the common Mac OS X interfaces:
o fixed declaration of ABSearchComparison for 64 bit targets
   o Update AddressBook Framework related interface files to MacOSX10.13.sdk
     currency
   o minor comment tweaks to ABActions.pas and ABAddressBook.pas
   o added new 10.7.sdk declarations & DEPRECATED/AVAILABLE info to
     ABGlobals.pas and ABTypedefs.pas
   o CarbonCore framework update to MacOSX10.13.sdk
   o AE framework update to MacOSX10.13.sdk
   o updated AudioToolbox framework translation to 10.14 and translated some
     extra units

git-svn-id: trunk@42499 -
2019-07-26 17:36:17 +00:00
Jeppe Johansen
4b93eb64b3 - Split division routines out into an include file.
- Reuse division routines for calculating both division and modulus.
- Add implementations of BsfByte and BsrByte that don't use a lookup table.

git-svn-id: trunk@42494 -
2019-07-25 14:56:18 +00:00
svenbarth
e97a2cb03e * tests with Delphi showed that an attribute class must explicitely declare a parameterless constructor if it should be used, cause TCustomAttribute.Create is private
Note: this also means that TCustomAttribute itself can not be used as an attribute
* adjusted existing tests
+ added test

git-svn-id: trunk@42471 -
2019-07-20 20:03:38 +00:00
svenbarth
c282f21b1b * don't bother finding the correct constructor if the attribute isn't a TCustomAttribute descendant anyway; simply skip the parameters in that case
+ added tests

git-svn-id: trunk@42470 -
2019-07-20 19:46:03 +00:00
svenbarth
6cde8ab4cb * fix for Mantis : parse_paras does not check whether the expressions are really constant, so check that manually
+ added test

git-svn-id: trunk@42469 -
2019-07-20 19:45:59 +00:00
michael
17b6fc07f9 * Write resource strings to file for easy translation
git-svn-id: trunk@42462 -
2019-07-20 11:52:59 +00:00
svenbarth
43b5dbf613 * fix for Mantis : also store local symtable in the PPU if the procdef is generic as we need it to resolve genericdefs to nested types
git-svn-id: trunk@42459 -
2019-07-19 15:55:28 +00:00
svenbarth
176a63b67b * fix for Mantis : free the list of functions added with AddTerminateProc to avoid memory leaks
+ added test

git-svn-id: trunk@42457 -
2019-07-19 15:55:21 +00:00
svenbarth
87458a065c * allow use of multiple, comma separated attributes as Delphi allows that as well
+ added test

git-svn-id: trunk@42409 -
2019-07-12 22:08:14 +00:00
svenbarth
404b465c33 * allow custom attributes for all type declarations that are not a simple alias
+ added tests

git-svn-id: trunk@42405 -
2019-07-12 22:08:00 +00:00
svenbarth
a72553eea2 * disable [...] syntax for procedure directives if modeswitch "prefixed attributes" is enabled; they conflict otherwise and it's not easily resolveable
+ added test

git-svn-id: trunk@42402 -
2019-07-12 22:07:50 +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
71fa4d1fe2 * the RTTI of an attribute not only consists of the creation function, but also of the attribute's type, a pointer to the constructor and a data blob containing the constant parameters
+ added test

git-svn-id: trunk@42390 -
2019-07-12 22:07:05 +00:00
svenbarth
c214648224 + add a test for overloaded attribute constructors
git-svn-id: trunk@42380 -
2019-07-12 22:06:28 +00:00
svenbarth
24c4b90343 * instead of declaring another type with a 'attribute' suffix, *search* for another type with a 'ATTRIBUTE' suffix (Delphi allows declaring both a TFoo and TFooAttribute in the same unit)
+ added test

git-svn-id: trunk@42362 -
2019-07-12 22:05:18 +00:00
svenbarth
869664c6da * rename custom attributes related tests to something more sensible
git-svn-id: trunk@42361 -
2019-07-12 22:05:12 +00:00
svenbarth
b2932393df Reintegration of Custom Attributes branch by Joost van der Sluis with patches reworked by Svetozar Belic [patch 1/3]
Implemented attributes for class types and properties (based on work by Joost van der Sluis). Added TCustomAttribute - a base class for attributes. Added TUnitInfo record to RTTI. It contains the unit name and unit options (for now only a flag which specifies if the unit contains attributes). Added several tests for attributes.

git-svn-id: trunk@42356 -
2019-07-12 22:04:48 +00:00
Jonas Maebe
40082100e1 * fixed range test optimization for signed types and enabled it for them
git-svn-id: trunk@42332 -
2019-07-06 09:57:32 +00:00
svenbarth
433f07c407 * forgot to commit tests in r42329
git-svn-id: trunk@42330 -
2019-07-05 15:30:53 +00:00
svenbarth
d0eddbcbb9 * fix for Mantis : also handle "generic" keyword inside helper types
+ added test

git-svn-id: trunk@42328 -
2019-07-05 14:12:13 +00:00
Jonas Maebe
c425c51963 * simplify and optimize generated LLVM code for case statements
git-svn-id: trunk@42305 -
2019-06-29 12:17:49 +00:00
Jonas Maebe
c038e4c3f2 * relaxation of r42272: again only show warnings rather than errors for
out-of-range constants, because of the comments mentioned in 
    (except for enums, as apparently Delphi does the same)
  * added range check warnings about explicit type casts that throw away
    bits (e.g. byte($fff)), without giving warnings for most common cases
    (like cardinal(-1))
  * fixed masking/sign exting constant array indices (must be based on index
    range type size/signedness rather than on array size/"signedness")

git-svn-id: trunk@42275 -
2019-06-23 14:12:33 +00:00
Jonas Maebe
3a2fe24f49 * report range errors for assigning out-of-range constants to enums in
Delphi mode (mantis )
  * always give an error (rather than only a warning in case range checking
    is disabled) when assigning an out-of-range constant to an ordinal variable
    whose type does not span the entire range that its bits can hold (because
    the result is undefined and FPC's optimisers rely on variables only
    holding values that are valid for the type)

git-svn-id: trunk@42272 -
2019-06-22 17:30:42 +00:00
Jonas Maebe
c262c5dbc9 * synchronised with trunk till r42256
git-svn-id: branches/debug_eh@42257 -
2019-06-20 17:21:34 +00:00
Mattias Gaertner
783505b4d7 fcl-passrc: starting test generics
git-svn-id: trunk@42252 -
2019-06-20 08:47:30 +00:00
svenbarth
89e454aca8 * rework/extend SetToString/StringToSet so that sets with a size > 4 can be converted as well (this is Delphi compatible)
+ added test

git-svn-id: trunk@42240 -
2019-06-16 21:36:25 +00:00
Legolas
7c02f2b531 * Nintendo DS port updated to libnds ver.1.7.3
git-svn-id: trunk@42202 -
2019-06-10 06:39:46 +00:00
Jonas Maebe
faf75095cd * synchronised with trunk till r42189
git-svn-id: branches/debug_eh@42190 -
2019-06-07 18:24:38 +00:00
Jonas Maebe
eab079c7bd * fixed cbool "and" with full boolean evaluation, and cbool "xor"
(mantis )

git-svn-id: trunk@42167 -
2019-06-02 20:04:06 +00:00
olivier
353da84b74 + Added test object files for x86_64-haiku.
git-svn-id: trunk@42145 -
2019-05-31 10:10:05 +00:00
michael
205be75320 * Added simple example for AssignStream
git-svn-id: trunk@42123 -
2019-05-25 15:55:43 +00:00
michael
f515c70a40 * Example to demonstrate exit code forms in TCustomApplication
git-svn-id: trunk@42122 -
2019-05-25 15:52:33 +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
Jonas Maebe
7e51c5e856 * DFA now takes case-completeness into account (mantis )
git-svn-id: trunk@42091 -
2019-05-18 12:01:41 +00:00
nickysn
357d3ca390 - removed cprt0.as from the OpenBSD i386 RTL as well
git-svn-id: trunk@42078 -
2019-05-15 16:13:57 +00:00
nickysn
ef86b3ab29 - delete cprt0.as from the OpenBSD x86_64 startup code, because it's not needed for bootstrapping
git-svn-id: trunk@42077 -
2019-05-15 15:37:51 +00:00
pierre
0961e49919 Add new files required to fix RTL compilation for macos target
git-svn-id: trunk@42061 -
2019-05-14 04:31:36 +00:00
Jonas Maebe
1b6425176b * synchronised with trunk till r42049
git-svn-id: branches/debug_eh@42050 -
2019-05-12 18:44:05 +00:00
Jonas Maebe
ba1b4b1c92 + support for verifying whether a case statements handles all possibilities
(based on patch by Martok)
   o enabled by default in ISO and Extended Pascal: compile-time error if not
     the case in ISO mode, warning and run-time error in Extended Pascal mode
   o warning enabled by default in all other modes for boolean, enumeration and
     subrange integer types with ranges different from the default ones
     (i.e., different from 0..255, -128..127, 0..65536, etc)
   o warnings for all ordinal types can be enabled in all modes with
     -CC

git-svn-id: trunk@42047 -
2019-05-12 14:29:11 +00:00
svenbarth
251c559662 * fix for Mantis : when searching for helpers on types that usually don't support a point operator, don't use automatic dereferentiation
+ added tests

git-svn-id: trunk@42036 -
2019-05-10 20:56:41 +00:00
svenbarth
5a5b47fa24 + add support for MultiHelpers modeswitch by Ryan Joseph for Mantis
+ added tests

git-svn-id: trunk@42026 -
2019-05-10 14:04:45 +00:00
pierre
fae45b2075 Add first linux RTL compliance test file t_linux.h2paschk
git-svn-id: trunk@42016 -
2019-05-06 21:13:42 +00:00
pierre
12647c348e Add script to use h2paschk on t_OS.h2paschk file for rtl tests for system header compliance
git-svn-id: trunk@42015 -
2019-05-06 21:10:12 +00:00
Jonas Maebe
3fa6838815 * basic llvm metadata support
git-svn-id: branches/debug_eh@41978 -
2019-05-02 19:45:26 +00:00
Jonas Maebe
3a1fb45315 * synchronised with trunk till r41976
git-svn-id: branches/debug_eh@41977 -
2019-05-02 19:44:41 +00:00
svenbarth
b7a716cd81 * correct return a pointer to the list so that List^[x] works as it did before 3.2
+ added test

git-svn-id: trunk@41938 -
2019-04-26 08:13: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
nickysn
d9c109a4dd + added h2paschk structure checker files for the DirectDraw and DirectInput
header translations, used by PTCPas.

git-svn-id: trunk@41887 -
2019-04-16 16:45:54 +00:00
Jonas Maebe
a0f850d57f * synchronised with trunk till r41885
git-svn-id: branches/debug_eh@41886 -
2019-04-16 16:20:44 +00:00
nickysn
9b7cbb0e0b + added OpenBSD RTL structure checker description file for use with the h2paschk
tool. Currently only checks the stat and dirent structures, but more will be
  added in the future.

git-svn-id: trunk@41874 -
2019-04-15 14:22:44 +00:00
Jeppe Johansen
53542b7c5e - Port RISC-V64 startup code to native inline routines.
git-svn-id: trunk@41871 -
2019-04-14 23:36:08 +00:00
Jeppe Johansen
2b78a8fd3d - Add support for .option directive in riscv assembler.
- Use addiw when adjusting U32 to S32

git-svn-id: trunk@41870 -
2019-04-14 20:51:29 +00:00
svenbarth
e6add40495 * fix for Mantis : correctly handle symbols that aren't parameter types (e.g. default values)
+ added test

git-svn-id: trunk@41869 -
2019-04-14 20:47:47 +00:00
svenbarth
c147debda1 * ensure that the correct amount of parameters is used for an operator overload (this is essentially important for unary operators that were declared with two arguments)
git-svn-id: trunk@41868 -
2019-04-14 20:47:43 +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
nickysn
47b8bf5924 + added the initial implementation of my C structure checker code generator
tool, named h2paschk. This is currently a separate tool, that requires a
  manually crafted input file with a special syntax (example is included as a
  comment in the source code), that contains descriptions of all the records
  that need to be checked, but it is planned to add support to h2pas to generate
  these files automatically, since this would be very useful.

git-svn-id: trunk@41858 -
2019-04-10 17:06:17 +00:00
svenbarth
18519c9559 * fix for Mantis : rely on tc_arrayconstructor_2_set instead of manually converting an array constructor to a set, this way assignment operator overloads are taken into account as well
Note: there is still a conversion to a set if the types were determined to be incompatible, so that the error is still "set of X is incompatible to Y" instead of "array of Z is incompatible to Y"
+ added tests

git-svn-id: trunk@41844 -
2019-04-05 15:24:39 +00:00
svenbarth
307ff071e6 * allow any untyped parameter to be passed to a untyped constref parameter
+ added test

git-svn-id: trunk@41829 -
2019-04-04 19:31:55 +00:00
michael
1c8a1407f5 * Added unicode sample using unicodestring
git-svn-id: trunk@41814 -
2019-04-01 16:54:53 +00:00
michael
ffea4d3b38 * Unicode test program using UnicodeString
git-svn-id: trunk@41785 -
2019-03-24 08:47:16 +00:00
svenbarth
f7817d25ff * parameter type needs to be Nil for formal parameters (Delphi compatible)
* adjusted test trtti15
+ added test trtti19

git-svn-id: trunk@41770 -
2019-03-22 22:29:20 +00:00
nickysn
b6d2ef12ad - removed OpenBSD loaders that are not needed for bootstrapping with FPC 3.0.4
git-svn-id: trunk@41765 -
2019-03-22 01:08:37 +00:00
nickysn
e4ffeb2266 + added OpenBSD startup units for gprof support
git-svn-id: trunk@41757 -
2019-03-21 12:52:25 +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
bde560dac2 * also accept {$elsif} after {$if(n)def} (mantis )
git-svn-id: trunk@41724 -
2019-03-17 15:20:22 +00:00
Jonas Maebe
d78dbd5d59 + test from mantis (already works)
git-svn-id: trunk@41718 -
2019-03-16 20:01:57 +00:00
Jonas Maebe
ed2ae508d0 * only add hidden parameters for objectdef methods after generating the vmt,
so that they take into account inherited calling conventions (mantis )
   o don't needlessly calculate the paraloc info when generating a JVM mangled
     name

git-svn-id: trunk@41716 -
2019-03-16 19:14:14 +00:00
nickysn
d8f79c7363 * converted the openbsd_ident.as loader to pascal
git-svn-id: trunk@41710 -
2019-03-15 13:35:10 +00:00
nickysn
16abd6aa13 + added loader openbsd_ident.as, containing only the .note.openbsd.ident
section, required by OpenBSD to identify the ELF binary as OpenBSD-native

git-svn-id: trunk@41702 -
2019-03-14 18:06:24 +00:00
nickysn
f1a7e2cdc5 * translated prt0.as from the OpenBSD x86_64 startup code to pascal inline asm; the code compiles, but is not used yet
git-svn-id: trunk@41695 -
2019-03-14 15:37:02 +00:00
nickysn
df21e3a3bc + initial (only a stub for now) implementation of pascal-based startup code units for OpenBSD
git-svn-id: trunk@41692 -
2019-03-13 15:59:36 +00:00
florian
d657373933 * patch by J. Gareth Moreton which avoids that the optimizer causes reads of invalid memory, resolves
git-svn-id: trunk@41667 -
2019-03-10 10:48:50 +00:00
michael
992d945b0a * Expose TDOMWriter and TXMLWriter
git-svn-id: trunk@41662 -
2019-03-09 19:46:46 +00:00
michael
e32d18977c * Small command-line client that shows how to load data from SQLDB Rest Bridge into TBufDataset
git-svn-id: trunk@41657 -
2019-03-09 17:36:30 +00:00
michael
663d004db9 * Add small SQL shell demo program. Allows to dump results in XML file
git-svn-id: trunk@41655 -
2019-03-09 17:34:13 +00:00
michael
a5f257ad20 * Firebird sample DB script, same for sqlite
git-svn-id: trunk@41634 -
2019-03-08 10:38:24 +00:00
michael
0fb747857e * Add ADO packet data streamer
git-svn-id: trunk@41618 -
2019-03-06 08:22:37 +00:00
Jonas Maebe
16cde0da15 * create LLVM TAsmCFI wrapper that calls through to the original TASmCFI for
pure assembler routines and for generating the CFI tables, and does nothing
    for LLVM-handled routines (LLVM takes care of the CFI there)

git-svn-id: branches/debug_eh@41580 -
2019-03-03 17:15:09 +00:00
Jonas Maebe
5d28e2156b + support for generating Dwarf CFI using .cfi_* directives
o adjust peephole optimisers so they don't remove cfi_endproc directives
     in case of tail call optimisation

git-svn-id: branches/debug_eh@41578 -
2019-03-03 17:15:03 +00:00
svenbarth
9a9c6a3ff4 * fix for Mantis : correctly convert Int64/QWord values to OleVariant (Delphi compatible)
+ added test

git-svn-id: trunk@41571 -
2019-03-03 14:50:09 +00:00
michael
805e2bb28d * Patch from Ondrej Pokorny to add transparency
git-svn-id: trunk@41551 -
2019-03-02 12:21:28 +00:00
Jonas Maebe
50c82b6468 * synchronised with trunk till r41537
git-svn-id: branches/debug_eh@41538 -
2019-03-01 16:20:22 +00:00
svenbarth
d7bb4bd411 + add function call manager which implements Invoke() for the i386 register calling convention
git-svn-id: trunk@41536 -
2019-03-01 15:20:59 +00:00
Jonas Maebe
e720a1f306 * moved tcgexceptionstatehandler to a new cgexcept unit
* fixed llvm cycle by overriding additional eh-related tcgprocinfo methods

git-svn-id: branches/debug_eh@41519 -
2019-02-27 21:13:45 +00:00
Jonas Maebe
aba3f8f162 * fixed over-eager rejection of tobjecttype.fieldname expression after r40785
(mantis )

git-svn-id: trunk@41474 -
2019-02-25 21:17:24 +00:00
michael
98a30de010 * Rest module for in IDE
git-svn-id: trunk@41467 -
2019-02-25 19:39:15 +00:00
Jonas Maebe
a079e5fa80 * synchronised with trunk till r41449
git-svn-id: branches/debug_eh@41450 -
2019-02-24 20:01:53 +00:00
michael
f097158802 * Add database creation and README, and copyright header
git-svn-id: trunk@41439 -
2019-02-24 17:20:33 +00:00
michael
e726faca7c * Delphi rest client for REST bridge
git-svn-id: trunk@41437 -
2019-02-24 16:01:26 +00:00
michael
02b5a755f7 * Add SQLDBIni helper
git-svn-id: trunk@41432 -
2019-02-24 15:02:20 +00:00
michael
2845fabd02 * Add SQLDB Rest Bridge
git-svn-id: trunk@41431 -
2019-02-24 15:00:56 +00:00
pierre
c1e93bd2c2 + compiler/symdef.pas: Add missing call to tderef.reset methods in all tdef constructors.
+ compiler/sysmsym.pas: Do the same for for all tsym constructors.
  + compiler/symtype.pas: Generate internalerror in  tcompilerppufile.putderef
    if a deref field has index -1, as this means that buildderef was not called
    while it should have been called.
  + compiler/symtable.pas: Fix bug report itself by adding an extra local variable
    CHANGED to add extra cycles in tstoredsymtable.buildderef_referenced method.

New tests for this bug report: tests/webtbs/tw35139.pp and  tests/webtbs/tw35139a.pp

git-svn-id: trunk@41425 -
2019-02-23 23:03:29 +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
1a559f5c60 * move the homogenous float aggregate determination function to a common
unit for ARM and AArch64

git-svn-id: trunk@41419 -
2019-02-23 15:42:39 +00:00
joost
42204977f8 * Patch from Bart Broersma to fix writing unicode strings in the Windows
registry + test (modified, bug )

git-svn-id: trunk@41415 -
2019-02-22 22:26:21 +00:00
yury
382d5060a0 * aarch64: According to ARM64 ABI, function's arguments and the result are not required to be sign/zero extended to a full register size. Obey this rule for all targets except iOS where sign/zero extension is required.
git-svn-id: trunk@41412 -
2019-02-22 17:59:54 +00:00
florian
9514bd9162 * refactored psabieh handling, most code is now in psabiehpi
git-svn-id: branches/debug_eh@41367 -
2019-02-17 21:20:40 +00:00
michael
f737521590 * Patch from Ondrej Pokorny, to demonstrate alpha blending mode
git-svn-id: trunk@41341 -
2019-02-16 12:43:14 +00:00
Mattias Gaertner
d4512cc714 pastojs: array of const
git-svn-id: trunk@41327 -
2019-02-15 22:38:44 +00:00
joost
cd03f5326d * Fixed bug , proper unicode-handling of registry-keynames. With test
(modified) from Bart Broersma

git-svn-id: trunk@41325 -
2019-02-15 21:25:05 +00:00
florian
6817cea33b + missing unit
git-svn-id: branches/debug_eh@41291 -
2019-02-10 22:37:54 +00:00
svenbarth
b810d8f32b * fix for Mantis : ensure that the synchronize event entry is reset correctly in case of an exception
+ added test

git-svn-id: trunk@41281 -
2019-02-10 15:43:03 +00:00
svenbarth
1502a13e7c * fix for Mantis : when the mainthread executes a queued ThreadMethod make sure that the queue entry is released even if an exception is raised
+ added test

git-svn-id: trunk@41280 -
2019-02-10 15:42:58 +00:00
svenbarth
b1ee29c836 * fix for Mantis : (adjusted) patch by Do-wan Kim to only use the default calling convention for exception handlers
+ added test

git-svn-id: trunk@41277 -
2019-02-10 11:26:46 +00:00
michael
3779d69075 * libmagic headers by Silvio Clecio
git-svn-id: trunk@41271 -
2019-02-09 19:57:11 +00:00
nickysn
8b17af1f89 + added test for unit sortalgs, that tests the heapsort and randomized quicksort algorithms
git-svn-id: trunk@41247 -
2019-02-07 14:41:33 +00:00
nickysn
ec45f0069a + added unit SortAlgs to rtl-extra. It implements extra sorting algorithms
that can be used in place of the default QuickSort implementation from unit
  SortBase. Currently, only HeapSort is implemented, but others will be added
  in the future.

git-svn-id: trunk@41219 -
2019-02-04 14:34:13 +00:00
Jonas Maebe
d93c05a90c * synchronised with trunk till r41207
git-svn-id: branches/debug_eh@41208 -
2019-02-03 21:05:37 +00:00
nickysn
5c4af27a7a + added test for the sortbase unit
git-svn-id: trunk@41195 -
2019-02-03 19:16:48 +00:00
nickysn
2a0eb54fd5 + added a simple test that tests TList.Sort
git-svn-id: trunk@41181 -
2019-02-02 23:56:24 +00:00
nickysn
248fd313f8 + introduced unit SortBase, which implements the foundation for pluggable
sorting algorithms. A default QuickSort implementation is provided by the
  unit. Other units can be added, to provide other sorting algorithms (e.g.
  HeapSort, MergeSort, IntroSort, etc.)
* TList and TFPList updated to use the current default sorting algorithm defined
  in SortBase for their .Sort method.

git-svn-id: trunk@41167 -
2019-02-02 20:06:50 +00:00
Jonas Maebe
0db9ff5c39 * fixed packed bitsize calculation for types with a negative lower bound and
and upper bound just below the next power of two (mantis )

git-svn-id: trunk@41161 -
2019-02-01 17:31:53 +00:00
Jonas Maebe
a0d796e98d * synchronised with trunk till r41159
git-svn-id: branches/debug_eh@41160 -
2019-02-01 17:01:54 +00:00
Károly Balogh
db055c8f0c amicommon: moved MorphOS-specific lineinfo to amicommon, for upcoming AROS and OS4 support
git-svn-id: trunk@41091 -
2019-01-28 05:29:31 +00:00
Jonas Maebe
b3a8543a56 * synchronised with trunk till r40942
git-svn-id: branches/debug_eh@40943 -
2019-01-20 17:37:07 +00:00
florian
e24449bcfd * if sub nodes of a commutative node contain conditionally executed nodes, these sub nodes might not be swapped
as this might result in some nodes not being executed, like temp. create nodes with init. code, see e.g. issue , resolves 

git-svn-id: trunk@40934 -
2019-01-20 12:55:20 +00:00
florian
925531b99c * constrained generics are also compatible with formaldefs, resolves
git-svn-id: trunk@40921 -
2019-01-19 21:23:36 +00:00
michael
57e7384a18 * Initial implementation of GNU TLS support for FPC SSL sockets
git-svn-id: trunk@40858 -
2019-01-14 10:26:22 +00:00
Károly Balogh
a527a40d12 morphos: add a custom lineinfo unit, prepared to parse stabs relocations in ELF relocatable objects, also featuring stronger address validation, and showing offsets in the executable instead of absolute addresses
git-svn-id: trunk@40854 -
2019-01-13 13:16:01 +00:00
florian
644c47e121 * when deciding about the case code generation in case of size optimization, the number of labels is relevant, not the covered range, resolves
git-svn-id: trunk@40851 -
2019-01-13 10:32:00 +00:00
florian
dd072ce76b + seek for typefiles in iso mode, resolves
git-svn-id: trunk@40850 -
2019-01-12 23:29:20 +00:00
Károly Balogh
a6aa3cc092 haiku: removed old i386 specific syscalls assembler code and no-libc startup code, copied from the BeOS port initially, and was never in use on Haiku. kept the libc-version of assembly startup code for now for reference.
git-svn-id: trunk@40831 -
2019-01-10 07:34:52 +00:00
Károly Balogh
9c2b113497 haiku: added cpu specific signal handler register contexts
git-svn-id: trunk@40827 -
2019-01-10 06:44:16 +00:00
Károly Balogh
93ee468fcb haiku: zapped the old bethreads unit. it's apparently just an ancient version of cthreads, and haiku seems to use cthreads itself since day one.
git-svn-id: trunk@40826 -
2019-01-10 04:20:04 +00:00
Károly Balogh
c061f1480a haiku: zapped syscalls support code, using the syscall interface directly on Haiku is discouraged, and it was never really supported with FPC
git-svn-id: trunk@40824 -
2019-01-10 03:53:44 +00:00
michael
efdabcd0cc * Sample program from Silvio Clecio to generate server certificate
git-svn-id: trunk@40815 -
2019-01-09 10:26:55 +00:00
michael
e14c231d60 * Added makefiles for GnuTLS
git-svn-id: trunk@40813 -
2019-01-09 10:19:51 +00:00
michael
2ceb5c9683 * Add X509 functions and example from Silvio Clecio to generate private key
git-svn-id: trunk@40800 -
2019-01-07 19:59:22 +00:00
Károly Balogh
d6891557d3 haiku: add sighnd.inc for x86_64, the i386 version with minimal changes, probably needs to be better adapted for 64bit
git-svn-id: trunk@40793 -
2019-01-07 13:47:46 +00:00
Jonas Maebe
b2b34338e5 * give an error when trying to call an object instance method via a type node
(mantis )

git-svn-id: trunk@40785 -
2019-01-06 15:21:36 +00:00
michael
59cd593331 * Initial version of example
git-svn-id: trunk@40780 -
2019-01-06 11:39:20 +00:00
Jonas Maebe
51b58f342f * synchronised with trunk till r40775
git-svn-id: branches/debug_eh@40776 -
2019-01-05 22:12:28 +00:00
michael
f89431c4f7 * GNU TLS Library import
git-svn-id: trunk@40775 -
2019-01-05 18:21:49 +00:00
Jonas Maebe
91d5457b38 * moved around/replaced the following procedures to stop nflw from depending
on pdecsub (node units should not depend on parser units):
   o maybe_add_public_default_java_constructor()
   o handle_calling_convention()
   o create_finalizer_procdef() (replaced with create_outline_procdef())
   o insert_record_hidden_paras()
   o handle_calling_convention()
   o proc_add_definition()
   o build_parentfpstruct()
   o maybe_guarantee_record_typesym()
   o get_first_proc_str()
  * factored out the creation of a procinfo for a nested procdef based on a
    subnodetree of the current procdef into tprocinfo.create_for_outlining()

git-svn-id: trunk@40773 -
2019-01-05 16:26:33 +00:00
michael
b0c264948e * Rework SSL handling to be pluggable, add HTTPS support to fphttpserver
git-svn-id: trunk@40769 -
2019-01-05 12:37:44 +00:00
Károly Balogh
efba70f82b haiku: pascal sysinit code for haiku, will be needed for x86_64, nice to have for i386
git-svn-id: trunk@40754 -
2019-01-04 02:44:39 +00:00
svenbarth
04bbfd1746 * fix for Mantis : save and (more importantly) restore verbosity when switching a unit
+ added test

git-svn-id: trunk@40750 -
2019-01-03 20:31:34 +00:00
Jonas Maebe
473fef315d * synchronised with trunk till r40732
git-svn-id: branches/debug_eh@40733 -
2019-01-01 16:24:18 +00:00
florian
22365a1f57 + test for which is fixed meanwhile
git-svn-id: trunk@40731 -
2019-01-01 16:16:54 +00:00
Jonas Maebe
11511e13d5 * synchronised with trunk till r40723
git-svn-id: branches/debug_eh@40724 -
2019-01-01 13:22:17 +00:00
florian
1641585655 * updated bcase.pp benchmark by Gareth Moreton, now used also as test
git-svn-id: trunk@40710 -
2018-12-30 22:21:03 +00:00
svenbarth
30b1a45704 + add tests for TMethodImplementation for method and procedure variables
git-svn-id: trunk@40700 -
2018-12-29 19:21:20 +00:00
svenbarth
bef1b84d63 * move utility code to a separate unit
git-svn-id: trunk@40692 -
2018-12-29 19:20:51 +00:00
Jonas Maebe
7b313a2c15 * stop searching for methods to implement interfaces in parent classes after
encountering a method with the correct name that does not have the
    "overload" directive (same logic as when looking for a call candidate,
    to avoid errors when using a Pascal-level wrapper to call interface
    methods, and Delphi-compatible since it always required "overload" for
    overloaded methods)
   o also catches calling convention mismatches like in webtbs/tw27349

git-svn-id: trunk@40683 -
2018-12-28 18:25:58 +00:00
florian
7f5c2fa3aa * (modified) patch by Gareth Moreton: Speed improvement in case blocks, resolves
This patch improves the compiler where "case" statements are concerned, using jump tables more often and creating more efficient machine code in some situations:
  * If a case block only contains one branch (not including the else block), the initial range check is removed, since this becomes wasted effort.
  * If the else block is empty, the else label is set to the end label - though this doesn't decrease the code size, it takes a bit of strain off the peephole optimizer.
  * On -O2 and above, some node analysis is now done on the branch labels. Most of the time this just redirects it to the end
    label for empty blocks, but if the block contains a goto statement, it will redirect it to its destination instead,
    thus increasing performance by not having multiple jumps (this won't get picked up by the peephole optimiser if the label addresses are in a jump table).
  * Some checks now use what I call the 'true count' rather than the 'label count'. The true count includes each
    individual value in a range - for example, 0..2 counts as 3. This increases the chance that a jump table will be
    utilised in situations where it is more efficient than a linear list.
  * For jump tables, if the case block almost covers the entire range (32 entries or fewer from full coverage),
    the initial range check is removed and the gaps included in the jump table (pointing to the else label).

git-svn-id: trunk@40676 -
2018-12-27 18:31:55 +00:00
svenbarth
0f83458513 * previous Invoke() related commit also correctly fixed Mantis
git-svn-id: trunk@40670 -
2018-12-26 22:59:48 +00:00
svenbarth
93e0cd9e1a * fix for Mantis : correctly align stack so that SSE operations work correctly
git-svn-id: trunk@40666 -
2018-12-26 22:59:36 +00:00
svenbarth
e28dff523a * with the change regarding property access lists this test is no longer considered correct
git-svn-id: trunk@40658 -
2018-12-26 11:26:08 +00:00
svenbarth
60adebfe28 * Mantis is fixed by previous change regarding property access list
git-svn-id: trunk@40657 -
2018-12-26 11:26:04 +00:00
svenbarth
539ed761ba * a property access list must only consist of record or object fields; classes are not allowed
git-svn-id: trunk@40656 -
2018-12-26 11:26:01 +00:00
Jonas Maebe
612a5649f0 * synchronised with trunk till r40646
git-svn-id: branches/debug_eh@40647 -
2018-12-25 18:04:12 +00:00
Jonas Maebe
acfa2088ef + test for previous commit
git-svn-id: trunk@40646 -
2018-12-25 17:52:56 +00:00
Jonas Maebe
c7d701d117 * synchronised with trunk till r40038
git-svn-id: branches/debug_eh@40643 -
2018-12-25 15:38:57 +00:00
Jonas Maebe
70cadc7694 * fixed string constant length when going from utf-8 to single-byte code page
(mantis , patch by engkin)

git-svn-id: trunk@40637 -
2018-12-24 22:21:40 +00:00
Jonas Maebe
882d676bc9 * synchronised with trunk till r40635
git-svn-id: branches/debug_eh@40636 -
2018-12-24 22:12:19 +00:00
michael
c0e680e277 * Load extension demo by Silvio Clecio
git-svn-id: trunk@40610 -
2018-12-21 23:09:40 +00:00
michael
51995c5cac * Examples for extension
git-svn-id: trunk@40609 -
2018-12-21 23:08:00 +00:00
michael
f5a1fce16f * Contribution by Silvio Clecio to make writing extensions possible
git-svn-id: trunk@40608 -
2018-12-21 23:06:14 +00:00
Jonas Maebe
b41cd1eb6a * synchronised with trunk till r40575
git-svn-id: branches/debug_eh@40576 -
2018-12-16 20:45:55 +00:00
yury
21c867d3fc * android: Use libc for sockets since the "accept" syscall is blocked by SECCOMP, but the "accept4" alternative is not available on old Android versions (2.3 and older).
git-svn-id: trunk@40532 -
2018-12-12 11:49:38 +00:00
nickysn
da5868b668 + added method TBits.CopyBits for fast copying
git-svn-id: trunk@40524 -
2018-12-11 15:52:09 +00:00
pierre
e7aadde92f Modify tbs/tb0588.pp to check that a warning is issued about non-initialized return value, moved to tbf directory
git-svn-id: trunk@40521 -
2018-12-11 08:47:59 +00:00
Jonas Maebe
52fec8a94a * when optimising subsetreg moves for aarch64, take into account the fact
that the subsetreg itself can be 32 or 64 bit (mantis )

git-svn-id: trunk@40512 -
2018-12-09 14:46:52 +00:00
Jonas Maebe
440026bb25 * synchronised with trunk till r40503
git-svn-id: branches/debug_eh@40504 -
2018-12-08 15:33:36 +00:00
marcus
1bde958889 arosunits, morphunits, os4units: serial, CreateExtIO(), DeleteExtIO() for all amiga systems
git-svn-id: trunk@40497 -
2018-12-07 19:28:12 +00:00
michael
fd609fe19c * Web browser compiler, initial implementation
git-svn-id: trunk@40471 -
2018-12-04 21:42:53 +00:00
Jonas Maebe
9630eb7ce9 * synchronised with trunk till r40466
git-svn-id: branches/debug_eh@40467 -
2018-12-04 19:54:31 +00:00
florian
eeadf618b8 + abi tag for i386
* arm abi tag moved into pascal file

git-svn-id: trunk@40454 -
2018-12-02 22:56:12 +00:00
michael
07f98847ca * Refactored so compiler itself is filesystem agnostic
git-svn-id: trunk@40450 -
2018-12-02 18:41:38 +00:00
Jonas Maebe
60488c3c06 * synchronised with trunk till r40443
git-svn-id: branches/debug_eh@40444 -
2018-12-01 23:08:18 +00:00
michael
aa956d2f70 * Refactor so PCU support is separated out
git-svn-id: trunk@40427 -
2018-12-01 19:03:41 +00:00
Jonas Maebe
b6efcb9105 + tllvmexceptionstatehandler that emits LLVM landingpad instructions to be
referred by invoke instructions in exception catching blocks
   o for now we won't actually use ABI-compliant exception handling, but we
     need invoke/landingpad combinations for LLVM's control flow analyses to
     correctly handle code involving exception handling

git-svn-id: branches/debug_eh@40401 -
2018-11-29 21:30:46 +00:00
Jonas Maebe
cf235a36a1 * synchronised with trunk till r40378
git-svn-id: branches/debug_eh@40379 -
2018-11-27 20:11:49 +00:00
pierre
044fae62ea Fix bug report 34605 and add corresponding test
git-svn-id: trunk@40377 -
2018-11-27 10:19:36 +00:00
Jonas Maebe
bfc7c58a69 * synchronised with trunk till r40348
git-svn-id: branches/debug_eh@40349 -
2018-11-18 12:01:50 +00:00
Jonas Maebe
d1361ca6ed * fixed adjustments of lower/upper bounds in range test optimization in case
of strictly smaller/greater comparisons (mantis )

git-svn-id: trunk@40344 -
2018-11-17 22:38:31 +00:00
svenbarth
251dfb6776 * don't allow constants of the record type that is currently being parsed; this would fail as soon as another field is added after the constant declaration
+ added tests
Note: unlike what bug report 27880 suggests Delphi also does *NOT* allow this (at least a current Delphi Tokyo) and fails with a "type is not completely defined" error, so this test belongs into the "failure" category

git-svn-id: trunk@40285 -
2018-11-11 22:08:29 +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
4682ac269d * Further improvement for r40180:
An uninitialized function Result of a managed type needs special handling.
    When passing it as a var parameter a warning need to be emitted, since a user
    may expect Result to be empty (nil) by default as it happens with local vars
    of a managed type. But this is not true for Result and may lead to serious issues.

    The only exception is SetLength(Result, ?) for a string Result. A user always
    expects undefined contents of the string after calling SetLength(). In such
    case a hint need to be emitted.
+ Tests for this.

git-svn-id: trunk@40216 -
2018-11-04 15:37:52 +00:00
florian
34d11046e0 * wrapcomplexinlinepara takes care of function results which need different temp. handling, resolves
* tw34438 failed with -O3, fixes also dfa for inline functions returning results as "complex" parameter

git-svn-id: trunk@40202 -
2018-11-03 17:31:10 +00:00
Jonas Maebe
b2d1ab7f05 * basic helpers for DWARF/PSABI EH-based exception handling (based on
GCC 4.2.1's libstdc++/libsupc++)
   - compile RTL with -dFPC_USE_PSEABIEH to include
   - the x86-64 compiler currently crashes if it has been compiled with
     optimizations (the eh_return_data_regno function from cpubase
     probably triggers mantis )

git-svn-id: branches/debug_eh@40071 -
2018-10-28 18:16:42 +00:00
Mattias Gaertner
a089496183 pas2js: logger adapted for pas2js
git-svn-id: trunk@40041 -
2018-10-25 19:43:08 +00:00
Mattias Gaertner
703f5ea97e pas2js: started nodepas2js
git-svn-id: trunk@40037 -
2018-10-25 16:09:20 +00:00
Jonas Maebe
9bd931e931 * make "formal const/var" parameters the least preferred conversion
(mantis )
  - removed code to handle conversion to formaldef parameters that are not by
    reference (so the default conversion preference is kept)

git-svn-id: trunk@40012 -
2018-10-21 21:02:17 +00:00
Jonas Maebe
2a3eeab96d * support for constant char/bool/enum indices in typed constant
index expressions (mantis )
  * prevent all indirect structure indexing instead of only
    ansi/wide/unicodestrings

git-svn-id: trunk@40010 -
2018-10-21 18:48:41 +00:00
Jonas Maebe
2c7c0d1144 * handle widechar constants directly in the scanner, instead of in the
overload selection (where you can't even know whether the string is
    a valid widechar constant) (mantis )

git-svn-id: trunk@40009 -
2018-10-21 17:34:00 +00:00
Jonas Maebe
60277dda09 * fix crash when checking load nodes during inlining in case they don't
have a symtable set (happens for internally generated labels, like
    $raiseaddr) (mantis )

git-svn-id: trunk@40008 -
2018-10-21 15:53:46 +00:00
michael
65433a005e * Fix bug , replace now can use escape sequences, and lineending can be set
git-svn-id: trunk@39993 -
2018-10-20 12:09:07 +00:00
pierre
92acd38f40 Fix for bug report
git-svn-id: trunk@39986 -
2018-10-18 20:21:54 +00:00
yury
7b150102bf + Added test object files for x86_64-android.
git-svn-id: trunk@39964 -
2018-10-17 19:39:17 +00:00
yury
7ddf0a635c + Added the auto-generated list syscalls for mips64-android. It will be needed when mips64 is supported.
git-svn-id: trunk@39959 -
2018-10-17 17:16:05 +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 )
   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
florian
eea088c5f5 * allow nil to be assigned to generic types, resolves
* niln is also a constant node

git-svn-id: trunk@39934 -
2018-10-14 07:38:13 +00:00
yury
9d7308df42 * Android: Reworked the startup code to use no assembly instructions. Generic assembler startup files contains only section data and are compiled for each CPU.
* Android: argc and argv are correct for shared libraries.

git-svn-id: trunk@39905 -
2018-10-08 16:48:41 +00:00
yury
da39d06d80 + Added test object files for aarch64-android.
git-svn-id: trunk@39902 -
2018-10-08 08:29:23 +00:00
svenbarth
ea5f407c49 + add a TFunctionCallManager that provides built in Invoke() support for x86_64-win64
git-svn-id: trunk@39894 -
2018-10-07 12:26:03 +00:00
svenbarth
a8b2ad31d1 * fix for Mantis : correctly check whether the array constructor is empty (aka []) or not
git-svn-id: trunk@39882 -
2018-10-07 12:25:24 +00:00
florian
5604e98b1c + lazarus project files for the avx assembler test generators
git-svn-id: trunk@39873 -
2018-10-07 10:10:16 +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
michael
e6574526db * Fix bug
* Backport pas2js changes/bugfixes
* Split extjs dataset from json dataset

git-svn-id: trunk@39841 -
2018-09-30 08:15:18 +00:00
florian
352fb866ef * is_range_test returns false if "lower" bound is greater than "upper" bound
git-svn-id: trunk@39837 -
2018-09-27 20:24:52 +00:00
florian
a34d4e715c Merged riscv_new branch
git-svn-id: trunk@39813 -
2018-09-26 19:49:08 +00:00
svenbarth
bf91991bae * fix for Mantis : allow 2 parameter form of Copy also for ShortString variables
+ added test

git-svn-id: trunk@39802 -
2018-09-25 19:10:06 +00:00
florian
8a99a619f8 + addnode dummy for Z80
git-svn-id: branches/z80@39796 -
2018-09-23 16:45:54 +00:00
svenbarth
9a99ab9dda * fix for Mantis : correctly handle "inherited method" calls if "method" is a generic (no matter if it's mode Delphi or not)
+ added test

git-svn-id: trunk@39787 -
2018-09-21 15:16:18 +00:00
svenbarth
06267006f3 * explicitely handle the boolean types to determine the bit size as all of them have the bit size 1
+ added test

git-svn-id: trunk@39786 -
2018-09-21 13:24:49 +00:00
marco
25369b556d * set EOL properties on data2inc.exm since it is a textfile.
git-svn-id: trunk@39784 -
2018-09-21 08:28:46 +00:00
svenbarth
00663728b5 * fix for Mantis : the parent VMT is an indirect reference due to the changes for dynamic packages for quite some time already, so handle that accordingly
+ added test

git-svn-id: trunk@39715 -
2018-09-08 14:56:09 +00:00
svenbarth
46ef16ac11 * generate an error if the type parameters of a generic routine's definition does not match with its interface or forward declaration
+ added tests

git-svn-id: trunk@39703 -
2018-09-02 16:20:29 +00:00
svenbarth
50323043c1 * generate an error if the type parameters of the record, object or class do not match with its declaration
+ added test

git-svn-id: trunk@39702 -
2018-09-02 16:20:25 +00:00
svenbarth
072699d38a * protect the destructors of tabstractrecordsymtable and twithsymtable against executing when called with a refcount > 1 (this fixes Mantis )
+ added simplified test

git-svn-id: trunk@39693 -
2018-08-31 19:16:45 +00:00
svenbarth
10886d8cef * fix for Mantis : when specializing nested routines of a generic routine we don't need access to their genericdef (which isn't available anyway in other units when loading from PPU) as their definition is completely contained in the token stream
+ added simplified test for the problem

git-svn-id: trunk@39692 -
2018-08-31 16:11:05 +00:00
marco
315fe21718 * deprecations, remove oldlinux.
git-svn-id: trunk@39663 -
2018-08-23 07:57:56 +00:00
marco
9b969c6cca * second part processunicode commit.
git-svn-id: trunk@39627 -
2018-08-18 13:56:21 +00:00
marco
b7e6492119 * Unicode version TProcess in two commits.
* first  misc files & rename process.pp -> processbody.inc

 Next commit will add new process.pp + update of processbody.inc to preserve history.

git-svn-id: trunk@39626 -
2018-08-18 13:55:11 +00:00
florian
a825a66d01 * IntPower inverts the base first for negative exponents and multiplies then, resolves
git-svn-id: trunk@39621 -
2018-08-16 20:45:35 +00:00
michael
677cc1c930 * Type-safe dataset access implementation and code generator
git-svn-id: trunk@39617 -
2018-08-15 10:54:36 +00:00
pierre
76d3893d78 Changes for symbian target OS, adding most of standard units, as empty stubs
git-svn-id: trunk@39578 -
2018-08-06 15:16:55 +00:00
michael
71bbab3512 * Added UseUnicodeWordDetection
git-svn-id: trunk@39564 -
2018-08-04 08:34:42 +00:00
svenbarth
32c307e9ce * fix for Mantis : if one of the two operators is an array constructor try to use an operator overload for that first before converting it to a set
+ added tests

git-svn-id: trunk@39554 -
2018-08-03 15:24:59 +00:00
michael
4e94570ca3 * Examples for socket client/server moved here, adapted for possibility of timeout
git-svn-id: trunk@39539 -
2018-07-31 08:06:01 +00:00
michael
962391621f * Fix bug ID
git-svn-id: trunk@39534 -
2018-07-30 21:26:06 +00:00
michael
a721f23666 * Session routing demo
git-svn-id: trunk@39532 -
2018-07-30 20:07:09 +00:00
florian
44150f43ac * RISC-V 32 compilation fixed
+ lazarus project file for the compiler added

git-svn-id: branches/laksen/riscv_new@39511 -
2018-07-26 19:18:47 +00:00
florian
14bfcbb0da * compiled the calling convention test files by riscv64-linux-gnu-gcc (Ubuntu 7.3.0-16ubuntu3) 7.3.0
with -O3

git-svn-id: branches/laksen/riscv_new@39508 -
2018-07-24 21:11:52 +00:00
florian
269069f5db * empty dummy object files
git-svn-id: branches/laksen/riscv_new@39488 -
2018-07-22 18:43:07 +00:00
Jeppe Johansen
6352328f3a Update packages with information about RiscV.
Fix g_external_wrapper, since it uses a register.
Fixed calling of gas.
Ported cprt0.

git-svn-id: branches/laksen/riscv_new@39475 -
2018-07-20 10:40:28 +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
florian
93c5eae528 * accept dereferences in generics definitions, resolves properly
git-svn-id: trunk@39447 -
2018-07-13 21:00:33 +00:00
florian
0c6cf12fbf + support for the directive $EXCESSPRECISION
git-svn-id: trunk@39443 -
2018-07-12 21:39:50 +00:00
nickysn
374a8281e7 + added unit ports for win16
git-svn-id: trunk@39441 -
2018-07-12 14:24:46 +00:00
nickysn
7df861487b * use include files in the unix ports unit as well
+ add portsh.inc and ports.inc for x86_64 as well

git-svn-id: trunk@39420 -
2018-07-09 14:42:01 +00:00
michael
bfd07c6233 * Small demo showing how to tokenize a file into words
git-svn-id: trunk@39419 -
2018-07-09 11:39:09 +00:00
michael
dc1b0ae2c7 * Add unicode version of the regexpr unit, from same source
git-svn-id: trunk@39418 -
2018-07-09 11:33:04 +00:00
michael
ed4b94706b * HTML search database example
git-svn-id: trunk@39415 -
2018-07-08 19:46:15 +00:00
florian
0eea2141f6 * patch by J. Gareth Moreton: clarity in directive conflict error messages, resolves
git-svn-id: trunk@39407 -
2018-07-07 14:46:01 +00:00
florian
96e92527e9 * constant folding of not must check if the deftype is really an orddef, resolves
git-svn-id: trunk@39406 -
2018-07-07 14:17:41 +00:00
svenbarth
8df686ed2e * Mantis is fixed by the fix for String type helpers as well
git-svn-id: trunk@39401 -
2018-07-06 15:57:23 +00:00
svenbarth
ec374c196e * Mantis is fixed by the fix for String type helpers
git-svn-id: trunk@39400 -
2018-07-06 15:57:17 +00:00
svenbarth
441fc2fab6 * also parse postfix operators after parsing a _STRING token (required for class functions on type helpers for String)
+ added tests

git-svn-id: trunk@39399 -
2018-07-06 15:57:11 +00:00
nickysn
0ea3570b96 * moved the interface and implementation parts of the go32v2 ports unit to
include files portsh.inc and ports.inc in the i386 rtl directory

git-svn-id: trunk@39397 -
2018-07-06 15:52:18 +00:00
nickysn
5318a04a5b * moved the interface and implementation parts of the i8086-msdos ports unit to
include files portsh.inc and ports.inc in the i8086 rtl directory

git-svn-id: trunk@39396 -
2018-07-06 15:41:44 +00:00
michael
fca7e26ed6 * Codepage-aware, allow unicode, refactoring of SQLDB code, add PG connector
git-svn-id: trunk@39381 -
2018-07-04 13:15:28 +00:00
nickysn
26a3ac3fd4 * moved the fpc_in_x86_*port* constants to the system unit in cpuinnr.inc in the
i8086, i386 and x86_64 rtl directories. This is done for consistency with
  other compiler internal function numbers (which are declared in innr.inc).

git-svn-id: trunk@39367 -
2018-07-03 21:30:43 +00:00
nickysn
fdc896ad0a + inline support for the x86 'in' and 'out' instructions. Currently only enabled
in the i8086-msdos 'ports' unit, but will be enabled on other targets (e.g.
  go32v2) in the future as well. 32-bit 'in' and 'out' not inlined on i8086, but
  will be on i386 and x86_64.

git-svn-id: trunk@39362 -
2018-07-03 17:01:42 +00:00
florian
b70fc52874 * patch by Ondrej Pokorny: the stored property modifier does not delete the inherited default value anymore, resolves
git-svn-id: trunk@39357 -
2018-07-01 20:11:13 +00:00
florian
eb61923762 * patch by Ondrej Pokorny: The nodefault is now inherited from parent class, resolves
git-svn-id: trunk@39356 -
2018-07-01 19:01:41 +00:00
florian
9af9658fa7 * first parameter of SetLength must be valid, as it is read
git-svn-id: trunk@39347 -
2018-06-30 11:25:43 +00:00
michael
d4f2a593d4 * Update from Maciej Izak, bug ID
git-svn-id: trunk@39345 -
2018-06-29 20:43:21 +00:00
nickysn
e813a11e85 + support TP7-compatible @proc^ (as in FillChar(@proc^,...))
git-svn-id: trunk@39343 -
2018-06-29 14:16:35 +00:00
michael
bfc5d63fde * Add webidl2pas
git-svn-id: trunk@39293 -
2018-06-23 14:02:55 +00:00
michael
e655b9137b * webidl added
git-svn-id: trunk@39292 -
2018-06-23 13:57:45 +00:00
michael
6abf361557 * New common base for all pascal code generator units in fcl
git-svn-id: trunk@39290 -
2018-06-23 13:56:38 +00:00
svenbarth
a2b58b842b + add support for threadvars in records
+ added tests

git-svn-id: trunk@39289 -
2018-06-23 13:49:16 +00:00
svenbarth
c3ca96279a + add support for threadvars inside classes
+ added tests

git-svn-id: trunk@39288 -
2018-06-23 13:49:12 +00:00
svenbarth
0a45d7a774 + add a message that is used when a threadvar section is started inside a class or record without the "class"
specifier

git-svn-id: trunk@39286 -
2018-06-23 13:49:05 +00:00
svenbarth
ff407c56d9 * extend scanning of $modeswitch to support not only + and -, but also ON and OFF like other switches
+ added tests

git-svn-id: trunk@39280 -
2018-06-22 21:29:08 +00:00
svenbarth
7522a34a67 + add a message that can be used if an internal operator hides an existing operator overload
git-svn-id: trunk@39260 -
2018-06-20 19:53:50 +00:00
svenbarth
97acf24290 + add a new modeswitch ArrayOperators which is set by default in Delphi modes that enables the internal array operators (currently only "+")
git-svn-id: trunk@39259 -
2018-06-20 19:53:43 +00:00
svenbarth
9b45f58c0b + add flags that allow checking for overloads with isbinaryoverloaded() and isunaryoverloaded() without modifying the passed in node or even checking for normally non-overloadable operators
git-svn-id: trunk@39258 -
2018-06-20 19:53:34 +00:00
svenbarth
b75324a4f2 * move RTTI declarations to their own header file
git-svn-id: trunk@39248 -
2018-06-20 18:59:57 +00:00
florian
400861a907 * fixed TBits.NotBits, it is just an Xor operation, resolves
git-svn-id: trunk@39243 -
2018-06-19 20:38:15 +00:00
svenbarth
c495f10b29 + added tests for Mantis which is now fixed with the recent changes
git-svn-id: trunk@39234 -
2018-06-15 13:49:33 +00:00
svenbarth
be0d51d64c * allow $MinEnumSize, $PackSet and $PackRecords to be used with $Push and $Pop
+ added tests

git-svn-id: trunk@39215 -
2018-06-12 19:40:45 +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
florian
3b3e33d863 + correctly set var state of addr and frame in raise statements, resolves
git-svn-id: trunk@39162 -
2018-06-03 09:31:19 +00:00
nickysn
58be30a0fd + added test tasm27a.pp - similar to tasm27.pp, but for i386 and checked against Delphi
git-svn-id: trunk@39133 -
2018-05-28 15:34:46 +00:00
svenbarth
f077c7d950 + add support for Unicode code point constants > $FFFF; they are converted to a surrogate pair so they are in
fact a UnicodeString constant
+ added tests

git-svn-id: trunk@39123 -
2018-05-27 14:06:19 +00:00
svenbarth
199b5809a3 * optimize "dynarr := dynarr + [elem]" to "Insert(elem, dynarr, High(SizeInt))" and "dynarr := [elem] + dynarr" to "Insert(elem, dynarr, 0)" (we need to do this in the typecheck of taddnode as otherwise the array constructor is already converted)
+ added test
* adjusted test for Mantis  as p1 triggers the optimization as well

git-svn-id: trunk@39119 -
2018-05-25 16:03:56 +00:00
svenbarth
b94a8c93a5 * test (for Mantis ; 3531 is the old bug ID) is valid now that we have dynamic array initializers
git-svn-id: trunk@39105 -
2018-05-24 19:56:35 +00:00
florian
8f472d5212 * check for more controll flow statements before doing loop unrolling
git-svn-id: trunk@39083 -
2018-05-21 15:46:02 +00:00
svenbarth
b7cc225149 * revert r39043 and r39045 which disallow static array constants inside dynamic constants for Delphi modes
git-svn-id: trunk@39078 -
2018-05-21 08:13:17 +00:00
svenbarth
dcdb151add * prohibit static array constants inside dynamic array constants for Delphi modes
+ added test

git-svn-id: trunk@39045 -
2018-05-20 11:50:27 +00:00