Commit Graph

60045 Commits

Author SHA1 Message Date
svenbarth
cda338b893 * check whether there are any elements at all for both TStack<> and TQueue<> before removing any
git-svn-id: trunk@46843 -
2020-09-11 15:46:43 +00:00
svenbarth
6efd9cc93f * fix for Mantis #37609: add support for TryAdd for the TDictionary<,> hierarchy
+ added testcase

git-svn-id: trunk@46839 -
2020-09-11 14:52:21 +00:00
yury
b5abefe03e * Moved spilling of registers which have the initial memory location and are used only once to a stage after coalescing is done. This produces a better code.
git-svn-id: trunk@46836 -
2020-09-11 13:32:18 +00:00
yury
c06744b62b * Include stack location of spilled variables in the assembler output.
git-svn-id: trunk@46835 -
2020-09-11 12:36:31 +00:00
florian
8e74a04dc5 * Xtensa: stack size calculation for the call0 abi fixed
git-svn-id: trunk@46833 -
2020-09-10 20:53:11 +00:00
florian
ddf26cb3d2 * Xtensa: trgcpu.do_spill_op fixed
* cleanup

git-svn-id: trunk@46820 -
2020-09-09 21:08:04 +00:00
florian
27b4f3df60 * Xtensa: taicpu.spilling_get_operation_type improved
git-svn-id: trunk@46819 -
2020-09-09 21:08:03 +00:00
Mattias Gaertner
edd10be1e2 pastojs: docs updated
git-svn-id: trunk@46818 -
2020-09-09 20:40:58 +00:00
Mattias Gaertner
aae5c452cb pastojs: fixed impl rtti
git-svn-id: trunk@46817 -
2020-09-09 20:32:01 +00:00
Mattias Gaertner
02c72dd5c4 pastojs: moved unit implementation js function into unit interface to share local vars
git-svn-id: trunk@46816 -
2020-09-09 19:56:43 +00:00
Károly Balogh
277d98431c * linux: use ugetrlimit syscall on m68k for rlimits retrieval. this fixes fpgetrlimit() call, and stack checking on Linux/m68k (tstack.pp test), at least on anything newer than kernel 2.4+ (2001)
git-svn-id: trunk@46811 -
2020-09-09 15:15:52 +00:00
Károly Balogh
b49aa071ca * linux: fix some formatting in ostypes.inc, no functional change
git-svn-id: trunk@46810 -
2020-09-09 14:58:45 +00:00
Mattias Gaertner
0f466cbed7 fcl-passrc: fixed compile with pas2js
git-svn-id: trunk@46809 -
2020-09-09 11:43:57 +00:00
Mattias Gaertner
13c10cc622 fcl-passrc: fixed compile with pas2js
git-svn-id: trunk@46808 -
2020-09-09 11:40:53 +00:00
Mattias Gaertner
342771c0c7 pastojs: fixed create pascal class descendent from a pascal class descendent of a JS function
git-svn-id: trunk@46807 -
2020-09-09 11:24:56 +00:00
Mattias Gaertner
9d3daca70c pastojs: pass impl uses as [] instead of null
git-svn-id: trunk@46806 -
2020-09-09 10:54:26 +00:00
Mattias Gaertner
1d3ea62674 pastojs: renamed aliasglobals to jsaliasglobals
git-svn-id: trunk@46805 -
2020-09-09 10:39:29 +00:00
florian
c8f592d260 * RiscV32: corrected tcpuparamanager.getcgtempparaloc, resolves #37709
* cleanup

git-svn-id: trunk@46803 -
2020-09-08 20:30:59 +00:00
yury
d34168742e * Fixed r46801 for the case of int64 params with a single paralocation.
git-svn-id: trunk@46802 -
2020-09-08 20:17:50 +00:00
yury
e159c92967 * Do not use stack parameter location for spilling if its size is less than the register size for all CPU targets except x86.
git-svn-id: trunk@46801 -
2020-09-08 18:50:58 +00:00
florian
93eef547ae * improve call0 calling conventions
git-svn-id: trunk@46797 -
2020-09-07 20:28:38 +00:00
Mattias Gaertner
ce9d7f9995 pastojs: specialize procedure using pascal name
git-svn-id: trunk@46796 -
2020-09-07 19:44:04 +00:00
Mattias Gaertner
2f661371fe pastojs: specialize class/record type using pascal name
git-svn-id: trunk@46795 -
2020-09-07 17:21:15 +00:00
yury
60c23daa91 * Fixed the stack parameters optimization (r46776) for big endian CPUs.
git-svn-id: trunk@46794 -
2020-09-07 12:54:20 +00:00
Mattias Gaertner
e50916a93c pastojs: specialize array type using pascal name
git-svn-id: trunk@46793 -
2020-09-07 12:24:19 +00:00
Mattias Gaertner
a577fa3e58 pastojs: specialized procedure type RTTI now uses pascal name
git-svn-id: trunk@46792 -
2020-09-07 11:10:40 +00:00
Mattias Gaertner
7159e63614 pastojs: using pascal names for RTTI
git-svn-id: trunk@46791 -
2020-09-07 10:53:13 +00:00
florian
cdf1f710e5 + C objects for for xtensa-freertos with call0 abi, build with:
make create_c_objects TEST_CCOMPILER=xtensa-lx106-elf-gcc TEST_ABI=call0 TEST_FPC=fpc TEST_CPU_TARGET=xtensa TEST_OS_TARGET=freertos "TEST_CFLAGS=-O3 -mlongcalls"

    using xtensa-lx106-elf-gcc (crosstool-NG crosstool-ng-1.22.0-100-ge567ec7) 5.2.0

