Jonas Maebe
63847f1948
* disable explicitly calling class constructors on the JVM platform, as that
...
is forbidden there
git-svn-id: trunk@40386 -
2018-11-28 19:23:34 +00:00
Jonas Maebe
026d06cffb
- reverted r39188, as this hack removes the type correctness of the
...
instructions, which breaks the llvm code generator. Put such hacks
in CPU-specific overrides
git-svn-id: trunk@40385 -
2018-11-28 19:23:31 +00:00
Jonas Maebe
3a5a69619e
* moved initialisation of parentfpstruct to just behind where the local vars
...
get initialised, so that parameters in this struct are already available
in any wrappers generated for the parent routine (e.g. in case self is
moved to the parentfpstruct in a destructor, which calls beforestruction
in its wrapper)
git-svn-id: trunk@40384 -
2018-11-28 19:23:28 +00:00
Jonas Maebe
97b40dc16d
* fixed dynamic array constants for llvm
...
git-svn-id: trunk@40383 -
2018-11-28 19:23:25 +00:00
Jonas Maebe
413a3599c1
* thlcgobj.g_unreachable() dummy implementation + llvm override
...
git-svn-id: trunk@40382 -
2018-11-28 19:23:22 +00:00
pierre
b64e9700aa
Avoid range errors or overflows on for AVR cpu, when computing address offsets
...
git-svn-id: trunk@40378 -
2018-11-27 10:21:37 +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
20fea3607c
* pass volatility information to llvm.memcpy
...
git-svn-id: trunk@40376 -
2018-11-26 22:30:05 +00:00
Jonas Maebe
09b6306f02
- removed outdated comment after r40373
...
git-svn-id: trunk@40375 -
2018-11-26 22:30:01 +00:00
Jonas Maebe
f98a9bea3c
* cap the assumed alignment of pass-by-reference parameters to the minimum of
...
their default alignment, the alignment of locals, globals and constants
(so that we don't overestimate the alignment of global normal set
constants to 32 bytes, while the maximum const alignment is often only
8 bytes)
git-svn-id: trunk@40374 -
2018-11-26 22:27:35 +00:00
Jonas Maebe
9a157a7749
* don't overwrite the alignment of locals set by the temp manager with the
...
standard alignment for the type (the maximum alignment for locals may
be less, and it's set correctly by the temp manager)
git-svn-id: trunk@40373 -
2018-11-26 22:27:31 +00:00
Jonas Maebe
a7cb99f012
* when transforming the structure of a node tree involving full boolean
...
evaluation flags, also move the full boolean evaluation flags
git-svn-id: trunk@40367 -
2018-11-25 20:56:58 +00:00
florian
c43cae9231
* disable MovOpMov2MovOp optimization on x86-64 for now as it seems to break
...
git-svn-id: trunk@40361 -
2018-11-21 21:22:54 +00:00
florian
477d7be651
* building on i386-linux fixed
...
git-svn-id: trunk@40360 -
2018-11-21 19:19:24 +00:00
florian
ac37a54d79
+ MovOpMov2MovOp optimization
...
git-svn-id: trunk@40359 -
2018-11-20 22:20:43 +00:00
Jonas Maebe
b96a8aee61
* don't generate tempsfinalize nodes in except filter procdefs, as that would
...
finalize the parent's temps twice (fix for r40345, mantis #34574 )
git-svn-id: trunk@40357 -
2018-11-20 19:25:06 +00:00
florian
ccb8e86560
* fixes arm
...
git-svn-id: trunk@40350 -
2018-11-18 14:16:20 +00:00
Jonas Maebe
ea69a5b372
* finalizetemps nodes should never be considered equal and have side effects
...
git-svn-id: trunk@40348 -
2018-11-18 11:07:28 +00:00
pierre
0052e4da81
* Use getasizeint/putasizeint for tfieldvarsym.fieldoffset
...
* Change CurrentPPUVersion
git-svn-id: trunk@40347 -
2018-11-18 10:32:13 +00:00
florian
9d56387e7f
+ new spilling heuristics which takes care of the usage weigth of a register,
...
not yet activated, can be selected by passing SPILLING_NEW when compiling the compiler
git-svn-id: trunk@40346 -
2018-11-18 10:11:13 +00:00
Jonas Maebe
3b9f5a5e96
* moved finalization of code generator temps to a node, so it can be getcopy'd
...
(needed for LLVM, where we need two copies of the finally code: one in case
an exception occurs, and one in case none is raised)
o also first finalize parameters and only then code generator temps, since
in theory the former could create more of the latter
git-svn-id: trunk@40345 -
2018-11-17 22:38:36 +00:00
Jonas Maebe
d1361ca6ed
* fixed adjustments of lower/upper bounds in range test optimization in case
...
of strictly smaller/greater comparisons (mantis #34385 )
git-svn-id: trunk@40344 -
2018-11-17 22:38:31 +00:00
florian
cefb38b605
* better alignment of while loop heads
...
git-svn-id: trunk@40340 -
2018-11-17 15:08:24 +00:00
florian
ae8304f657
* set nf_write flag properly for vec. nodes of types with implicit dereferencing
...
git-svn-id: trunk@40339 -
2018-11-17 15:08:23 +00:00
florian
08d6ca7260
* better alignment on 386-linux
...
git-svn-id: trunk@40338 -
2018-11-17 15:08:22 +00:00
florian
6dbde11f5a
* three operand shl for shifting by 2, 4 or 8 can be simulated by lea
...
git-svn-id: trunk@40337 -
2018-11-17 15:08:22 +00:00
pierre
bee9421f2a
Change local variables offsetdec and extraoffset type to ASizeInt
...
git-svn-id: trunk@40326 -
2018-11-16 13:28:26 +00:00
pierre
23570bed33
Use same parameter type for update_reference_offset override
...
git-svn-id: trunk@40325 -
2018-11-16 13:26:56 +00:00
pierre
2761448f44
* Disable range check for m68k/aoptcpu unit
...
* Add missing change of var parameter p to next instruction
in TryToOptimizeMove method after instruction removal.
git-svn-id: trunk@40324 -
2018-11-16 10:27:42 +00:00
pierre
11851d274c
Fix riscv32 compilation error introduced in last commit
...
git-svn-id: trunk@40323 -
2018-11-16 10:24:27 +00:00
pierre
aebc8527ef
Also disable range checking in arm/aoptcpu unit
...
git-svn-id: trunk@40322 -
2018-11-15 22:01:25 +00:00
florian
095bd6da7d
* do not re-used gottpoff symbols as they are PC-relative
...
git-svn-id: trunk@40321 -
2018-11-15 20:07:56 +00:00
pierre
53a27fe7b3
Disable range check in m68k:tiscv32 and riscv64 cgcpu units
...
git-svn-id: trunk@40319 -
2018-11-15 16:58:40 +00:00
pierre
7c92412c74
Avoid overflow error in riscv code generator
...
git-svn-id: trunk@40318 -
2018-11-15 16:57:57 +00:00
florian
6a6ea6729f
* i8086 compiler fixed, resolves #34552
...
git-svn-id: trunk@40316 -
2018-11-14 18:05:35 +00:00
pierre
4657f45e74
* Change first parameter type of function is_continuous_maks to aword type.
...
Add typecasts where needed to allow for successful compilation of arm-linux target
with -CriotR options when building the compiler.
git-svn-id: trunk@40314 -
2018-11-14 13:13:19 +00:00
pierre
cacd8f28eb
Try to avoid expectloc not set after first pass error for call node
...
git-svn-id: trunk@40309 -
2018-11-13 15:51:32 +00:00
pierre
b4315f0f4f
+ Introduce PPC_SUFFIXES, new make variable that lists all ppc suffixes
...
for all different CPUs supported.
* Use PPC_SUFFIXES in execlean and CPU_clean targets.
* Also delete CPU/bin subbirectory.
git-svn-id: trunk@40307 -
2018-11-13 15:10:21 +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
svenbarth
446f89719c
* move checking whether a field's type is valid for the field to a separate function
...
git-svn-id: trunk@40284 -
2018-11-11 22:08:24 +00:00
florian
e8ebc00b3b
* redundant code removed, work is meanwhile done by aasmcpu.optimize_ref
...
git-svn-id: trunk@40282 -
2018-11-11 17:32:21 +00:00
florian
72416edcc4
+ support for tlsm_general on i386-linux
...
git-svn-id: trunk@40281 -
2018-11-11 17:32:20 +00:00
pierre
c3914c1f38
Downgrade EXTDEBUG warning to note about zero size temp, as it is used for empty sets
...
git-svn-id: trunk@40278 -
2018-11-08 20:19:54 +00:00
pierre
796db4cef5
Implement mark_write override for tinilinenode
...
git-svn-id: trunk@40277 -
2018-11-08 20:18:30 +00:00
florian
a40335de34
* non-linux arm targets fixed
...
git-svn-id: trunk@40276 -
2018-11-08 19:57:30 +00:00
florian
e157939b41
* compilation on x86-64 and i8086 fixed
...
git-svn-id: trunk@40275 -
2018-11-08 18:45:16 +00:00
florian
4d2d26c318
* define renamed into tls_threadvars
...
git-svn-id: trunk@40274 -
2018-11-07 22:03:04 +00:00
florian
063415fa72
+ i386-linux support for tls-based threadvars
...
git-svn-id: trunk@40272 -
2018-11-07 22:03:02 +00:00
florian
0d50a63c7d
+ tsettings.tlsmodel
...
git-svn-id: trunk@40271 -
2018-11-07 22:03:01 +00:00
florian
c37c485eb7
+ check if initialization/finalization code uses implicitly thread vars
...
git-svn-id: trunk@40269 -
2018-11-07 22:03:00 +00:00