Commit Graph

56834 Commits

Author SHA1 Message Date
svenbarth
9cac24a325 * fix compilation on targets that don't have a RawThunk defined yet
git-svn-id: trunk@42720 -
2019-08-17 15:36:01 +00:00
svenbarth
7d9b249def + add TRttiOrdinalType and TRttiInt64Type (what's left of the "ordinal like" ones is TRttiEnumerationType, TRttiSetType and a non-Delphi compatible TRttiBooleanType (due to FPC supporting multiple Boolean types))
git-svn-id: trunk@42719 -
2019-08-17 15:35:58 +00:00
svenbarth
92c6d166a8 * TRttiFloatType.GetFloatType() can be inline
git-svn-id: trunk@42718 -
2019-08-17 15:35:55 +00:00
svenbarth
8fdee2b3b1 * implement TRttiFloatType.GetTypeSize()
git-svn-id: trunk@42717 -
2019-08-17 15:35:52 +00:00
Mattias Gaertner
8ee413a736 pastojs: skip specialized types
git-svn-id: trunk@42716 -
2019-08-17 13:35:27 +00:00
Mattias Gaertner
4787de8764 fcl-passrc: half specialized type
git-svn-id: trunk@42715 -
2019-08-17 13:35:16 +00:00
Mattias Gaertner
5bf43bd1d4 fcl-passrc: specialize class interface
git-svn-id: trunk@42714 -
2019-08-17 08:29:15 +00:00
florian
f0213a2c46 + make use of the mremap syscall of linux to re-allocate large memory blocks faster
git-svn-id: trunk@42713 -
2019-08-16 20:47:37 +00:00
Mattias Gaertner
880f7d7c1c fcl-passrc: specialize nested class type
git-svn-id: trunk@42712 -
2019-08-16 19:57:55 +00:00
pierre
970ce7f243 Avoid error with -CR option in tobjectdef.vmt_def method
git-svn-id: trunk@42711 -
2019-08-16 16:31:08 +00:00
svenbarth
16f47fbee3 * explicitely ignore the TestIntfMethods test if TVirtualInterface is not supported
git-svn-id: trunk@42710 -
2019-08-16 15:43:09 +00:00
svenbarth
95b60bc6b2 * switch TVirtualInterface to using thunks for QueryInterface, _AddRef and _Release as otherwise _Release will execute code that's no longer valid (it's also a bit more performant ;) )
Note: this is currently i386 only, x86_64 needs to be switched as well and thus TVirtualInterface.Create will raise a ENotImplemented there

git-svn-id: trunk@42709 -
2019-08-16 15:43:07 +00:00
svenbarth
2c4d7b6316 * implement a infrastructure for method thunks (these first adjust Self and then jump to the specified address)
git-svn-id: trunk@42708 -
2019-08-16 15:43:04 +00:00
florian
ba203c0564 + x86 makes use of fpu_capabilities
* moved CPUX86_HAS_AVXUNIT to FPUX86_HAS_AVXUNIT
+ mm register allocator can be initialized with 32 mm registers of AVX512

git-svn-id: trunk@42707 -
2019-08-16 11:35:03 +00:00
tg74
aa9c00193a Merge in trunk
git-svn-id: branches/tg74/avx512merge@42706 -
2019-08-16 08:17:38 +00:00
Mattias Gaertner
497c830603 fcl-passrc: check used unit reference for duplicate, in case unit is found via different names
git-svn-id: trunk@42704 -
2019-08-16 07:28:09 +00:00
Mattias Gaertner
8ad47efcb3 fcl-passrc: specialize class with nested record type
git-svn-id: trunk@42703 -
2019-08-16 06:48:12 +00:00
Mattias Gaertner
32573139a8 fcl-passrc: specialize inlinespecializeexpr
git-svn-id: trunk@42702 -
2019-08-15 17:25:12 +00:00
svenbarth
0e79bd2c70 + add a test that ensures that the introduction of fullscale array constructors didn't mess with array constructors passed to an open array of Variant
git-svn-id: trunk@42701 -
2019-08-15 14:33:03 +00:00
svenbarth
44bfa98a30 * fix for Mantis #35955: when the element of an array constructer requires an operator for conversion we don't let the caller of compare_defs_ext know that, instead we simply say that some conversion is required and let the typecheck handler deal with the element wise conversion
+ added test

git-svn-id: trunk@42700 -
2019-08-15 14:33:00 +00:00
svenbarth
663040a666 * ensure that aprocdef is initialized to Nil to catch problems with compare_defs_ext() easier
git-svn-id: trunk@42699 -
2019-08-15 14:32:57 +00:00
svenbarth
10af6fe2fb * fix for Mantis #35965: correct alignment also for the class info used to retrieve the unit name
+ added test

git-svn-id: trunk@42697 -
2019-08-15 13:29:19 +00:00
svenbarth
aa0422b2ed * fix for Mantis #35964: reestablish pre r42594 behavior for WinCE as at least Windows Mobile does not support the required COM functions
Note: in theory Windows CE *can* support these functions, but it dependends on the provider whether they're indeed supported (e.g. Windows Mobile does not). Probably this should be revisited once we support the "delayed" directive.

