..
aarch64
* use simpler FMOV instead of UMOV
2022-08-03 22:42:25 +02:00
arm
* arm/a64: New sbfx/ubfx -> mov optimisation
2022-07-30 18:36:16 +00:00
armgen
* a64: Updated debug messages to follow standard.
2022-07-30 18:36:16 +00:00
avr
Increase reference count of jump label, fixes #39784
2022-06-18 12:28:36 +00:00
generic
* cleanup of 2.7.0 defines
2021-10-31 13:20:28 +01:00
html
i386
* x86: Fixed minor logic bug in aoc_ForceNewIteration check where UpdateUsedRegs was called at the wrong time.
2022-07-27 16:26:07 +01:00
i8086
* extend tabstractprocdef.getcopyas by a parameter to control whether the copy should be registered or not
2022-05-26 21:42:59 +02:00
jvm
* spelling fixes
2022-08-04 23:01:35 +02:00
llvm
llvm: llvm/clang 15.0 support
2022-07-28 22:59:13 +02:00
m68k
m68k: add a CPU capability to signal the CPU has no 48 bit encodiing limits
2022-08-26 18:42:24 +02:00
mips
* handle also simulated flags in tmipselnotnode.second_boolean, resolves #39877
2022-08-24 21:16:23 +02:00
msg
do not publish enums with jumps
2022-08-16 20:47:44 +02:00
powerpc
Fix compilation of 32-bit powerpc compiler
2022-06-03 11:45:36 -07:00
powerpc64
Add several increfs to avoid troubles on AIX target OS
2022-06-03 11:28:15 -07:00
ppcgen
Add several increfs to avoid troubles on AIX target OS
2022-06-03 11:28:15 -07:00
riscv
* RiscV: generate mret only for FreeRTOS and Embedded
2022-07-20 22:16:19 +02:00
riscv32
* Riscv32 and Riscv64 on linux: enable safecall support
2022-07-22 22:56:21 +02:00
riscv64
* Riscv32 and Riscv64 on linux: enable safecall support
2022-07-22 22:56:21 +02:00
sparc
* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
2022-03-08 23:03:18 +01:00
sparc64
* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
2022-03-08 23:03:18 +01:00
sparcgen
Fix compilation of sparc compiler with -dDEBUG_ALL_OPT
2022-05-31 11:47:24 +00:00
systems
Fix searching of gstrip binary in cross-environment for solaris OS target
2022-08-02 17:52:19 +02:00
utils
LLVM backend: address sanitizer support
2022-07-06 22:26:13 +02:00
wasm32
* WebAssembly high level code generator: use the global.get and global.set
2022-07-26 02:13:09 +03:00
x86
* x86: Improved unsigned integer division for when BMI2 is available.
2022-08-26 18:04:32 +00:00
x86_64
* spelling fixes
2022-08-04 23:01:35 +02:00
xtensa
* cleanup: cs_opt_loopunroll is a generic optimization for a long time already
2022-03-08 23:03:18 +01:00
z80
* reset written source lines once a section is encountered
2022-05-26 21:43:35 +02:00
aasmbase.pas
* Corrected label reference counts caused by TAsmLabel.GetName incrementing refs
2022-05-14 18:57:05 +00:00
aasmcfi.pas
aasmcnst.pas
ttai_typedconstbuilder: do not remove tcalo_vectorized_dead_strip_item
2022-07-06 22:25:05 +02:00
aasmdata.pas
llvmdbg: build hashtable to lookup llvmdecl belonging to a global variable
2022-05-21 22:32:35 +02:00
aasmdef.pas
aasmsym.pas
aasmtai.pas
Mark .noinit section with nobits flag.
2022-08-14 19:31:21 +00:00
aggas.pas
+ declare user-defined wasm globals in the llvm-mc assembly output
2022-07-25 05:35:00 +03:00
aopt.pas
* do not remove register deallocations/allocation pairs if the register is written
2021-04-06 19:16:17 +00:00
aoptbase.pas
aoptda.pas
aoptobj.pas
* x86: New jump/label tracking in CrossJump optimisations
2022-04-24 16:42:35 +00:00
aoptutils.pas
* patch by J. Gareth Moreton: x86 JccMovJmpMov2MovSetcc improvement, resolves #38761
2021-05-26 21:03:56 +00:00
assemble.pas
+ add method ResetSourceLines to TExternalAssembler to reset already written lines
2022-05-26 21:43:35 +02:00
blockutl.pas
* extend tabstractprocdef.getcopyas by a parameter to control whether the copy should be registered or not
2022-05-26 21:42:59 +02:00
browcol.pas
catch.pas
ccharset.pas
cclasses.pas
Allocate THashSet item and its key together when FOwnKeys=true.
2022-01-21 22:13:39 +01:00
cepiktimer.pas
cfidwarf.pas
* Always generate CFI-information. During linking it can be omitted when
2022-07-10 12:24:18 +02:00
cfileutl.pas
cg64f32.pas
- Bug fix to new ADD/SUB optimisation where conditions are concerned
2021-11-17 20:18:57 +00:00
cgbase.pas
+ introduced trefaddr.addr_got_tls, to be used for generating WebAssembly threadvar access, when WASM multithreading is turned on
2022-07-14 00:28:03 +03:00
cgexcept.pas
* fix LLVM after r48828
2021-02-27 22:07:58 +00:00
cghlcpu.pas
cgobj.pas
JccAdd2SetccAdd modified to make use of GetIntRegisterBetween
2022-01-08 22:43:41 +00:00
cgutils.pas
* Converted assertion into an internal error
2022-08-20 16:09:54 +00:00
cmsgs.pas
comphook.pas
+ print full file path if -vb is passed even if no line number is known, resolves #39419
2021-10-26 21:37:28 +02:00
compiler.pas
* m68k-sinclairql: fix the inclusion of the target proper
2022-01-25 12:04:49 +01:00
compinnr.pas
comprsrc.pas
* patch by Cyrax: Quote path - which is passed to Windres or alike program, resolves #36526
2022-04-08 22:42:05 +02:00
comptty.pas
+ enable colored output on darwin, resolves #38693
2021-04-01 16:32:52 +00:00
constexp.pas
* revert accidently committed code
2022-02-06 20:15:00 +01:00
COPYING.txt
cprofile.pas
crefs.pas
cresstr.pas
cresstr: fix length specified for resource strings to typed const builder
2022-07-06 22:25:05 +02:00
cscript.pas
Add fForceUseForwardSlash to TLinkRes class, used for vlink linker on hosts using backslashes
2021-04-17 22:17:46 +00:00
cstreams.pas
* patch by Rika to pass some strings by reference, resolves #39338
2021-11-09 22:41:52 +01:00
cutils.pas
+ add a AnsiString based overload of GetToken
2022-06-14 14:32:47 +02:00
dbgbase.pas
LLVM: enable DWARF debug info generation
2022-05-13 22:49:02 +02:00
dbgcodeview.pas
dbgdwarf.pas
* handle absolute on strings correctly for dwarf debug info, resolves #39816
2022-07-05 23:04:57 +02:00
dbgdwarfconst.pas
* moved a bunch of constants from dbgdwarf to dbgdwarfconst
2022-05-13 22:49:02 +02:00
dbgstabs.pas
* spelling fixes
2022-08-04 23:01:35 +02:00
dbgstabx.pas
defcmp.pas
* fix #39740 : consider a conversion of a procedure or procedure variable to a function reference as a bit more expensive than otherwise
2022-05-31 22:50:14 +02:00
defutil.pas
defutil: new is_address() helper
2022-06-12 11:45:31 +02:00
dirparse.pas
dwarfbase.pas
elfbase.pas
entfile.pas
+ some basic stuff for MIPS64
2022-02-05 23:25:31 +01:00
export.pas
expunix.pas
finput.pas
fmodule.pas
+ add support for forward declarations of generic classes and interfaces (any implicit pointer type really); fixes #34128
2022-02-18 17:54:23 +01:00
fpcdefs.inc
* Riscv32 and Riscv64 on linux: enable safecall support
2022-07-22 22:56:21 +02:00
fpchash.pas
o based on a patch by Rika, resolves #39401 :
2021-10-10 10:09:22 +02:00
fpcp.pas
fpkg.pas
fppu.pas
+ added check whether PPU and program are compiled in the same WebAssembly
2022-06-21 23:12:28 +03:00
gendef.pas
globals.pas
Revert " * patch by Rika: This speeds up DefaultReplacements by a lot (order of magnitude or so), resolves #39722 "
2022-08-19 11:59:50 +02:00
globstat.pas
globtype.pas
llvm: support for getting the llvm rtl (rt) architecture name
2022-07-24 14:36:13 +02:00
hlcg2ll.pas
* do not copy parameters onto the stack using FPU registers if the type is
2022-02-10 22:42:49 +01:00
hlcgobj.pas
+ handle LOC_FLAGS in thlcgobj.location_force_mem, resolves #39292
2022-08-08 23:14:56 +02:00
htypechk.pas
* fix #39740 : consider a conversion of a procedure or procedure variable to a function reference as a bit more expensive than otherwise
2022-05-31 22:50:14 +02:00
impdef.pas
import.pas
ldscript.pas
link.pas
llvm: generalised sanitizer linking support
2022-07-24 14:36:23 +02:00
macho.pas
machoutils.pas
Makefile
+ added Risc-V register information file generation to the compiler Makefile
2022-05-31 22:38:30 +02:00
Makefile.fpc
+ added Risc-V register information file generation to the compiler Makefile
2022-05-31 22:38:30 +02:00
MPWMake
Remove unused, obsolete -dBROWSERLOG option
2021-04-22 15:26:15 +00:00
msgidx.inc
do not publish enums with jumps
2022-08-16 20:47:44 +02:00
msgtxt.inc
do not publish enums with jumps
2022-08-16 20:47:44 +02:00
nadd.pas
* don't switch a+/-/sqr(b) into an fma statement if b is too complex
2022-08-27 21:22:16 +02:00
nbas.pas
Revert " * patch by J. Gareth Moreton: Nothing (NOP) node optimisation, resolves #38194 "
2021-09-25 21:02:29 +02:00
ncal.pas
* a function also captures other nested functions when these are called
2022-05-26 21:43:36 +02:00
ncgadd.pas
* MIPS64 can
2022-02-08 23:08:32 +01:00
ncgbas.pas
* Added support for the old Turbo Pascal INLINE(data/data/...) statement.
2021-08-16 00:40:34 +03:00
ncgcal.pas
* overleft cosmetics
2022-03-01 22:55:27 +01:00
ncgcnv.pas
* Patch by J. Gareth "Kit" Moreton (issue #39343 ). Added missing allocation
2021-09-07 19:50:28 +03:00
ncgcon.pas
* patch by Rike: Use reverse_longword instead of manually reversing longword, resolves #39720
2022-05-13 22:38:03 +02:00
ncgflw.pas
* Removed obsolete OLDREGVARS ifdefs.
2021-11-02 17:08:08 +02:00
ncghlmat.pas
ncginl.pas
* High() and Length() for dynamic arrays deal with sizesinttype instead of ossinttype (on AVR the former is 16-bit while the later is 8-bit thus this is an important distinction)
2022-01-18 23:39:31 +01:00
ncgld.pas
* spelling fixes
2022-08-04 23:01:35 +02:00
ncgmat.pas
- Bug fix to new ADD/SUB optimisation where conditions are concerned
2021-11-17 20:18:57 +00:00
ncgmem.pas
* fix range checking for zero based strings, resolves #39323
2021-09-05 21:03:31 +02:00
ncgnstfl.pas
ncgnstld.pas
ncgnstmm.pas
ncgobjc.pas
ncgopt.pas
ncgrtti.pas
* correctly truncate rtti symbol names of enumeration types, resolves #39829
2022-07-11 22:07:57 +02:00
ncgset.pas
Avoid range check error inside tcgcasenode.pass_generate_code method
2022-01-05 16:38:54 +00:00
ncgutil.pas
hlcgobj: new getlocal and recordnewsymloc methods
2022-06-04 22:26:40 +02:00
ncgvmt.pas
* make the VMT symbol and type def of the corresponding class or object instead of having them be global
2022-05-26 21:42:51 +02:00
ncnv.pas
do_set: immediately exit in case of range error
2022-05-29 13:33:27 +02:00
ncon.pas
tstringconstnode.changestringtype: fix buffer overrun
2022-07-06 22:25:05 +02:00
nflw.pas
* fix #32034 and fix #39656 : in a for-in-loop with an array constructor enforce the type of the loop variable for the elements
2022-04-08 17:40:36 +02:00
ngenutil.pas
* fix #39857 : don't trash symbols marked as vo_is_internal
2022-08-26 17:42:22 +02:00
ngtcon.pas
* fix #39875 : when a WideString constant is used to initialize a PChar the constant needs to be converted to the current code page
2022-08-26 18:05:13 +02:00
ninl.pas
* fix #39876 : correctly Read(Str) enum types which have a size smaller than 4 Byte
2022-08-26 17:16:29 +02:00
nld.pas
* implement assignment of anonymous functions to procedure or method variables if they either capture nothing or (in case of method variables) at most the Self variable
2022-05-26 21:43:01 +02:00
nmat.pas
+ fold "a shl n1 shl n2" and "a shr n1 shr n2" into "a shl (n1+n2)" and "a shr (n1+n2)", resolves #39629
2022-04-20 22:16:32 +02:00
nmem.pas
Support arrays and classes in compile-time OffsetOf.
2022-07-16 22:12:07 +02:00
nobj.pas
* make the VMT symbol and type def of the corresponding class or object instead of having them be global
2022-05-26 21:42:51 +02:00
nobjc.pas
node.pas
* Removed unused and confusing tnode.parent and tnode.concattolist().
2021-11-02 16:55:59 +02:00
nopt.pas
nset.pas
* WebAssembly code generation for 'case' nodes changed to use labels
2021-10-22 17:31:04 +03:00
nutils.pas
* improves node complexity calculations
2022-08-26 21:53:58 +02:00
objcasm.pas
* cleanup of VER3_0 defines
2021-11-17 22:19:57 +01:00
objcdef.pas
objcdef: remove duplicate variant start check
2022-06-06 23:12:53 +02:00
objcgutl.pas
* Corrected label reference counts caused by TAsmLabel.GetName incrementing refs
2022-05-14 18:57:05 +00:00
objcutil.pas
ogbase.pas
* patch by Rika: Better Align()'s #2 , resolves #39512
2022-01-05 19:50:21 +01:00
ogcoff.pas
Set string length before calling move to avoid problems with global data analysis on systems using C library
2021-04-27 14:52:22 +00:00
ogelf.pas
Fix gotpcrel relocation for TESTQ x86_64 instruction
2021-04-23 21:52:24 +00:00
oglx.pas
ogmacho.pas
ogmap.pas
ognlm.pas
ogomf.pas
* patch by Rika: Replace some instances of manual work with endianness with cryptic oneliners, resolves #39719
2022-06-08 22:59:39 +02:00
ogrel.pas
+ support writing of 32-bit and 64-bit relocations in the REL object writer
2022-07-12 19:16:23 +03:00
ogwasm.pas
* use WasmCustomSectionName to obtain the debug section names in MaybeWriteDebugSection and MaybeAddDebugSectionToSymbolTable
2022-08-03 23:11:44 +03:00
omfbase.pas
* patch by Rika: Replace some instances of manual work with endianness with cryptic oneliners, resolves #39719
2022-06-08 22:59:39 +02:00
optbase.pas
optconstprop.pas
* Fixed infinite loop when CONSTPROP is enabled
2022-07-10 21:15:26 +00:00
optcse.pas
+ store references to global variables in registers if benefical (currrently used for aarch64 only)
2021-12-11 22:46:27 +01:00
optdead.pas
optdeadstore.pas
* fixes to deadstore optimization
2021-04-03 21:28:09 +00:00
optdfa.pas
* do not throw messages on potentially uninitialized internal symbols, resolves #39744
2022-06-15 23:30:33 +02:00
options.pas
* apply default replacements also to defines set by -d:
2022-08-19 22:31:55 +02:00
optloadmodifystore.pas
* Before r35961 (back in 2017) some simple assignment optimizations, such as "x:=x+y" to "inc(x,y)", were performed when -O2 in tassignmentnode.simplify. In r35961 these optimizations were moved to a separate pass which is enabled only when -O3 by cs_opt_use_load_modify_store. This separate pass can benefit from other optimization. But worse code is generated with -O2 since then.
2021-08-13 13:53:40 +03:00
optloop.pas
* Strength reduction optimization: - Use a temp for complex loop start values to prevent double evaluation.
2021-10-08 18:04:03 +03:00
opttail.pas
optutils.pas
Get rid of some global variables.
2022-01-16 17:17:23 +01:00
optvirt.pas
owar.pas
owbase.pas
owomflib.pas
* patch by Rika: Replace some instances of manual work with endianness with cryptic oneliners, resolves #39719
2022-06-08 22:59:39 +02:00
parabase.pas
TCGParaLocation: remove alignment gap
2022-06-04 22:26:40 +02:00
paramgr.pas
* cleanup of VER3_0 defines
2021-11-17 22:19:57 +01:00
parser.pas
* implement assignment of procedure and method variables and routines (global, instance and nested) to function references
2022-05-26 21:44:24 +02:00
pass_1.pas
* fix typo in comment
2022-01-09 13:30:46 +01:00
pass_2.pas
pbase.pas
* implement assignment of procedure and method variables and routines (global, instance and nested) to function references
2022-05-26 21:44:24 +02:00
pcp.pas
o based on a patch by Rika, resolves #39401 :
2021-10-10 10:09:22 +02:00
pdecl.pas
Fix cycling with -CR option
2022-05-26 22:43:41 +02:00
pdecobj.pas
* spelling fixes
2022-08-04 23:01:35 +02:00
pdecsub.pas
* spelling fixes
2022-08-04 23:01:35 +02:00
pdecvar.pas
do not publish enums with jumps - keep error on static properties
2022-08-16 22:41:25 +02:00
pexports.pas
pexpr.pas
* try to specialize a specialize node if it's followed by a < in a non-code section so that we might get better error messages
2022-08-12 17:19:32 +02:00
pgentype.pas
+ add support for forward declarations of generic classes and interfaces (any implicit pointer type really); fixes #34128
2022-02-18 17:54:23 +01:00
pgenutil.pas
* fix #39869 : correctly check whether the recorded token stream still needs to be parsed (the replay depth of the scanner needs to be *larger* than what it was before starting the playback)
2022-08-18 23:09:01 +02:00
pinline.pas
* patch by Rika to pass some strings by reference, resolves #39338
2021-11-09 22:41:52 +01:00
pkgutil.pas
pmodules.pas
LLVM backend: address sanitizer support
2022-07-06 22:26:13 +02:00
pp.lpi
pp.pas
* set minimum compiler to compile the compiler to 3.2.0
2022-05-07 23:13:16 +02:00
pparautl.pas
* do not insert the $result symbol again when the VMT for the capturer is built
2022-05-26 21:44:22 +02:00
ppc68k.lpi
ppc8086.lpi
ppcaarch64.lpi
ppcarm.lpi
ppcavr.lpi
ppcjvm.lpi
ppcmips64el.lpi
ppcmips.lpi
ppcmipsel.lpi
ppcppc64.lpi
ppcppc64le.lpi
ppcppc.lpi
ppcriscv32.lpi
ppcriscv64.lpi
ppcsparc64.lpi
ppcsparc.lpi
ppcwasm32.lpi
* .lpi version update
2022-07-31 21:09:09 +03:00
ppcx64.lpi
bugfix 0037785 cvtsi2ss and cvtsi2sd in x86_64 { att}
2021-02-22 15:59:58 +00:00
ppcx64llvm.lpi
ppcxtensa.lpi
ppcz80.lpi
ppheap.pas
ppu.pas
* make the VMT symbol and type def of the corresponding class or object instead of having them be global
2022-05-26 21:42:51 +02:00
procdefutil.pas
* fix #39858 : correctly keep track of symbols that need to be captured into the capturer
2022-08-12 17:44:39 +02:00
procinfo.pas
+ add method to find a procinfo for a nested function by the corresponding procdef
2022-05-26 21:44:24 +02:00
psabiehpi.pas
* fix LLVM after r48828
2021-02-27 22:07:58 +00:00
pstatmnt.pas
* Risc-V: allow also register aliases in register modification lists after asm blocks, last part to resolve #39738
2022-06-03 22:54:18 +02:00
psub.pas
parentfpstruct: explicitly trash before initialising
2022-07-26 22:36:13 +02:00
psystem.pas
llvm: use formaldef rather than undefineddef for llvm_metadata
2022-06-12 21:20:37 +02:00
ptconst.pas
ptype.pas
* compilation with -O3 fixed
2022-05-26 22:34:34 +02:00
raatt.pas
* simplifications by Rika (*2 loops => shl/Bsr), resolves #39717
2022-05-12 22:56:36 +02:00
rabase.pas
rasm.pas
rautils.pas
rautils: don't interpret ".L3" as potentially meaning "unitx.identifier"
2022-05-29 13:33:27 +02:00
README.txt
rescmn.pas
rgbase.pas
rgobj.pas
* simplifications by Rika (*2 loops => shl/Bsr), resolves #39717
2022-05-12 22:56:36 +02:00
scandir.pas
* remove accidently commited writeln
2022-06-19 16:18:10 +02:00
scanner.pas
* patch by rika: simplify tscannerfile.readstring, resolves #39835
2022-07-12 22:12:23 +02:00
switches.pas
* get rid of cs_opt_none
2022-06-18 20:13:03 +02:00
symbase.pas
Fix for variables longer than 127 chars
2022-05-10 23:18:01 +02:00
symconst.pas
* do not throw messages on potentially uninitialized internal symbols, resolves #39744
2022-06-15 23:30:33 +02:00
symcreat.pas
parentfpstruct: don't add vo_is_firstfield to first field of record
2022-06-06 23:12:53 +02:00
symdef.pas
do not publish enums with jumps
2022-08-16 20:47:44 +02:00
symsym.pas
dbgllvm: support for record field debug information
2022-06-06 23:12:53 +02:00
symtable.pas
* protected symbols are visible for defs declared in a local symtable as well
2022-05-26 21:43:40 +02:00
symtype.pas
do not publish enums with jumps
2022-08-16 20:47:44 +02:00
symutil.pas
Rename tsymtable.insert and delete methods to insertsym ands deletesym
2022-05-03 23:00:28 +02:00
syscinfo.pas
* aros64: recent developments hanged the library call ABI, lets try to follow it (aros64 is experimental)
2022-02-06 16:30:04 +01:00
systems.inc
+ support different versions of llvm-mc (version 10 seems to be the earliest that works)
2022-05-26 15:06:35 +03:00
systems.pas
powerpc-morphos: enable 'section' keyword support, and force the startup code to be in the .text section, to fix linking external objects with unnamed sections on this platform
2022-08-27 19:19:42 +02:00
tgobj.pas
* make tgobj.pas less verbose in extdebug mode, use separate define DEBUG_FREETEMP for the really
2021-12-15 23:05:18 +01:00
tokens.pas
* Added support for the old Turbo Pascal INLINE(data/data/...) statement.
2021-08-16 00:40:34 +03:00
triplet.pas
verbose.pas
* change ChangeMessageVerbosity from String to AnsiString as long parameters might be passed to it
2022-06-14 14:33:21 +02:00
version.pas
Remove "r" from FPC revision.
2021-08-13 11:18:42 +01:00
wasmbase.pas
+ introduced TWasmCustomDebugSectionType
2022-08-03 23:04:53 +03:00
widestr.pas
wpo.pas
wpobase.pas
wpoinfo.pas