git-svn-id: trunk@46790 -
2020-09-06 20:23:25 +00:00
florian
02df628399 * regenerated
git-svn-id: trunk@46789 -
2020-09-06 20:23:23 +00:00
florian
323b3b5d2b + create directory for C objects if needed
git-svn-id: trunk@46788 -
2020-09-06 20:23:22 +00:00
Mattias Gaertner
43aa4c6b40 pastojs: override specialize name
git-svn-id: trunk@46787 -
2020-09-06 09:06:30 +00:00
Mattias Gaertner
f3579bf526 fcl-passrc: resolver specialize name with params
git-svn-id: trunk@46786 -
2020-09-06 09:06:03 +00:00
florian
9337b2a3ac * Xtensa: handle references with offset only properly
git-svn-id: trunk@46784 -
2020-09-05 20:25:32 +00:00
florian
243300c85f * more ABI compliant parameter passing
git-svn-id: trunk@46783 -
2020-09-05 20:25:31 +00:00
florian
aea85fcd66 * Xtensa-freeRTOS: fix linking against libc
git-svn-id: trunk@46782 -
2020-09-05 20:25:30 +00:00
florian
8ef6372340 * Xtensa: tcgcpu.g_concatcopy makes use of loop extensions if available
git-svn-id: trunk@46781 -
2020-09-05 20:25:29 +00:00
florian
451bb09e8f * Xtensa: tcgcpu.g_concatcopy uses OC_NE so the branch requires one instruction less
git-svn-id: trunk@46780 -
2020-09-05 20:25:28 +00:00
florian
1edf99c324 * Xtensa: tcpuunaryminusnode.second_float fixed for double
git-svn-id: trunk@46779 -
2020-09-05 20:25:28 +00:00
Jonas Maebe
97bf6d6677 * fix formatfloat for 0 in exponential format (based on patch by
Jamie Philbrook, mantis #37374)

git-svn-id: trunk@46778 -
2020-09-05 18:44:57 +00:00
yury
71fcb74e95 * Fixed r46776: With -O3 do not "coalesce" spilled nodes if the initial location is set.
git-svn-id: trunk@46777 -
2020-09-05 18:39:09 +00:00
yury
c2dc342c55 * Use the initial location of stack parameters as a spilling location if spilling is needed. This leads to the following optimizations:
- no spill temp is allocated;
  - no load of a stack parameter to a spill temp;
  - if a stack parameter is used only once do not preload it to a register. The parameter can be accessed directly in the stack if the target CPU supports this.

git-svn-id: trunk@46776 -
2020-09-05 18:20:18 +00:00
yury
acef1e22d3 * Improved output of spilling statistics:
- Do not use count_uses, since weight already represents a usage count of a register.
  - Do not count spills of registers with weight less than 100.

git-svn-id: trunk@46775 -
2020-09-05 16:06:41 +00:00
Jonas Maebe
23956e9f10 * prevent quadratic complexity in the size of the inheritance chain when
comparing objectdefs for equality

git-svn-id: trunk@46774 -
2020-09-05 12:25:13 +00:00
Jonas Maebe
cc315e0ac7 * fix tw3930 after r37927
o "unique" class (and interface) type aliases should actually not exist at
     all except for overload resolution. All the rest (VMT, UUID, RTTI, ...)
     should be taken from the aliased class/interface
   o there is one Delphi-incompatibily left after this change, but it shouldn't
     matter: tw8180 does not compile if you change the declaration to
     "tcl=class(TInterfacedObject,XStr,iinterface)", while Kylix does compile
     that. It doesn't really matter though, because in Kylix this actually
     adds iinterface twice as implemented interface, so there is no point
     in accepting this.

git-svn-id: trunk@46773 -
2020-09-05 12:25:09 +00:00
Mattias Gaertner
c45e56bc91 pastojs: specializations: create initSpec for class/record only if typeinfo or global field exists
git-svn-id: trunk@46772 -
2020-09-05 11:52:44 +00:00
florian
965f759c0d * Xtensa: arrays are always passed as by reference but still returned in up to 4 registers
git-svn-id: trunk@46770 -
2020-09-04 20:58:14 +00:00
Mattias Gaertner
6c8b0614b1 pastojs: specializations: create initSpec if params need it
git-svn-id: trunk@46769 -
2020-09-04 17:57:19 +00:00
Mattias Gaertner
fc4c48a11c pastojs: override scope class array and proctype
git-svn-id: trunk@46768 -
2020-09-04 17:17:46 +00:00
Mattias Gaertner
9140e9414d fcl-passrc: allow override scope class array and proctype
git-svn-id: trunk@46767 -
2020-09-04 17:17:12 +00:00
svenbarth
b2177fb50e * fix for Mantis #37650: apply adjusted patch by Ryan Joseph do not range check the length of ShortStrings if their length parameter is based on a generic constant
+ added test

git-svn-id: trunk@46766 -
2020-09-04 15:44:23 +00:00