Jonas Maebe
c9a7afe053
* in constructors, free the temp holding self only after loading the function
...
result, as self is the function result there (follow up to 40501)
git-svn-id: trunk@40635 -
2018-12-24 22:10:09 +00:00
Jonas Maebe
acf02ab64b
* when creating wrappers, add a prefix to parameter names to prevent them
...
hiding the method name of the wrapped routine
o also add a few more '&' prefixes to the generated wrapper code to
prevent issues when keywords are used as identifiers
git-svn-id: trunk@40634 -
2018-12-24 22:10:06 +00:00
Jonas Maebe
377d4e1b58
* make the size parameter of thlcgobj.location_force_mmregscalar() a
...
var-parameter, as the size sometimes gets changed in this routine and
high level code generators don't use the location.size but the def
git-svn-id: trunk@40633 -
2018-12-24 22:10:02 +00:00
Jonas Maebe
f3d831b480
* fixed result cgsize of LLVM's second_nothing type conversion node (new
...
size instead of original size, which can be different in case of going
from void to something else)
git-svn-id: trunk@40632 -
2018-12-24 22:09:58 +00:00
Jonas Maebe
eb769e3859
* force pointer-based self parameters of inlined routines in temps for LLVM
...
to ensure that their type gets updated
git-svn-id: trunk@40631 -
2018-12-24 22:09:55 +00:00
Jonas Maebe
3ccc3e329b
* prevent calling firstpass multiple times for a node (such as when
...
transforming inc/dec to an addn/subn in case of range checking) from
triggering the transformation logic for accessing nested variables
on LLVM/JVM multiple times
* also prevent it from triggering errors during inlining, in case a
parameter to a nested routine gets replaced by a local variable
from a parent routine (in that case, it does not need to be
accessed via the parentfpstruct, as we are being inlined in the
parent) -> don't duplicate the check from pass_typecheck in pass_1,
but check whether it needs to be accessed via the parentfpstruct
by verifying that tloadnode.left is assigned (which pass_typecheck
will ensure if needed)
git-svn-id: trunk@40630 -
2018-12-24 22:09:52 +00:00
Jonas Maebe
dd29088430
* simplify all type conversions for formal constants even for LLVM and JVM
...
(since these happen at compile time and don't result in generated code,
they never need extra type conversions in the code)
git-svn-id: trunk@40629 -
2018-12-24 22:09:48 +00:00
Jonas Maebe
b1b559f283
* fixed used resulttype of char-to-shortstring typeconversion in case the
...
shortstring type is smaler than 255 chars
git-svn-id: trunk@40628 -
2018-12-24 22:09:45 +00:00
Mattias Gaertner
765fdb7641
pastojs: fixed uninitialized result
...
git-svn-id: trunk@40620 -
2018-12-23 16:34:29 +00:00
pierre
1d7f5fa812
* in lexbase and yaccbase units,
...
use DirectorySeparator instead of '\' in functions
path, root and addext.
* in plex and pyacc programs, for unix,
try to find installed yyparse.cod using
path of paramstr(0).
git-svn-id: trunk@40619 -
2018-12-23 16:17:49 +00:00
marco
e156128065
* set version over $I, one less file to edit.
...
git-svn-id: trunk@40615 -
2018-12-22 16:31:39 +00:00
marco
a5b0531980
* fixed formatting parameter in SWarnRetryDeleteFile
...
git-svn-id: trunk@40614 -
2018-12-22 15:55:44 +00:00
marco
645b924b0c
* ctrl-shift-arrow key definitions for xterm, xfce
...
git-svn-id: trunk@40611 -
2018-12-22 14:56:20 +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
michael
e2ff02a0f5
* Small optimization: add const to string argument (By Silvio Clecio)
...
git-svn-id: trunk@40607 -
2018-12-21 22:11:32 +00:00
Jonas Maebe
f87304f5ca
* fixed LLVM code generator not taking into account constalignmin/max
...
settings for typed constants
git-svn-id: trunk@40605 -
2018-12-21 20:57:22 +00:00
Jonas Maebe
4f72edcdd5
+ LLVM support for the FMA intrinsics
...
git-svn-id: trunk@40604 -
2018-12-21 20:57:19 +00:00
Jonas Maebe
1cc995b471
* use ccallnode.createintern() instead of
...
ccallcnode.createinternfromunit('SYSTEM')
git-svn-id: trunk@40603 -
2018-12-21 20:57:16 +00:00
Jonas Maebe
c55ffa8cc7
* fixed <> comparisons with NaNs (use LLVM "unordered" comparison: succeed
...
if either operand is a NaN)
git-svn-id: trunk@40602 -
2018-12-21 20:57:12 +00:00
pierre
430ec7bbe4
Try to ix compilation failures in units/fpcunit directory
...
git-svn-id: trunk@40601 -
2018-12-20 22:39:40 +00:00
pierre
e9e5b05caa
Remove Unicode $180E (Mongolian Vowel Separator), as it is not anymore a whitespace character
...
git-svn-id: trunk@40600 -
2018-12-20 21:30:44 +00:00
Jonas Maebe
3b4011760a
* cleaned up blockaddress instruction (add type rather than hardcoding it
...
in the assembler writer)
* fixed taking the address of a label in a typed const for llvm (fixes
tbs/tb0468a)
git-svn-id: trunk@40599 -
2018-12-20 21:22:44 +00:00
Jonas Maebe
c6bb85eae9
* support for compiling the objects unit methods that expect local procedure/
...
function pointers using {$modeswitch nestedprocvars} functionality, activate
this for LLVM and also activate that modeswitch for a test that uses this
o also convert the IDE units to use this functionality
o requires extra typecasts because implicit type conversions from
procvar(p: psometype) to procvar(p: pointer) are not supported; on the
plus side, even those type conversions are checked for validity
o note: requires {$modeswitch nestedprocvars} in all programs/units
that rely on this functionality
git-svn-id: trunk@40598 -
2018-12-20 21:22:40 +00:00
Mattias Gaertner
e108d9c5eb
pastojs: concat(string1,string2,...)
...
git-svn-id: trunk@40597 -
2018-12-19 23:18:04 +00:00
Mattias Gaertner
ee61fc2102
fcl-passrc: resolver: concat(string1,string2,...)
...
git-svn-id: trunk@40596 -
2018-12-19 23:17:52 +00:00
Mattias Gaertner
36f3508614
pastojs: jsvalue:=anonymousfunction
...
git-svn-id: trunk@40594 -
2018-12-19 21:49:49 +00:00
Mattias Gaertner
b7c1732039
pastojs: less fpc hints, test for conflict of external class and property
...
git-svn-id: trunk@40593 -
2018-12-18 22:21:13 +00:00
Mattias Gaertner
601c6476ea
fcl-js: less hints
...
git-svn-id: trunk@40592 -
2018-12-18 22:20:12 +00:00
Mattias Gaertner
0043b747c7
fcl-passrc: TPasClassType and TPasRecordType now have common ancestor, resolver: started advancedrecord methods
...
git-svn-id: trunk@40591 -
2018-12-18 22:19:43 +00:00
yury
883f832263
* Added the tsvn:projectlanguage property to force English spell checker in TortoiseSVN.
...
git-svn-id: trunk@40587 -
2018-12-18 13:26:35 +00:00
yury
92e579a294
* Improved the comment.
...
git-svn-id: trunk@40586 -
2018-12-18 13:23:52 +00:00
yury
fdcb12d9f6
* ARM: Remove preindexing and postindexing for LDR in some cases when removing superfluous MOVs. It fixes crash when calling Format() if rtl is compiled with -O3.
...
git-svn-id: trunk@40585 -
2018-12-18 13:20:40 +00:00
Mattias Gaertner
89e66cd2fc
pastojs: fixed tests
...
git-svn-id: trunk@40584 -
2018-12-17 11:45:35 +00:00
Mattias Gaertner
65fdc04dc3
fcl-passrc: fixed parsing comment in $IFDEF, $IFNDEF, issue #34711
...
git-svn-id: trunk@40582 -
2018-12-17 08:40:35 +00:00
Mattias Gaertner
eee0074eb4
pas2js: rtl.js set version
...
git-svn-id: trunk@40580 -
2018-12-16 22:39:31 +00:00
Jonas Maebe
7cc7268635
* fixed dynamic array constants for non-Darwin LLVM platforms
...
git-svn-id: trunk@40578 -
2018-12-16 20:59:58 +00:00
Jonas Maebe
2330164ee2
+ internal sqrt support for LLVM (faster on all platforms, necessary on
...
platforms that don't have RTL support for it, as the the generic
fpc_sqrt_real just calls runerror)
git-svn-id: trunk@40575 -
2018-12-16 20:44:41 +00:00
Jonas Maebe
8845f4d1ce
* fixed type consistency in handler for array parameters on platforms where
...
these have to be passed on the caller side (i.e., AArch64)
git-svn-id: trunk@40574 -
2018-12-16 20:44:38 +00:00
Jonas Maebe
ac8411f3cf
* pass dynamic array parameters of cdecl routines by value on AArch64
...
(like on onther platforms)
o it was passed by reference as a side effect of the fact arrays in C are
pointers, but a dynamic array already is a pointer
git-svn-id: trunk@40573 -
2018-12-16 20:44:35 +00:00
Jonas Maebe
e69b4d2d9a
* replaced some stray cpointerdef.create() calls with cpointerdef.getreusable()
...
git-svn-id: trunk@40572 -
2018-12-16 20:44:31 +00:00
Jonas Maebe
95171a1e22
* initialise cgpara with valid data for the C-style "array of const" para
...
(necessary for the LLVM backend)
git-svn-id: trunk@40571 -
2018-12-16 20:44:28 +00:00
Jonas Maebe
820d2f7135
* support OS_32/OS_64 in AArch64 cgsize2subreg() for MM registers (can happen
...
for records with floating point fields with the LLVM code generator)
git-svn-id: trunk@40570 -
2018-12-16 20:44:24 +00:00
Jonas Maebe
93e39fb0cd
* only coerce the type of the leftover bytes of a record if the location
...
size doesn't match the number of remaining bytes
o prevents a second "single" field of a record getting interpreted as a
"cardinal"
git-svn-id: trunk@40569 -
2018-12-16 20:44:21 +00:00
Jonas Maebe
ff002e2664
* set paralocations correctly for LLVM/AArch (must be register-type instead
...
of parameter-type based)
git-svn-id: trunk@40568 -
2018-12-16 20:44:18 +00:00
Jonas Maebe
6b58185bda
* fixed shifval for big endian (bits instead of bytes)
...
git-svn-id: trunk@40567 -
2018-12-16 20:44:15 +00:00
Jonas Maebe
6e453a1477
* fixed paraloc def when changing the size to OS_32
...
git-svn-id: trunk@40566 -
2018-12-16 20:44:12 +00:00
Jonas Maebe
97bc58d248
* fixed bug that caused the "sret" argument attribute to never be used (and
...
a guaranteed internalerror on AArch64/llvm)
git-svn-id: trunk@40565 -
2018-12-16 20:44:09 +00:00
Mattias Gaertner
2e98c7d41b
pas2js: set trunk version to 1.3.1
...
git-svn-id: trunk@40562 -
2018-12-16 19:52:16 +00:00