------------------------------------------------------------------------
r39725 | pierre | 2018-09-10 13:28:33 +0000 (Mon, 10 Sep 2018) | 1 line
Add branches for 3.2.0, 3.2.1 and 3.3.1 versions
------------------------------------------------------------------------
--- Merging r39725 into '.':
U tests/utils/testsuite/utests.pp
--- Recording mergeinfo for merge of r39725 into '.':
U .
------------------------------------------------------------------------
r39733 | pierre | 2018-09-11 08:16:56 +0000 (Tue, 11 Sep 2018) | 1 line
sparc64-linux objects recompiled with GCC 7.3.0
------------------------------------------------------------------------
--- Merging r39733 into '.':
U tests/test/cg/obj/readme.txt
U tests/test/cg/obj/linux/sparc64/ctest.o
U tests/test/cg/obj/linux/sparc64/cpptcl1.o
U tests/test/cg/obj/linux/sparc64/cpptcl2.o
U tests/test/cg/obj/linux/sparc64/tcext3.o
U tests/test/cg/obj/linux/sparc64/tcext4.o
U tests/test/cg/obj/linux/sparc64/tcext5.o
U tests/test/cg/obj/linux/sparc64/tcext6.o
--- Recording mergeinfo for merge of r39733 into '.':
G .
------------------------------------------------------------------------
r39808 | pierre | 2018-09-26 09:29:33 +0000 (Wed, 26 Sep 2018) | 1 line
Disable libraries not compiling for jvm-java or jvm-android targets
------------------------------------------------------------------------
--- Merging r39808 into '.':
U packages/fppkg/fpmake.pp
U packages/fcl-base/fpmake.pp
U packages/rtl-extra/fpmake.pp
U packages/hermes/fpmake.pp
U packages/fcl-extra/fpmake.pp
U packages/fcl-db/fpmake.pp
U packages/unzip/fpmake.pp
U packages/odbc/fpmake.pp
U packages/gdbm/fpmake.pp
U packages/pthreads/fpmake.pp
U packages/fcl-json/fpmake.pp
U packages/pcap/fpmake.pp
U packages/numlib/fpmake.pp
U packages/rtl-generics/fpmake.pp
U packages/zlib/fpmake.pp
U packages/paszlib/fpmake.pp
U packages/webidl/fpmake.pp
U packages/regexpr/fpmake.pp
U packages/libgd/fpmake.pp
U packages/fcl-net/fpmake.pp
U packages/fcl-res/fpmake.pp
U packages/libpng/fpmake.pp
U packages/dblib/fpmake.pp
U packages/tcl/fpmake.pp
U packages/openssl/fpmake.pp
U packages/ibase/fpmake.pp
U packages/bzip2/fpmake.pp
U packages/fcl-sdo/fpmake.pp
U packages/fcl-sound/fpmake.pp
U packages/fcl-passrc/fpmake.pp
U packages/fcl-stl/fpmake.pp
U packages/libmicrohttpd/fpmake.pp
U packages/mysql/fpmake.pp
U packages/postgres/fpmake.pp
U packages/httpd22/fpmake.pp
U packages/httpd24/fpmake.pp
U packages/rtl-console/fpmake.pp
U packages/sqlite/fpmake.pp
U packages/fftw/fpmake.pp
U packages/fcl-pdf/fpmake.pp
U packages/rtl-objpas/fpmake.pp
U packages/fcl-image/fpmake.pp
U packages/pasjpeg/fpmake.pp
U packages/chm/fpmake.pp
U packages/fcl-registry/fpmake.pp
U packages/libtar/fpmake.pp
U packages/symbolic/fpmake.pp
U packages/libenet/fpmake.pp
U packages/imagemagick/fpmake.pp
U packages/fcl-xml/fpmake.pp
U packages/oracle/fpmake.pp
U packages/fcl-fpcunit/fpmake.pp
U packages/fcl-js/fpmake.pp
U packages/fcl-async/fpmake.pp
U packages/fcl-process/fpmake.pp
U packages/pastojs/fpmake.pp
U packages/hash/fpmake.pp
U packages/rtl-unicode/fpmake.pp
U packages/fpmkunit/fpmake.pp
--- Recording mergeinfo for merge of r39808 into '.':
G .
------------------------------------------------------------------------
r40027 | pierre | 2018-10-24 21:37:54 +0000 (Wed, 24 Oct 2018) | 1 line
Fix compilation of RTL for watcom target
------------------------------------------------------------------------
--- Merging r40027 into '.':
U compiler/x86/agx86int.pas
--- Recording mergeinfo for merge of r40027 into '.':
G .
------------------------------------------------------------------------
r40028 | pierre | 2018-10-25 06:39:42 +0000 (Thu, 25 Oct 2018) | 1 line
Try to fix compilation error after commit #40027
------------------------------------------------------------------------
--- Merging r40028 into '.':
G compiler/x86/agx86int.pas
--- Recording mergeinfo for merge of r40028 into '.':
G .
------------------------------------------------------------------------
r40102 | pierre | 2018-10-31 09:07:57 +0000 (Wed, 31 Oct 2018) | 1 line
Replace aint (which is a compiler specific type) by ptruint type, which is defined in system unit
------------------------------------------------------------------------
--- Merging r40102 into '.':
U tests/test/tarray5.pp
--- Recording mergeinfo for merge of r40102 into '.':
G .
------------------------------------------------------------------------
r40103 | pierre | 2018-10-31 09:59:45 +0000 (Wed, 31 Oct 2018) | 1 line
Use pdword to avoid range check erro in tentryfile.getdword method
------------------------------------------------------------------------
--- Merging r40103 into '.':
U compiler/entfile.pas
--- Recording mergeinfo for merge of r40103 into '.':
G .
------------------------------------------------------------------------
r40104 | pierre | 2018-10-31 10:21:51 +0000 (Wed, 31 Oct 2018) | 1 line
Use longint type instead of AWord for Initial parameter in CalcExecutionWeigths (to avoid range error for avr compiler)
------------------------------------------------------------------------
@@
begin
Result:=fen_false;
n.allocoptinfo;
<<<<<<< MINE (select with 'mc') (367)
Weight:=PAWord(arg)^;
||||||| ORIGINAL (367)
Weight:=max(PAWord(arg)^,1);
=======
Weight:=max(plongint(arg)^,1);
>>>>>>> THEIRS (select with 'tc') (367)
case n.nodetype of
casen:
begin
--- Merging r40104 into '.':
C compiler/optutils.pas
--- Recording mergeinfo for merge of r40104 into '.':
G .
Summary of conflicts:
Text conflicts: 1
------------------------------------------------------------------------
r40110 | pierre | 2018-10-31 14:51:23 +0000 (Wed, 31 Oct 2018) | 1 line
Avoid range check error in MaskLength evaluation
------------------------------------------------------------------------
--- Merging r40110 into '.':
U compiler/x86/aoptx86.pas
--- Recording mergeinfo for merge of r40110 into '.':
G .
------------------------------------------------------------------------
r40111 | pierre | 2018-10-31 15:47:53 +0000 (Wed, 31 Oct 2018) | 1 line
Complement commit 40104, by changing type of executionweight in toptinfo record and adapt pass_2 code
------------------------------------------------------------------------
--- Merging r40111 into '.':
U compiler/pass_2.pas
U compiler/optbase.pas
--- Recording mergeinfo for merge of r40111 into '.':
G .
------------------------------------------------------------------------
r40112 | pierre | 2018-10-31 15:48:32 +0000 (Wed, 31 Oct 2018) | 1 line
Disable range check completely in arm/cgcpu unit
------------------------------------------------------------------------
--- Merging r40112 into '.':
U compiler/arm/cgcpu.pas
--- Recording mergeinfo for merge of r40112 into '.':
G .
------------------------------------------------------------------------
r40113 | pierre | 2018-10-31 15:49:14 +0000 (Wed, 31 Oct 2018) | 1 line
Avoid overflow in code
------------------------------------------------------------------------
--- Merging r40113 into '.':
U compiler/symdef.pas
--- Recording mergeinfo for merge of r40113 into '.':
G .
------------------------------------------------------------------------
r40114 | pierre | 2018-10-31 15:50:26 +0000 (Wed, 31 Oct 2018) | 1 line
Add explicit rtlclean/rtl targets in fullcycle rule if DOWPOCYCLE is set
------------------------------------------------------------------------
--- Merging r40114 into '.':
U compiler/Makefile.fpc
U compiler/Makefile
--- Recording mergeinfo for merge of r40114 into '.':
G .
------------------------------------------------------------------------
r40120 | pierre | 2018-10-31 23:15:22 +0000 (Wed, 31 Oct 2018) | 1 line
Change RemoveCurrentP parameter type to tai, because GetNextInstruction does not always return a taicpu, adapt code in avr/aoptcpu unit
------------------------------------------------------------------------
--- Merging r40120 into '.':
U compiler/aoptobj.pas
U compiler/avr/aoptcpu.pas
--- Recording mergeinfo for merge of r40120 into '.':
G .
------------------------------------------------------------------------
r40121 | pierre | 2018-10-31 23:16:51 +0000 (Wed, 31 Oct 2018) | 1 line
Add check about tloadnode.symtableentry type before typecast
------------------------------------------------------------------------
--- Merging r40121 into '.':
U compiler/ncal.pas
--- Recording mergeinfo for merge of r40121 into '.':
G .
------------------------------------------------------------------------
r40122 | pierre | 2018-10-31 23:18:09 +0000 (Wed, 31 Oct 2018) | 1 line
Fix typecast in FindRegDeAlloc call
------------------------------------------------------------------------
--- Merging r40122 into '.':
U compiler/arm/aoptcpu.pas
--- Recording mergeinfo for merge of r40122 into '.':
G .
------------------------------------------------------------------------
r40123 | pierre | 2018-10-31 23:19:39 +0000 (Wed, 31 Oct 2018) | 1 line
Remove unneeded typecasts in TryTOptimizeMove
------------------------------------------------------------------------
--- Merging r40123 into '.':
U compiler/m68k/aoptcpu.pas
--- Recording mergeinfo for merge of r40123 into '.':
G .
------------------------------------------------------------------------
r40124 | pierre | 2018-10-31 23:20:29 +0000 (Wed, 31 Oct 2018) | 1 line
Add global range check disable for i8086 cgcpu and x86 nx86add units
------------------------------------------------------------------------
--- Merging r40124 into '.':
U compiler/i8086/cgcpu.pas
U compiler/x86/nx86add.pas
--- Recording mergeinfo for merge of r40124 into '.':
G .
------------------------------------------------------------------------
r40131 | pierre | 2018-11-01 07:01:02 +0000 (Thu, 01 Nov 2018) | 1 line
Remove another wrong typecast when testing that a tai is an instruction
------------------------------------------------------------------------
--- Merging r40131 into '.':
G compiler/m68k/aoptcpu.pas
--- Recording mergeinfo for merge of r40131 into '.':
G .
------------------------------------------------------------------------
r40236 | pierre | 2018-11-06 07:40:31 +0000 (Tue, 06 Nov 2018) | 1 line
Really change extension of hs1 local variable in get_exepath
------------------------------------------------------------------------
--- Merging r40236 into '.':
U compiler/globals.pas
--- Recording mergeinfo for merge of r40236 into '.':
G .
------------------------------------------------------------------------
r40237 | pierre | 2018-11-06 07:41:15 +0000 (Tue, 06 Nov 2018) | 1 line
Disable range checking in rax86int unit
------------------------------------------------------------------------
--- Merging r40237 into '.':
U compiler/x86/rax86int.pas
--- Recording mergeinfo for merge of r40237 into '.':
G .
------------------------------------------------------------------------
r40278 | pierre | 2018-11-08 20:19:54 +0000 (Thu, 08 Nov 2018) | 1 line
Downgrade EXTDEBUG warning to note about zero size temp, as it is used for empty sets
------------------------------------------------------------------------
--- Merging r40278 into '.':
U compiler/tgobj.pas
--- Recording mergeinfo for merge of r40278 into '.':
G .
git-svn-id: branches/fixes_3_2@40624 -
so that they can still be freed after the reference has been changed
(e.g. in case of array indexing or record field accesses) (mantis #33628)
git-svn-id: trunk@38814 -
* compinnr.inc include file converted to a unit
* inline number field size stored in ppu increased from byte to longint
* inlines in the parse tree (when written with the -vp option) now printed with
their enum name, instead of number
git-svn-id: trunk@36174 -
o separate information for reading and writing, because e.g. in a
try-block, only the writes to local variables and parameters are
volatile (they have to be committed immediately in case the next
instruction causes an exception)
o for now, only references to absolute memory addresses are marked
as volatile
o the volatily information is (should be) properly maintained throughout
all code generators for all archictures with this patch
o no optimizers or other compiler infrastructure uses the volatility
information yet
o this functionality is not (yet) exposed at the language level, it
is only for internal code generator use right now
git-svn-id: trunk@34996 -
* Improved peephole optimizer to remove these instructions if preceded by flag-setting instruction that operates on same location and followed by conditional jump, and change them back into "test %reg,%reg" otherwise.
git-svn-id: trunk@27617 -
- use FSTSW instead of FNSTSW
- insert a FWAIT after the FSTSW, because the value is immediately loaded
afterwards by the integer unit of the CPU
git-svn-id: trunk@26110 -
future use by high level code generator targets
o this in turn required that all a_load*_loc* methods are called via
hlcg rather than via cg, since a location can be a subsetref/reg and
and those are no longer handled in tcg
o that then required moving several force_location_* routines into
thlcg because they use a_load_loc*, but did not take tdef size
parameters (which are required by the thlcg a_load_loc* routines)
o the only practical consequence is that from now on, you have to
use hlcg.location_force_mem/reg() (fpureg not yet) and
hlcg.gen_load_loc_cgpara() instead of the removed versions from ncgutil,
and hlcg.a_load*loc*() instead of cg.a_load*loc* if a subsetref/reg
might be involved
git-svn-id: trunk@21287 -
+ RTL support:
o VFP exceptions are disabled by default on Darwin,
because they cause kernel panics on iPhoneOS 2.2.1 at least
o all denormals are truncated to 0 on Darwin, because disabling
that also causes kernel panics on iPhoneOS 2.2.1 (probably
because otherwise denormals can also cause exceptions)
* set softfloat rounding mode correctly for non-wince/darwin/vfp
targets
+ compiler support: only half the number of single precision
registers is available due to limitations of the register
allocator
+ added a number of comments about why the stackframe on ARM is
set up the way it is by the compiler
+ added regtype and subregtype info to regsets, because they're
also used for VFP registers (+ support in assembler reader)
+ various generic support routines for dealing with floating point
values located in integer registers that have to be transferred to
mm registers (needed for VFP)
* renamed use_sse() to use_vectorfpu() and also use it for
ARM/vfp support
o only superficially tested for Linux (compiler compiled with -Cpvfpv6
-Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least
the fpu exception handler still needs to be implemented), Darwin has
been tested more thoroughly
+ added ARMv6 cpu type and made it default for Darwin/ARM
+ ARMv6+ implementations of atomic operations using ldrex/strex
* don't use r9 on Darwin/ARM, as it's reserved under certain
circumstances (don't know yet which ones)
* changed C-test object files for ARM/Darwin to ARMv6 versions
* check in assembler reader that regsets are not empty, because
instructions with a regset operand have undefined behaviour in that
case
* fixed resultdef of tarmtypeconvnode.first_int_to_real in case of
int64->single type conversion
* fixed constant pool locations in case 64 bit constants are generated,
and/or when vfp instructions with limited reach are present
WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all
code with -Cparmv6 (or higher), or you will get crashes. The reason is
that storing/restoring multiple VFP registers must happen using
different instructions on pre/post-ARMv6.
git-svn-id: trunk@14317 -
the syntax is exactly the same as for "external", except for
the keyword. It is currently only active for Darwin targets.
It should also work at least for Linux targets, but only with
the GNU assembler (which is why it is not activated there)
+ test for this functionality
git-svn-id: trunk@12009 -
a) cpu64bitaddr, which means that we are generating a compiler which
will generate code for targets with a 64 bit address space/abi
b) cpu64bitalu, which means that we are generating a compiler which
will generate code for a cpu with support for 64 bit integer
operations (possibly running in a 32 bit address space, depending
on the cpu64bitaddr define)
All cpus which had cpu64bit set now have both the above defines set,
and none of the 32 bit cpus have cpu64bitalu set (and none will
compile with it currently)
+ pint and puint types, similar to aint/aword (not pword because that
that conflicts with pword=^word)
* several changes from aint/aword to pint/pword
* some changes of tcgsize2size[OS_INT] to sizeof(pint)
git-svn-id: trunk@10320 -
* removed addr_pic again for darwin, as you have to explicitly code
the relative address using a relsym instead of using an assembler
directive like @GOT there
git-svn-id: trunk@9353 -