florian
7855b3cf1b
* relax formula for max. nodes to inline
...
git-svn-id: trunk@39763 -
2018-09-16 19:15:30 +00:00
florian
49e7e5f512
* support aitconst_*bit_unaligned in the intel assembler writer, resolves #34222
...
git-svn-id: trunk@39761 -
2018-09-16 15:27:03 +00:00
florian
ee338fc709
* patch by Karl-Michael Schindler to update the german messages files, resolves #34218
...
git-svn-id: trunk@39760 -
2018-09-16 15:13:04 +00:00
florian
a21397e356
+ based on a patch by Laksen, optimize (v>=x) and (v<=y) into (v-x)<(y-x)
...
git-svn-id: trunk@39759 -
2018-09-16 13:09:36 +00:00
florian
64ad48e89e
* forgotten part of r39750
...
git-svn-id: trunk@39752 -
2018-09-13 20:20:40 +00:00
florian
800ce23499
* fixed some issues to get correct values of section_count, works better than before but it is still not perfect for unknown reasons
...
git-svn-id: trunk@39750 -
2018-09-12 20:33:18 +00:00
pierre
d46536817c
Disable overflow for UDIVX ans SDIVX 64-bit instructions
...
git-svn-id: trunk@39731 -
2018-09-11 08:00:54 +00:00
svenbarth
cb8f6f637c
* fix big endian targets by using an explicit assignment with typecast instead of an absolute variable
...
git-svn-id: trunk@39728 -
2018-09-10 21:12:29 +00:00
Jeppe Johansen
4b227de02e
Add ORN instruction for Thumb2.
...
git-svn-id: trunk@39714 -
2018-09-08 12:10:51 +00:00
svenbarth
92cce05f5f
* as a workaround for some compiler bug introduced during 3.1.1 the freeing of the management operator offset entry lists is moved to a nested procedure as that does not trigger the bug (even with -O2 or -O3)
...
git-svn-id: trunk@39711 -
2018-09-04 20:20:07 +00:00
svenbarth
ba08bdc9b1
* increase PPU version after the addition of the field to keep track of management operators (don't seperately to help merging)
...
git-svn-id: trunk@39710 -
2018-09-03 18:00:30 +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
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
03a036c6cb
* regenerate msg*.inc after adding messages for mismatching generic declarations
...
git-svn-id: trunk@39701 -
2018-09-02 16:20:22 +00:00
svenbarth
cfe75ca0fd
+ add messages to use when generic types of a definition do not match with its declaration
...
git-svn-id: trunk@39700 -
2018-09-02 16:20:18 +00:00
svenbarth
70ae0a2dc9
+ add a comment to the destructor of tsymtable so that others (and maybe me a well) will hopefully see that the destructor of that class is not completely trivial!
...
git-svn-id: trunk@39694 -
2018-08-31 19:16:48 +00:00
svenbarth
072699d38a
* protect the destructors of tabstractrecordsymtable and twithsymtable against executing when called with a refcount > 1 (this fixes Mantis #34210 )
...
+ added simplified test
git-svn-id: trunk@39693 -
2018-08-31 19:16:45 +00:00
svenbarth
10886d8cef
* fix for Mantis #34206 : 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
svenbarth
a076677336
* instead of a flags field generate a table with all Initialize operators of all fields (nested or not, parent class or not) for class types; objects and records don't use this (yet)
...
git-svn-id: trunk@39690 -
2018-08-29 19:21:35 +00:00
svenbarth
21e7ddaac7
+ add method to retrieve a list of management operator/field offset pairs for a specific management operator inside a structured type (no matter how deeply nested they are)
...
git-svn-id: trunk@39689 -
2018-08-29 19:21:31 +00:00
svenbarth
ecc02f3fdb
* always search in the current module as well as its symtables are be popped already in case of RTTI generation
...
git-svn-id: trunk@39688 -
2018-08-29 19:21:28 +00:00
svenbarth
190716ac0e
* move getrecorddef and gettabledef from TVMTWritter to symdef as they might be used from the RTTI as well
...
git-svn-id: trunk@39687 -
2018-08-29 19:21:23 +00:00
svenbarth
2e1327b6b2
* use pooled constant references for the parameter locations as more often than not they're equal between multiple methdos (e.g. the Self argument is always the same)
...
* using this the TypInfo unit can navigate interface methods and VMT method parameters much more quickly as the latter have a constant size now
git-svn-id: trunk@39686 -
2018-08-29 19:20:31 +00:00
svenbarth
029ec93df6
* use pooled constant references for the names of VMT methods in the RTTI
...
git-svn-id: trunk@39685 -
2018-08-29 19:20:27 +00:00
svenbarth
228d3252cc
* use pooled constant references for the parameter names of VMT methods in the RTTI
...
git-svn-id: trunk@39684 -
2018-08-29 19:20:24 +00:00
svenbarth
8bf3661f7f
+ add a method to emit a reference to a pooled shortstring constant (aka one per unit); very useful for new RTTI tables to avoid poluting the binary with string constants
...
git-svn-id: trunk@39683 -
2018-08-29 19:20:20 +00:00
marco
98f00acb06
* trunk to 3.3.1
...
git-svn-id: trunk@39635 -
2018-08-18 15:47:44 +00:00
florian
ea32ddd5b2
* avoid overflows of execution weight
...
git-svn-id: trunk@39623 -
2018-08-16 20:45:36 +00:00
florian
75251913b1
* properly pass execution weight in SetExecutionWeight
...
git-svn-id: trunk@39622 -
2018-08-16 20:45:36 +00:00
marco
dd52e79089
* two comment spelling fixes. Mantis #34092 & #34097
...
git-svn-id: trunk@39593 -
2018-08-08 08:39:20 +00:00
pierre
ada8891d9e
Also allow clang assembler for powerpc64-darwin target
...
git-svn-id: trunk@39580 -
2018-08-06 16:13:05 +00:00
svenbarth
3d740f13e4
* ensure that the data of the temp node is freed correctly in case of an error (the error might be non-fatal in case of a generic passing an untyped type to Write/Read)
...
git-svn-id: trunk@39566 -
2018-08-04 08:37:07 +00:00
svenbarth
781303c0d8
* ensure that the file parameter for the Read/Write family of intrinsics is (and can be) freed in tinlinenode.handle_read_write()
...
git-svn-id: trunk@39565 -
2018-08-04 08:37:01 +00:00
svenbarth
473a028523
- the freegenericparams variable is no longer required as it's always true whenever consume_proc_name is called anyway
...
git-svn-id: trunk@39562 -
2018-08-03 20:24:23 +00:00
svenbarth
32db846289
* free the list containing the generic parameters as after calling insert_generic_parameter_types() it's no longer required (though this means that the condition handling generictypelist instead needs to be adjusted)
...
git-svn-id: trunk@39561 -
2018-08-03 20:24:19 +00:00
svenbarth
c1cfd87b56
* the call node takes ownership of the specialization context, so free it in the destructor
...
git-svn-id: trunk@39560 -
2018-08-03 20:24:15 +00:00
svenbarth
0aee319fdb
* do_member_read() takes ownership of the specialization context, so Nil it after the call
...
git-svn-id: trunk@39559 -
2018-08-03 20:24:10 +00:00
svenbarth
0ba14c7ad8
* fix memory leak when freeing a temp delete node: also call the inherited destructor so that e.g. tnode.optinfo is freed.
...
git-svn-id: trunk@39558 -
2018-08-03 20:24:05 +00:00
svenbarth
32c307e9ce
* fix for Mantis #34021 : 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
pierre
29d524e7e6
Remove abolute path for native linker, ld is in directory /usr/ccs/bin in Oracle Solaris 10 8/11
...
git-svn-id: trunk@39541 -
2018-08-01 06:44:26 +00:00
nickysn
42432d4ef3
* use sizeuinttype, instead of ptruinttype for the indexdef conversion in
...
tcgvecnode.pass_generate_code. This avoids a meaningless conversion to 32-bit
(and using the cwd instruction) on i8086 in the far data memory models.
git-svn-id: trunk@39472 -
2018-07-19 15:27:14 +00:00
michael
f6867cbd63
* Patch by Cyrax to allow creating map file on linux (bug ID 33982)
...
git-svn-id: trunk@39449 -
2018-07-14 08:12:38 +00:00
florian
93c5eae528
* accept dereferences in generics definitions, resolves #33700 properly
...
git-svn-id: trunk@39447 -
2018-07-13 21:00:33 +00:00
florian
52846df241
* fixed condition in getbestreal
...
git-svn-id: trunk@39446 -
2018-07-13 19:53:47 +00:00
florian
0c6cf12fbf
+ support for the directive $EXCESSPRECISION
...
git-svn-id: trunk@39443 -
2018-07-12 21:39:50 +00:00
Jeppe Johansen
3e2be29030
Make sure to align at the end of the .text, in case .data bytes will be placed there in flash.
...
git-svn-id: trunk@39442 -
2018-07-12 18:52:19 +00:00
nickysn
9272bf59b2
+ added x86 (i8086, i386 and x86_64) intrinsics fpc_x86_get_cs/ss/ds/es/fs/gs
...
for getting the value of x86 segment registers
git-svn-id: trunk@39433 -
2018-07-11 14:19:40 +00:00
florian
d4c65cdac4
* better register de-allocation after CWD/CWB
...
git-svn-id: trunk@39413 -
2018-07-07 21:38:42 +00:00
florian
4f580f7878
+ add missing exit as mentioned by J. Gareth Moreton in #33754
...
git-svn-id: trunk@39408 -
2018-07-07 14:53:56 +00:00