git-svn-id: trunk@42696 -
2019-08-15 11:41:36 +00:00
Jonas Maebe
03cd0cce59 * change result of pi function from ansistring into dynamic array, so we
generate unique calls every time we write to it
  * replace calls to high(ansistring/dynarray) in the inner body of the pi
    function with a variable that gets assigned once
  -> the FPC version is now just as fast as the C version

git-svn-id: trunk@42695 -
2019-08-15 10:32:36 +00:00
florian
45847da693 * fix building for targets with no vfp support
git-svn-id: trunk@42693 -
2019-08-15 09:37:50 +00:00
pierre
f82cc96cb9 Check that inserttypeconv really change node type to ttypeconvnode before setting convtype field (should fix taddbool.pp bytebool failure on powerpc)
git-svn-id: trunk@42692 -
2019-08-14 23:00:35 +00:00
nickysn
81fba52adb + added constant NewExeRelocationRecordSize
git-svn-id: trunk@42691 -
2019-08-14 15:10:22 +00:00
Mattias Gaertner
35d7fade97 fcl-passrc: replace method impl arguments with intf arguments
git-svn-id: trunk@42690 -
2019-08-14 12:38:06 +00:00
Mattias Gaertner
55b1f676dc pastojs: fixed tests
git-svn-id: trunk@42689 -
2019-08-14 10:44:36 +00:00
Mattias Gaertner
b4b6efc5a0 fcl-passrc: check forward generic class constraints match
git-svn-id: trunk@42688 -
2019-08-14 10:42:16 +00:00
nickysn
71df2911da * fixed compilation with -Sew
git-svn-id: trunk@42687 -
2019-08-14 02:19:26 +00:00
nickysn
0224d632f1 + added and implemented method TNewExeRelocation.EncodeTo
git-svn-id: trunk@42686 -
2019-08-14 02:14:02 +00:00
florian
3a1ecd4f16 * fix tarminlinenode.first_sqrt_real
git-svn-id: trunk@42685 -
2019-08-13 22:12:53 +00:00
florian
0a0397c9f5 * forgotten part of previous commit: fix BccB2Cond optimization on arm
git-svn-id: trunk@42684 -
2019-08-13 22:12:52 +00:00
florian
ba0768b6a6 * building with -Cfvfpv2 hopefully fixed
git-svn-id: trunk@42683 -
2019-08-13 22:12:52 +00:00
florian
867df5362c + basic Neon support in the assembler writer
+ make use of VEOR if possible to clear VFP registers

git-svn-id: trunk@42682 -
2019-08-13 22:12:51 +00:00
florian
c418d63c16 + create defines with FPU capabilites
+ make use of FPU capability defines in the rtl

git-svn-id: trunk@42681 -
2019-08-13 22:12:49 +00:00
Mattias Gaertner
10ffed0528 fcl-passrc: specialize try-except
git-svn-id: trunk@42680 -
2019-08-13 19:43:05 +00:00
florian
85edf1c1eb * reworked arm vfp capability handling to use fpu_capabilites
git-svn-id: trunk@42679 -
2019-08-13 18:41:15 +00:00
Mattias Gaertner
3ddefe999e fcl-passrc: specialize procedure type
git-svn-id: trunk@42678 -
2019-08-13 17:47:31 +00:00
nickysn
5d8078f666 + added class, representing a NewExe relocation entry
git-svn-id: trunk@42677 -
2019-08-13 14:59:55 +00:00
florian
fd70fcace6 * fix BccB2Cond optimization on arm
git-svn-id: trunk@42676 -
2019-08-13 10:07:30 +00:00
florian
46b4f91175 * compilation on i386-linux fixed
git-svn-id: trunk@42675 -
2019-08-13 09:45:13 +00:00
florian
413beee9ae -- Zusammenführen von r42652 bis r42673 in ».«:
U    compiler/x86/aasmcpu.pas
-- Aufzeichnung der Informationen für Zusammenführung von r42652 bis r42673 in ».«:
 U   .

git-svn-id: trunk@42674 -
2019-08-13 08:54:47 +00:00
sergei
416c974d3f * x86_64: Fixed code generation for try..finally blocks, so that exit label from inner try..finally stays within scope of procedure's implicit try..finally block if one is present. Mantis #34772.
git-svn-id: trunk@42673 -
2019-08-13 08:29:28 +00:00
lacak
59f186e7b7 fcl-db: base: cosmetic (char-case)
git-svn-id: trunk@42672 -
2019-08-13 07:31:12 +00:00
lacak
04e6c5c858 fcl-db: tests: small improvement (change order of tests; first test native field type, after that string representation)
git-svn-id: trunk@42671 -
2019-08-13 07:28:26 +00:00
pierre
36bc9b726e Reduce cpu-os dependency on real constant printout by using system.str
git-svn-id: trunk@42670 -
2019-08-13 06:20:23 +00:00
Mattias Gaertner
3c9732cd3b fcl-passrc: specialize generic array
git-svn-id: trunk@42669 -
2019-08-12 23:20:35 +00:00
florian
f23f3a4c5e * enable TCpuAsmOptimizer.RemoveSuperfluousVMov for VLDR
* fixed TCpuAsmOptimizer.RemoveSuperfluousVMov to be actually applied

git-svn-id: trunk@42668 -
2019-08-12 21:25:30 +00:00