fpc/compiler
2022-05-26 21:42:52 +02:00
..
aarch64 * more readable fix for the missing ait_instruction check 2022-05-15 19:32:27 +02:00
arm * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
armgen + Aarch64: SxthSxtw2Sxth optimization 2022-01-20 22:15:14 +01:00
avr * AVR: trgcpu.do_spill_read must load ofs 2022-05-05 19:35:38 +02:00
generic * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
html
i386 * x86: Code generation fixes where FLAGS 2022-04-27 20:46:32 +00:00
i8086 * x86: Code generation fixes where FLAGS 2022-04-27 20:46:32 +00:00
jvm Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
llvm llvmdbg: emit uppercase symbol names unless C++-style debug info is selected 2022-05-21 22:32:35 +02:00
m68k m68k: opcode table updates based on vasm 1.9 (used with permission) 2022-04-05 12:07:49 +02:00
mips * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
msg + added "(experimental)" to the compiler help screen for the WebAssembly compiler options that are still unstable/experimental 2022-05-26 18:20:07 +03:00
powerpc * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
powerpc64 * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
ppcgen TOC handling: clean up 2022-02-06 22:10:06 +01:00
riscv Fix check that third parameter of ADDI hp1 instruction is a constant 2021-06-02 19:58:38 +00:00
riscv32 * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
riscv64 * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01: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 + sanity checks in mips and sparc register allocator 2021-12-17 21:25:17 +01:00
systems * increase default dwarf version for linux targets where current distributions exist 2022-05-16 22:56:30 +02:00
utils + add a new symoption for symbols created for nameless types during implicit function specialization so that they can be recognized 2022-05-26 21:42:52 +02:00
wasm32 + support different versions of llvm-mc (version 10 seems to be the earliest that works) 2022-05-26 15:06:35 +03:00
x86 * fix #39730 as suggested by Jonas 2022-05-23 22:28:59 +02:00
x86_64 Only use Win64 vectorcall special case if calling convention is vectorcall. 2022-05-15 08:56:50 +00:00
xtensa * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01:00
z80 * cleanup: cs_opt_loopunroll is a generic optimization for a long time already 2022-03-08 23:03:18 +01: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 * Corrected label reference counts caused by TAsmLabel.GetName incrementing refs 2022-05-14 18:57:05 +00:00
aasmdata.pas llvmdbg: build hashtable to lookup llvmdecl belonging to a global variable 2022-05-21 22:32:35 +02:00
aasmdef.pas * also generate indirect symbols for AB_PRIVATE_EXTERN symbols as these might be used from a unit in another package due to inlining 2019-11-21 21:44:12 +00:00
aasmsym.pas
aasmtai.pas Add missing reference increases for ait_jvar labels 2022-05-20 21:18:44 +02:00
aggas.pas Use '.rodata' for read-only data section for aarch64 CPU 2022-01-08 00:18:47 +01: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 * use RegistersInterfere instead of SuperRegistersEqual in TAoptBase.RegInOp and TAoptBase.RegInRef 2020-05-11 17:18:00 +00:00
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 LLVM: separate as_clang_llvm_darwin 2022-05-14 22:38:49 +02:00
blockutl.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
browcol.pas * added is_normal_fieldvarsym() helper and use it 2019-12-24 22:12:44 +00:00
catch.pas
ccharset.pas * some cleanup 2019-12-23 21:52:06 +00:00
cclasses.pas Allocate THashSet item and its key together when FOwnKeys=true. 2022-01-21 22:13:39 +01:00
cepiktimer.pas * do not include fpcdefs in the cepiktimer unit 2020-11-28 16:02:49 +00:00
cfidwarf.pas * don't generate high-level CFI statements when the selected assembler 2021-04-08 19:50:27 +00:00
cfileutl.pas * rename the ARM/AArch64-Darwin targets to ARM/AArch64-iOS 2020-07-10 21:52:24 +00:00
cg64f32.pas - Bug fix to new ADD/SUB optimisation where conditions are concerned 2021-11-17 20:18:57 +00:00
cgbase.pas - clean up 2021-05-24 09:26:44 +00: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 Fast mod 2022-01-30 08:22:39 +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 + implemented memory.grow and memory.size intrinsics and implemented SysOSAlloc 2021-01-21 23:13:49 +00:00
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 * proper naming 2020-01-06 14:58:06 +00:00
crefs.pas
cresstr.pas Typed const builder: store tsym 2022-05-13 22:49:02 +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 cutils: also use minalign, when varalign equals it, not only when varalign is less than it (21 years old bug?) 2022-04-29 23:45:45 +02:00
dbgbase.pas LLVM: enable DWARF debug info generation 2022-05-13 22:49:02 +02:00
dbgcodeview.pas * Fixed value of the LF_PAD13 enum element. 2021-01-24 14:29:39 +00:00
dbgdwarf.pas * moved a bunch of constants from dbgdwarf to dbgdwarfconst 2022-05-13 22:49:02 +02:00
dbgdwarfconst.pas * moved a bunch of constants from dbgdwarf to dbgdwarfconst 2022-05-13 22:49:02 +02:00
dbgstabs.pas Call increfs manually to avoid removal of stabs debug related labels 2022-05-16 15:12:07 +00:00
dbgstabx.pas * ReplaceForbiddenAsmSymbolChars renamed ApplyAsmSymbolRestrictions, because now it also applies the 2020-04-26 10:42:07 +00:00
defcmp.pas * better fix for #39634 which avoids breaking existing code 2022-04-22 22:08:46 +02:00
defutil.pas * fix #35261: apply slightly adjusted changes by Ryan Joseph to implement support for implicit generic function specializations 2022-04-20 18:59:31 +02:00
dirparse.pas * reverted r47862 2020-12-28 16:18:55 +00:00
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 Fix compilation of mips64 compiler by simple use of 'make mips64' 2022-02-14 23:24:36 +00:00
fpchash.pas o based on a patch by Rika, resolves #39401: 2021-10-10 10:09:22 +02:00
fpcp.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
fpkg.pas
fppu.pas Check mf_symansistr is compatible with current compiler mode and issue a message before failing PPU loading 2022-04-11 22:10:48 +00:00
gendef.pas + implement initial compiler support for Win64 on Aarch64 2020-04-21 06:04:22 +00:00
globals.pas + some basic stuff for MIPS64 2022-02-05 23:25:31 +01:00
globstat.pas
globtype.pas tfileposinfo: separate types for the fields 2022-05-13 22:49:02 +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 * x86: Code generation fixes where FLAGS 2022-04-27 20:46:32 +00:00
htypechk.pas * only abort due to a missing overload directive if there indeed was any procdef found (due to implicit specializations there might be none), fixes compilation of tests webtbs/tw38310b and webtbs/tw38310c 2022-04-21 18:01:30 +02:00
impdef.pas
import.pas
ldscript.pas
link.pas * Increased the bounds of TBooleanArray to prevent a range check error while linking Lazarus. 2021-12-12 15:50:12 +02:00
macho.pas
machoutils.pas
Makefile * regenerate makefiles with latest fpcmake 2022-05-24 14:01:59 +03:00
Makefile.fpc Add x86_64 CPU to list requiring fpux80 support 2022-03-30 15:10:30 -06:00
MPWMake Remove unused, obsolete -dBROWSERLOG option 2021-04-22 15:26:15 +00:00
msgidx.inc + added "(experimental)" to the compiler help screen for the WebAssembly compiler options that are still unstable/experimental 2022-05-26 18:20:07 +03:00
msgtxt.inc + added "(experimental)" to the compiler help screen for the WebAssembly compiler options that are still unstable/experimental 2022-05-26 18:20:07 +03:00
nadd.pas Optimized the comparison of a widestring variable with '' 2022-04-27 21:12:47 +00: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 Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +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 * fixed WebAssembly method pointer assignment 2021-10-03 02:27:19 +03: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 * Do not use the LOC_VOID location to indicate unused parameters. 2020-05-21 09:36:40 +00:00
ncgobjc.pas
ncgopt.pas
ncgrtti.pas * use an anonymous symbol for the record operator table as its typing is different for each incarnation anyway 2021-12-26 16:36:16 +01:00
ncgset.pas Avoid range check error inside tcgcasenode.pass_generate_code method 2022-01-05 16:38:54 +00:00
ncgutil.pas * take care of po_noreturn in more cases 2020-11-28 16:02:51 +00: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 * Bug fix that prevents downsizing of 2022-05-07 20:53:35 +00:00
ncon.pas * patch by Rike: Use reverse_longword instead of manually reversing longword, resolves #39720 2022-05-13 22:38:03 +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 tnodeuitls: merge GenerateObjCImageInfo into InsertObjectInfo 2022-05-13 22:49:02 +02:00
ngtcon.pas Typed const builder: store tsym 2022-05-13 22:49:02 +02:00
ninl.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
nld.pas * fix #35261: apply slightly adjusted changes by Ryan Joseph to implement support for implicit generic function specializations 2022-04-20 18:59:31 +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 * disallow offsetof trick for types involving implicit dereferences, resolves #39667 partially 2022-04-14 17:06:15 +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 + optimize (a and b) or (c and not(b)) into c xor ((c xor a) and b) 2021-02-28 18:20:46 +00:00
objcasm.pas * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
objcdef.pas
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 + introduced labelmaxlen in tasminfo and added code in ReplaceForbiddenAsmSymbolChars that limits the 2020-04-25 12:59:25 +00:00
ogmap.pas * avoid 8-bit truncation of the sizes in the internal linker map 2020-06-02 23:13:32 +00:00
ognlm.pas + introduced labelmaxlen in tasminfo and added code in ReplaceForbiddenAsmSymbolChars that limits the 2020-04-25 12:59:25 +00:00
ogomf.pas * fix x86 compilation after my last commit 2021-10-10 10:21:21 +02:00
ogrel.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
ogwasm.pas * the WebAssembly internal assembler renamed WASM (previously it was OMF, which was the ID of the MS-DOS .obj writer, which I forgot to rename) 2022-05-26 14:12:10 +03:00
omfbase.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
optbase.pas + CalcUseSum: calculates a sum of all use sets of the current node and its children 2020-01-10 21:34:29 +00:00
optconstprop.pas * continue const. propagation after a for loop when possible 2022-05-22 22:52:18 +02: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 * add const 2022-01-16 17:24:48 +01:00
options.pas LLVM: separate as_clang_llvm_darwin 2022-05-14 22:38:49 +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 * disable tail recursion optimisation if there is a copy-back parameter 2020-07-21 17:57:50 +00:00
optutils.pas Get rid of some global variables. 2022-01-16 17:17:23 +01:00
optvirt.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
owar.pas * return the correct size for files in ar archive. This is required by the REL 2020-06-01 22:25:31 +00:00
owbase.pas * return the correct size for files in ar archive. This is required by the REL 2020-06-01 22:25:31 +00:00
owomflib.pas
parabase.pas * fix PowerPC compilation 2020-02-02 15:20:28 +00:00
paramgr.pas * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
parser.pas * initialize current_settings as early as possible so cs_debugswitch is set correctly if needed 2021-02-14 21:25:01 +00:00
pass_1.pas * fix typo in comment 2022-01-09 13:30:46 +01:00
pass_2.pas * Renamed fc_block_with_exit to fc_no_direct_exit to expand its usage. 2020-12-10 17:38:37 +00:00
pbase.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
pcp.pas o based on a patch by Rika, resolves #39401: 2021-10-10 10:09:22 +02:00
pdecl.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
pdecobj.pas TSymStr: more consistent usage 2022-05-08 15:03:44 +02:00
pdecsub.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
pdecvar.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
pexports.pas * instead of blindly consuming whatever comes next trigger an explicit error if the parsed expression does not match for "INDEX ordexpr" or "NAME strexpr" 2021-01-02 23:23:08 +00:00
pexpr.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +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 + add a new symoption for symbols created for nameless types during implicit function specialization so that they can be recognized 2022-05-26 21:42:52 +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 * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
pmodules.pas TSymStr: more consistent usage 2022-05-08 15:03:44 +02:00
pp.lpi * update version 2020-08-09 18:52:25 +00:00
pp.pas * set minimum compiler to compile the compiler to 3.2.0 2022-05-07 23:13:16 +02:00
pparautl.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
ppc68k.lpi * version update 2020-11-29 09:40:54 +00:00
ppc8086.lpi
ppcaarch64.lpi
ppcarm.lpi
ppcavr.lpi
ppcjvm.lpi [PATCH 02/83] updating common FPC sources for WASM target 2020-07-29 16:01:48 +00:00
ppcmips64el.lpi + some basic stuff for mips64el 2020-06-07 20:04:17 +00:00
ppcmips.lpi
ppcmipsel.lpi
ppcppc64.lpi
ppcppc64le.lpi + project file for PowerPC64LE 2020-12-06 10:23:17 +00:00
ppcppc.lpi
ppcriscv32.lpi
ppcriscv64.lpi
ppcsparc64.lpi
ppcsparc.lpi
ppcwasm32.lpi + enable the WebAssembly internal assembler and object writer 2021-09-26 20:46:47 +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 + Xtensa: lazarus project 2020-03-20 22:34:30 +00:00
ppcz80.lpi - removed the z80_internal_linker build mode from the lazarus project 2020-06-03 19:37:44 +00:00
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 Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
procinfo.pas Procedure-saved registers are now recorded for peephole optimizers to use 2022-01-08 22:43:41 +00:00
psabiehpi.pas * fix LLVM after r48828 2021-02-27 22:07:58 +00:00
pstatmnt.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
psub.pas * continue const. propagation after a for loop when possible 2022-05-22 22:52:18 +02:00
psystem.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
ptconst.pas * ensure that nothing assembly related is generated for generics when a typed constant (this also includes local variable initializations) are parsed 2019-11-21 21:44:16 +00:00
ptype.pas * Compiler error is now thrown if record alignment is not a power of 2 or is greater than 64. 2022-05-09 20:03:44 +00: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 * hopefully final fix for absolute references to absolute symbols 2022-02-16 21:30:14 +01:00
README.txt
rescmn.pas + add option -FF to force the use of fpcres as RC compiler 2020-08-12 19:08:25 +00:00
rgbase.pas + added the Z80 individual flag bits as subregisters 2020-05-11 19:17:31 +00:00
rgobj.pas * simplifications by Rika (*2 loops => shl/Bsr), resolves #39717 2022-05-12 22:56:36 +02:00
scandir.pas * do not crash in case of too many $push directives, resolves #39652 2022-04-07 22:51:30 +02:00
scanner.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
switches.pas
symbase.pas Fix for variables longer than 127 chars 2022-05-10 23:18:01 +02:00
symconst.pas + add a new symoption for symbols created for nameless types during implicit function specialization so that they can be recognized 2022-05-26 21:42:52 +02:00
symcreat.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
symdef.pas * declare the type symbol of an internal def as sp_internal 2022-05-26 21:42:52 +02:00
symsym.pas Rename tsymtable.insert and delete methods to insertsym ands deletesym 2022-05-03 23:00:28 +02:00
symtable.pas * don't check for a duplicate internal symbol in inherited symtables 2022-05-26 21:42:51 +02:00
symtype.pas * cleanup 2022-05-23 22:28:59 +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 LLVM: separate as_clang_llvm_darwin 2022-05-14 22:38:49 +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 * mark all external assemblers using an LLVM tool using af_llvm 2020-07-19 14:30:35 +00:00
verbose.pas - remove duplicate paraprintnodetree to ensure that there the right paraprintnodetree is used (namely the one from globals) 2022-05-26 21:42:51 +02:00
version.pas Remove "r" from FPC revision. 2021-08-13 11:18:42 +01:00
wasmbase.pas + added support for exception tags and for the 'throw' and 'catch' instructions 2021-09-27 21:44:09 +03:00
widestr.pas * some cleanup 2019-12-23 21:52:06 +00:00
wpo.pas
wpobase.pas
wpoinfo.pas

