Commit Graph

55538 Commits

Author SHA1 Message Date
Mattias Gaertner
5ed190061b pastojs: resolver: fixed class abstract
git-svn-id: trunk@41466 -
2019-02-25 17:58:39 +00:00
Mattias Gaertner
16ba0b4a05 fcl-passrc, pastojs: renamed modeswitch multiplescopehelpers to multihelpers
git-svn-id: trunk@41465 -
2019-02-25 17:50:32 +00:00
yury
a04e4971fc * i386: Do not request GOT for every function call. GOT is requested only for external calls in thlcgcpu.a_call_name(). Local calls are always PC relative.
git-svn-id: trunk@41464 -
2019-02-25 15:48:41 +00:00
yury
039aee9568 * i386 PIC: Do not force EBX as a GOT register if tf_section_threadvars is not set. Actually forcing EBX here is a bad idea anyway.
git-svn-id: trunk@41463 -
2019-02-25 15:05:26 +00:00
yury
4da16992df * i386: Minor PIC initialization improvement if the GOT register is forced to EBX.
git-svn-id: trunk@41462 -
2019-02-25 14:43:46 +00:00
Mattias Gaertner
0fb27844d6 fcl-passrc: useanalyzer: fixed system.typeinfo
git-svn-id: trunk@41461 -
2019-02-25 14:03:16 +00:00
yury
e5c2d13671 * Do not set pi_needs_got in current_procinfo.flags at the node level, since the GOT usage can only be estimated there. Instead set the pi_needs_got flag at places where the GOT register is accessed during the code generation. This eliminates generation of the unneeded initialization of the GOT register and fixes linker errors when the _GLOBAL_OFFSET_TABLE_ symbol is referenced but no actual GOT references are present.
git-svn-id: trunk@41460 -
2019-02-25 13:35:40 +00:00
yury
ab92dcd162 * android: Mask SSE exceptions for i386 too.
git-svn-id: trunk@41459 -
2019-02-25 13:15:17 +00:00
yury
9f88cae771 * Removed inline, since inherited is not supported.
git-svn-id: trunk@41458 -
2019-02-25 11:27:54 +00:00
yury
a277a5f8db * Removed unused local vars.
git-svn-id: trunk@41457 -
2019-02-25 11:22:49 +00:00
Mattias Gaertner
c987aa77f9 fcl-passrc: fixed inherited create on abstract class
git-svn-id: trunk@41456 -
2019-02-25 11:16:49 +00:00
pierre
57ee0dd00a Fix fullcycle/fullinstall by adding missing armgen directory -Fu option if PPC_TARGET is armeb
git-svn-id: trunk@41455 -
2019-02-24 22:20:35 +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
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
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
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