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