This directory contains the sources of the Free Pascal Compiler

If you want to compile/modify the compiler, please read first the
programmers manual.

To recompile the compiler, you can use the batch files :
 + mppc386.bat    if you want to build a cross compiler from i386 to m68k
 + mppcsparc      if you want to build a cross compiler from i386 to SPARC
 
 or
Use the make utility as following
  
      make OS_TARGET="compiler OS target" \
      CPU_TARGET="compiler CPU target" \
      FPCCPUOPT="Optimization level" \
      PP="compiler used to compile FPC" \
      COMPILER_OPTIONS="Options passed to compiler" \
      
      
If an option is omitted, then target CPU/OS will be same as current CPU/OS
 
Possibles targets are : linux go32v2 win32 os2 freebsd beos netbsd amiga haiku
atari sunos qnx netware openbsd wdosx palmos macos macosx emx
   
Possible compiler switches (* marks a currently required switch):
  -----------------------------------------------------------------
  GDB*                support of the GNU Debugger
  I386                generate a compiler for the Intel i386+
  x86_64              generate a compiler for the AMD x86-64 architecture
  M68K                generate a compiler for the M68000
  SPARC               generate a compiler for SPARC
  POWERPC             generate a compiler for the PowerPC
  VIS                 generate a compile for the VIS
  DEBUG               version with debug code is generated
  EXTDEBUG            some extra debug code is executed
  SUPPORT_MMX         only i386: releases the compiler switch
                      MMX which allows the compiler to generate
                      MMX instructions
  EXTERN_MSG          Don't compile the msgfiles in the compiler, always
                      use external messagefiles, default for TP
  NOAG386INT          no Intel Assembler output
  NOAG386NSM          no NASM output
  NOAG386BIN          leaves out the binary writer, default for TP
  NORA386DIR          No direct i386 assembler reader
  TEST_GENERIC        Test Generic version of code generator
                      (uses generic RTL calls)
  -----------------------------------------------------------------
  cpuflags            The target processor has status flags (on by default)
  cpufpemu            The target compiler will also support emitting software
                       floating point operations
  cpu64bitaddr        The targets use a 64-bit address space (pointers and
                       the default integer type are 64 bit)
  cpu64bitalu         The target cpu has 64-bit registers available (unless
                       cpu64bitaddr is also defined, pointers and default
                       integer type remain 32 bit, but the cpu can perform
                       64 bit calculations directly without needing helpers)
  -----------------------------------------------------------------

  Required switches for a i386 compiler be compiled by Free Pascal Compiler:
  GDB;I386

to build a compiler to SPARC target using a Win32/i386 you just use :
      make CPU_TARGET=SPARC