Commit Graph

55638 Commits

Author SHA1 Message Date
Jonas Maebe
a079e5fa80 * synchronised with trunk till r41449
git-svn-id: branches/debug_eh@41450 -
2019-02-24 20:01:53 +00:00
Jonas Maebe
7c4e7d6bd3 * support OS_32/OS_64 in cgsize2subreg for ARM MM registers to handle
records passed in MM registers

git-svn-id: trunk@41449 -
2019-02-24 19:59:03 +00:00
Jonas Maebe
08791712d7 * also specify the byval alignment at the callee side
git-svn-id: trunk@41448 -
2019-02-24 19:59:00 +00:00
Jonas Maebe
bead1f8180 * properly set 8 byte parameter alignment for first parameter on ARM if
applicable

git-svn-id: trunk@41447 -
2019-02-24 19:58:57 +00:00
Jonas Maebe
6071263469 * use ` instead of ^ as replacement character in LLVM asmnodes, as ^ can
appear in ARM inline assembly

git-svn-id: trunk@41446 -
2019-02-24 19:58:54 +00:00
Jonas Maebe
a87a7270d5 * remove double "nocapture" attributes
* also add "noalias nocapture" to sret parameters

git-svn-id: trunk@41445 -
2019-02-24 19:58:51 +00:00
Jonas Maebe
e829596750 * type left-over parts of parameters as arrays of "stack slot alignment" if
they're an exact multiple of the ialignment size on LLVM. This prevents
    both overalignment (e.g. remainder of 8 individual bytes on ARM
    would be aligned to 8 bytes instead of 4 if typed as int64) and
    underalignment (e.g. 32 bytes remainder of a record that needs to be
    aligned to 8 bytes would be aligned to 1 or 4 bytes if types as
    array of resp. bytes or longints)

git-svn-id: trunk@41444 -
2019-02-24 19:58:47 +00:00
Jonas Maebe
bc77aad3d9 * give an error when trying to call through to a C varargs routine with a
high level code generator
   o we cannot create a high-level stub in that case

git-svn-id: trunk@41443 -
2019-02-24 19:58:44 +00:00
Jonas Maebe
a51c06f907 * place the "external" directives in the interface instead of in the
implementation, because we don't support "external" in the implementation
    for C varargs functions for LLVM (can't generate a stub for them)
   o having "external" in the implementation also causes useless overhead
     with code generators that do support this

git-svn-id: trunk@41442 -
2019-02-24 19:58:40 +00:00
Jonas Maebe
07bd4ba517 * let all the case code generation work with tconstexprint instead of aint,
so it also works for 32 bit targets and a high level code generator
    (where aint is still 32 bit, but 64 bit operations are not decomposed)

git-svn-id: trunk@41441 -
2019-02-24 19:58:37 +00:00
michael
1d5877ecf0 * Save config strings to/from ini file
git-svn-id: trunk@41440 -
2019-02-24 18:59:19 +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
5f2cef71ea * Copyright statement
git-svn-id: trunk@41438 -
2019-02-24 17:09:58 +00:00
michael
e726faca7c * Delphi rest client for REST bridge
git-svn-id: trunk@41437 -
2019-02-24 16:01:26 +00:00
Mattias Gaertner
934ece9274 pas2js: updated docs
git-svn-id: trunk@41436 -
2019-02-24 15:45:31 +00:00
Mattias Gaertner
333e100b5b pastojs: clean up
git-svn-id: trunk@41435 -
2019-02-24 15:42:34 +00:00
Mattias Gaertner
90626406a1 fcl-passrc: class abstract
git-svn-id: trunk@41434 -
2019-02-24 15:42:11 +00:00
Mattias Gaertner
45eafbabca fcl-passrc: useanalyzer: no hint for attributes
git-svn-id: trunk@41433 -
2019-02-24 15:42:01 +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
michael
938d59434f * Fix missing inherited in destroy
git-svn-id: trunk@41430 -
2019-02-24 14:59:13 +00:00
florian
74275a9173 * in ISO mode, f^ is undefined after Rewrite
git-svn-id: trunk@41429 -
2019-02-24 10:32:59 +00:00
florian
38a7f7c975 * casing fixed
git-svn-id: trunk@41428 -
2019-02-24 09:54:05 +00:00
Mattias Gaertner
a532d1d8fb pastojs: attributes
git-svn-id: trunk@41427 -
2019-02-24 08:22:32 +00:00
Mattias Gaertner
cc22c70fa5 fcl-passrc: attributes, removed modeswitch msIgnoreInterfaces
git-svn-id: trunk@41426 -
2019-02-24 08:22:02 +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
5cb5b10f8d * fixed LLVM and non-i386 compilation
git-svn-id: branches/debug_eh@41423 -
2019-02-23 17:03:42 +00:00
Jonas Maebe
ba22fe74c7 * don't corrupt the assembler reader mode on i386 and i8086 if the syntax
mode is set to something else but Delphi on the command line

git-svn-id: trunk@41422 -
2019-02-23 16:03:25 +00:00
Jonas Maebe
4e5f48a25e * add support for HFA parameter passing for ARM hardfloat
(fixes test/cg/tcalext6)

git-svn-id: trunk@41421 -
2019-02-23 15:42:48 +00:00
Jonas Maebe
8b9e90dc7a * keep track of whether a routine has a C-style variadic parameter in the
procoptions even when it's through an array-of-const parameter
  * always call create_varargs_paraloc_info() instead of create_paraloc_info()
    in the former case, even when no varargs parameters are specified (because
    on some platforms even some non-variadic parameters need to be passed
    differently, such as on ARM with gnueabihf)

git-svn-id: trunk@41420 -
2019-02-23 15:42:45 +00:00
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
pierre
54ae0f7d64 * Use DupIgnore for TBuildEngine.Clean list of files to delete
+ Generate list of remaining files and call CmdDeleteFiles

git-svn-id: trunk@41418 -
2019-02-23 15:41:44 +00:00
pierre
1a564de6e6 Add testing of use of variable of class
git-svn-id: trunk@41417 -
2019-02-23 15:37:39 +00:00
Jonas Maebe
af36913469 * don't use cg64.a_load64_loc_cgpara() for 64 bit records passed in
non-integer registers

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

git-svn-id: trunk@41415 -
2019-02-22 22:26:21 +00:00
florian
8db9b211d5 * fixed unwinding from signal handlers, the approach used now is very simple and clean
git-svn-id: branches/debug_eh@41414 -
2019-02-22 22:01:45 +00:00
florian
18fb53e012 * set cfa offset always properly
git-svn-id: branches/debug_eh@41413 -
2019-02-22 22:00:20 +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
michael
e9c4042023 * Add gif to help message
git-svn-id: trunk@41411 -
2019-02-22 08:07:21 +00:00
michael
373e6a78d7 * Support reading gifs
git-svn-id: trunk@41410 -
2019-02-22 08:05:24 +00:00
michael
fe505c12a9 * Patch from Anton Kavalenka to fix gif reading (bug ID 35134)
git-svn-id: trunk@41409 -
2019-02-22 08:03:39 +00:00
florian
b9bd47ec40 * fixed tpsabiehexceptionstatehandler.handle_reraise
git-svn-id: branches/debug_eh@41408 -
2019-02-21 22:08:09 +00:00
florian
3c61bb9c5d * some safecall issues fixed
git-svn-id: branches/debug_eh@41406 -
2019-02-20 21:53:27 +00:00
yury
3a43ffd57b * arm: Include pi_needs_got to current_procinfo.flags when the GOT register is accessed. It forces proper initialization of the GOT register at the beginning of a procedure. This fixes storing of a double constant to a field in a packed record and other rare copy operations when PIC is enabled.
git-svn-id: trunk@41405 -
2019-02-20 20:06:32 +00:00
yury
3e8c7f66b7 * arm: Fixed crash while loading double constants with PIC enabled. This is the regression after r41129. The crash has occurred due to usage of a rare code path. It will be fixed in the next commit.
git-svn-id: trunk@41404 -
2019-02-20 20:00:06 +00:00
yury
ad6642edc0 * android: Fixed stdio redirection for threads.
git-svn-id: trunk@41400 -
2019-02-20 15:11:45 +00:00
yury
c0e1ec9121 * pas2jni: Fixed exception handling.
git-svn-id: trunk@41396 -
2019-02-20 13:04:49 +00:00
yury
fa4596a08f * ppudump: Fixed warnings with -O3.
git-svn-id: trunk@41394 -
2019-02-20 10:24:48 +00:00
yury
9a3ddf650c * ppudump: Use buffered write when outputting to json or xml. It improves the output speed a lot.
git-svn-id: trunk@41393 -
2019-02-20 10:13:18 +00:00