fpc/compiler
2022-01-28 20:17:24 +00:00
..
aarch64 Correct linker script for aarch64-embedded 2022-01-22 22:28:38 +01:00
arm * seperator => separator 2022-01-02 13:12:33 +01:00
armgen + Aarch64: SxthSxtw2Sxth optimization 2022-01-20 22:15:14 +01:00
avr * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
generic * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
html
i386 * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
i8086 * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
jvm Ignore NR_DEFAULTFLAGS for ait_regalloc, because there is no default flags for JVM 2022-01-05 16:41:22 +00:00
llvm Fix compilation for x86_64 llvm variant 2021-06-05 06:47:46 +00:00
m68k * fix m68k IE after e9acd759, patch by Yuriy Sydorov 2021-12-13 16:14:59 +01:00
mips + sanity checks in mips and sparc register allocator 2021-12-17 21:25:17 +01:00
msg + m68k-atari: fixed bogus TOS program flags passed to VLink. added -WF argument to allow the user to specify their own flags if needed 2022-01-25 23:50:07 +01:00
powerpc * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
powerpc64 * cleanup of VER3_0 defines 2021-11-17 22:19:57 +01:00
ppcgen Linux/PPC64: fix missing TOC loads 2021-11-28 18:32:32 +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 of 2.7.0 defines 2021-10-31 13:20:28 +01:00
riscv64 * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
sparc * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
sparc64 * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01:00
sparcgen + sanity checks in mips and sparc register allocator 2021-12-17 21:25:17 +01:00
systems * m68k-atari: make vasm the default assembler. also don't claim we have an internal linker 2022-01-25 23:50:07 +01:00
utils * regenerate all makefiles with latest fpcmake 2022-01-19 07:08:32 +02:00
wasm32 + fix support for 8-byte records, held in a register pair on the WebAssembly target. This fixes #39524 2022-01-25 13:03:35 +02:00
x86 Added correct flag tracking for JccMov2CMov optimisations 2022-01-28 20:17:24 +00:00
x86_64 Added missing MOVSXD check to PostPeepHoleOptsCpu 2021-12-09 02:15:55 +00:00
xtensa * fix thlcgxtensa.g_intf_wrapper as proposed by Anton in #39326, resolves #39326 2022-01-27 22:37:31 +01:00
z80 * change cgsize2subreg and reg_cgsize on Z80 to behave more like they do on AVR; this fixes compilation of Z80 now that the array and string length fields are indeed of type SizeSInt instead of OSSInt 2022-01-21 07:40:22 +01:00
aasmbase.pas + introduced the use of asm labels for WebAssembly. Resolve them in 2021-10-20 09:39:44 +03:00
aasmcfi.pas
aasmcnst.pas * patch by Sergey Larin: Reducing and aligning the size of TAnsiRec, TUnicodeRec for CPU64, resolves #38018: 2021-10-17 11:13:29 +02:00
aasmdata.pas * Reverted accidentally committed files. 2020-08-13 18:48:19 +00:00
aasmdef.pas
aasmsym.pas
aasmtai.pas + support reading of .p2align with op code and/or max. bytes in the gas assembler reader 2021-10-18 22:12:27 +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 Debugging code in AllocRegBetween is now safer and more accurate, and p2 can no longer be nil 2022-01-04 12:18:34 +00:00
aoptutils.pas * patch by J. Gareth Moreton: x86 JccMovJmpMov2MovSetcc improvement, resolves #38761 2021-05-26 21:03:56 +00:00
assemble.pas * patch by Rika to pass some strings by reference, resolves #39338 2021-11-09 22:41:52 +01:00
blockutl.pas
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 * Removed unused tlocation.registers[]. 2021-11-02 16:46:08 +02: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 * make sure that the resource compiler related globals are reset 2020-08-12 19:08:31 +00:00
comptty.pas + enable colored output on darwin, resolves #38693 2021-04-01 16:32:52 +00:00
constexp.pas - obsolete defines removed 2021-04-11 18:18:30 +00:00
COPYING.txt
cprofile.pas * proper naming 2020-01-06 14:58:06 +00:00
crefs.pas
cresstr.pas * cleanup of 2.7.0 defines 2021-10-31 13:20:28 +01: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 * patch by Rika: another improvement of cutils.newalignment, part of #39496 2021-12-25 19:37:27 +01:00
dbgbase.pas * Reworked the optimization of unused $parentfp for nested routines. 2020-05-19 13:17:47 +00:00
dbgcodeview.pas * Fixed value of the LF_PAD13 enum element. 2021-01-24 14:29:39 +00:00
dbgdwarf.pas * patch by Dean Mustakino to avoid generation of debug info for generics, resolves #38827 2021-10-11 18:45:41 +02:00
dbgstabs.pas Second trial to fix commit 48688 2021-02-17 09:46:37 +00:00
dbgstabx.pas * ReplaceForbiddenAsmSymbolChars renamed ApplyAsmSymbolRestrictions, because now it also applies the 2020-04-26 10:42:07 +00:00
defcmp.pas * weight currency->float conversions the same regardless if 2021-01-05 22:39:16 +00:00
defutil.pas * fixed passing of singleton record parameters, containing a float in WebAssembly 2021-10-14 10:53:55 +03:00
dirparse.pas * reverted r47862 2020-12-28 16:18:55 +00:00
dwarfbase.pas
elfbase.pas
entfile.pas * synchronized with trunk 2021-03-08 00:52:43 +00:00
export.pas
expunix.pas
finput.pas
fmodule.pas * Fix for issue #39379 by bart broersma 2021-09-29 17:21:57 +02:00
fpcdefs.inc Avoid use of fastmath optimization inside compiler 2022-01-25 21:50:03 +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 + added the current WebAssembly exceptions mode to the .ppu module flags and 2021-10-08 23:50:28 +03:00
gendef.pas + implement initial compiler support for Win64 on Aarch64 2020-04-21 06:04:22 +00:00
globals.pas + m68k-atari: fixed bogus TOS program flags passed to VLink. added -WF argument to allow the user to specify their own flags if needed 2022-01-25 23:50:07 +01:00
globstat.pas
globtype.pas * seperator => separator 2022-01-02 13:12:33 +01:00
hlcg2ll.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
hlcgobj.pas * seperator => separator 2022-01-02 13:12:33 +01:00
htypechk.pas Avoid invalid typecast error when using -CR option 2021-03-15 13:25:59 +00: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 Fix fullinstall make target 2022-01-24 15:16:26 +00:00
Makefile.fpc Fix fullinstall make target 2022-01-24 15:16:26 +00:00
MPWMake Remove unused, obsolete -dBROWSERLOG option 2021-04-22 15:26:15 +00:00
msgidx.inc * regenerated message includes 2022-01-25 23:50:07 +01:00
msgtxt.inc * regenerated message includes 2022-01-25 23:50:07 +01:00
nadd.pas * last commit was not correct, fixed 2021-11-27 00:28:57 +01: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 * set expectloc properly for x87 on x86 2021-09-24 22:27:44 +02:00
ncgadd.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
ncgbas.pas * Added support for the old Turbo Pascal INLINE(data/data/...) statement. 2021-08-16 00:40:34 +03:00
ncgcal.pas + added call to g_maybe_checkforexceptions after generating call to fpc_iocheck 2021-10-05 18:02:11 +03:00
ncgcnv.pas * Patch by J. Gareth "Kit" Moreton (issue #39343). Added missing allocation 2021-09-07 19:50:28 +03:00
ncgcon.pas * fix proposed by Christo Crause: properly handle pointer constant nodes on avr, resolves #38321 2021-01-06 12:52:36 +00: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 * compilation hopefully fixed 2021-11-28 00:03:30 +01:00
ncnv.pas * moved warning about suspicious comp assignment to type check pass, catches also 2021-04-21 19:51:22 +00:00
ncon.pas * sizeof(array) and length(array) must return sizeUint in case the array 2021-08-16 21:54:46 +03:00
nflw.pas + in_min/max_dword/longint support for aarch64 2021-12-19 16:16:44 +01:00
ngenutil.pas * seperator => separator 2022-01-02 13:12:33 +01:00
ngtcon.pas Typed constants: no internalerror on failure 2021-10-03 21:46:23 +02:00
ninl.pas Merge branch 'main' into val_range_check 2022-01-19 22:20:24 +01:00
nld.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
nmat.pas + apply unary minus optimizations also to / 2021-09-23 22:44:16 +02:00
nmem.pas * removed accidently committed printnode 2021-01-31 13:19:55 +00:00
nobj.pas * add support for creating non-address-only procvars to 2020-04-02 21:21:36 +00: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 * rename the ARM/AArch64-Darwin targets to ARM/AArch64-iOS 2020-07-10 21:52:24 +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 * emit a weak symbol for the exception tag, since that's what the LLVM linker 2021-09-28 02:52:40 +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 + propagate constants across call nodes 2020-02-15 18:27:22 +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 * add const 2022-01-16 17:24:48 +01:00
options.pas * m68k-atari: make the Atari target always default to VLink, even for crosscompilers 2022-01-25 23:50:07 +01: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 * some warnings fixed 2021-09-18 19:24:53 +02:00
pdecobj.pas * better error recovery, resolves #39485 2021-12-16 22:27:38 +01:00
pdecsub.pas * fix for Mantis #38771: the owner of the procdef might be Nil in case of a specialization (that virtual can't be used on generics is caught later on) 2021-04-18 14:01:09 +00:00
pdecvar.pas Record variant discriminators: check types 2021-10-31 21:13:35 +01: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 * ensure that result of factor_handle_sym is initialized 2022-01-22 22:28:01 +01:00
pgentype.pas * fix for Mantis #35140: apply patch by Ryan Joseph together with some further changes by me to add support for constant parameters in generics 2020-04-25 22:12:35 +00:00
pgenutil.pas * patch by Rika to pass some strings by reference, resolves #39338 2021-11-09 22:41:52 +01: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 Add link unit for esp-idf v4.1. Version checks to allow for different patch levels in idf_version. 2022-01-18 21:34:26 +00:00
pp.lpi * update version 2020-08-09 18:52:25 +00:00
pp.pas * the WASM define renamed WASM32 2020-08-05 14:17:27 +00:00
pparautl.pas * set self to nil in current_module.deflist for registered defs in the 2021-05-30 21:27:57 +00: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 o based on a patch by Rika, resolves #39401: 2021-10-10 10:09:22 +02:00
procdefutil.pas * correctly set the generic related defoptions for an outlined procdef 2020-06-13 18:42:26 +00: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 * throw an error if raise is called in a noreturn subroutine outside of any exception frame, resolves #39514 2022-01-06 21:13:19 +01:00
psub.pas * avoid to create a stack frame on aarch64 if possible 2021-11-02 22:23:24 +01:00
psystem.pas * synchronized with trunk 2020-11-09 00:06:32 +00:00
ptconst.pas
ptype.pas + implement align directive for records, resolves #28927 2020-12-29 18:19:35 +00:00
raatt.pas + support reading of .p2align with op code and/or max. bytes in the gas assembler reader 2021-10-18 22:12:27 +02:00
rabase.pas
rasm.pas
rautils.pas * more helpful message if an unknown field is accessed in the assembler reader, resolves #38475 2021-02-11 20:51:53 +00: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 * Fixed random AVs when targeting the AVX FPU. 2021-12-12 18:19:35 +02:00
scandir.pas + support $lgeacyifend directive, resolves #37676 2021-11-01 23:24:42 +01:00
scanner.pas * seperator => separator 2022-01-02 13:12:33 +01:00
switches.pas
symbase.pas * use new TSym.EscapedRealName property when creating new symbols with the 2020-12-27 13:18:53 +00:00
symconst.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
symcreat.pas * use new TSym.EscapedRealName property when creating new symbols with the 2020-12-27 13:18:53 +00:00
symdef.pas * Removed obsolete OLDREGVARS ifdefs. 2021-11-02 17:08:08 +02:00
symsym.pas * some warnings fixed 2021-09-18 19:24:53 +02:00
symtable.pas * patch by Rika to pass some strings by reference, resolves #39338 2021-11-09 22:41:52 +01:00
symtype.pas * improvements to the prevention of dangling pointers in tmodule.deflist, 2021-06-01 15:02:26 +00:00
symutil.pas * added is_normal_fieldvarsym() helper and use it 2019-12-24 22:12:44 +00:00
syscinfo.pas
systems.inc Adding aaarch64-embedded target 2022-01-05 12:29:00 +00:00
systems.pas Adding aaarch64-embedded target 2022-01-05 12:29:00 +00: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 * throw an error if raise is called in a noreturn subroutine outside of any exception frame, resolves #39514 2022-01-06 21:13:19 +01: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