fpc/compiler
2022-02-16 06:00:18 +02: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 Fixed bug on x86 platforms where the stack pointer was not allocated if it was different to the frame pointer 2022-02-08 20:47:47 +00:00
i8086 CMOV now modifies rather than writes to the destination register so RegUsedAfterInstruction behaves properly 2022-01-28 20:17:24 +00: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 * m68k: don't attempt to copy less than 1 byte in g_concatcopy, this fixes tdfa7.pp on 68000 and removes some superfluous address processing on 68020+ in the same test 2022-02-08 03:04:28 +01:00
mips Fix loading of 64-bit constant into register for 64-bit mips CPU 2022-02-15 19:51:26 +00:00
msg atari: add -Wt<x> option to allow specifying the executable format 2022-02-02 21:34:32 +00:00
powerpc TOC handling: clean up 2022-02-06 22:10:06 +01:00
powerpc64 PPC64: don't save TOC in pure assembler routines 2022-02-12 15:26:27 +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 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 - don't pass --export-dynamic to the linker when linking a library for the WASI target 2022-02-16 06:00:18 +02:00
utils Regenerate Makefile's with mips gcc fixes and new enabled mips64-linux target 2022-02-15 15:45:15 +00:00
wasm32 * when adding WebAssembly object info, traverse through current_module.used_units, 2022-02-12 08:32:48 +02:00
x86 Fixed bug on x86 platforms where the stack pointer was not allocated if it was different to the frame pointer 2022-02-08 20:47:47 +00:00
x86_64 Fixed bug on x86 platforms where the stack pointer was not allocated if it was different to the frame pointer 2022-02-08 20:47:47 +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
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 * 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 * 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 * revert accidently committed code 2022-02-06 20:15:00 +01:00
COPYING.txt
cprofile.pas
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 * Section-offsets have 64 bits in the Dwarf-64 format 2022-01-29 23:57:49 +01: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 + some basic stuff for MIPS64 2022-02-05 23:25:31 +01: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 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 + 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 + some basic stuff for MIPS64 2022-02-05 23:25:31 +01:00
globstat.pas
globtype.pas * seperator => separator 2022-01-02 13:12:33 +01: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 * 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 Regenerate Makefile's with mips gcc fixes and new enabled mips64-linux target 2022-02-15 15:45:15 +00:00
Makefile.fpc + some MIPS64 stuff added to the Makefiles 2022-02-02 22:14:43 +01:00
MPWMake Remove unused, obsolete -dBROWSERLOG option 2021-04-22 15:26:15 +00:00
msgidx.inc atari: add -Wt<x> option to allow specifying the executable format 2022-02-02 21:34:32 +00:00
msgtxt.inc atari: add -Wt<x> option to allow specifying the executable format 2022-02-02 21:34:32 +00:00
nadd.pas * handle result type of unsigned ordinal operations in ISO/Extpas mode similiar to TP, solves 2022-01-28 22:48:50 +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 * 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 + 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 TOC handling: clean up 2022-02-06 22:10:06 +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 * properly set types for currency divisions, resolves #38717 2022-02-13 22:47:38 +01:00
nmem.pas * removed accidently committed printnode 2021-01-31 13:19:55 +00:00
nobj.pas
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 Add internalerror if ogwasm tries to write unset Func/Global or TagIndex of TWasmObjSymbol 2022-02-11 22:19:43 +00:00
omfbase.pas * patch by Marģers to unify internal error numbers, resolves #37888 2020-10-13 19:59:01 +00:00
optbase.pas
optconstprop.pas
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 * sorted defines in the compiler: mips64 is defined on all 64 Bit mips platforms, mips64el for little endian, misp64eb for big endian 2022-02-06 21:57:01 +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
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 * aros64: recent developments hanged the library call ABI, lets try to follow it (aros64 is experimental) 2022-02-06 16:30:04 +01: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 Update build and link requirements for esp-idf v4.4. Refactor the version dependent linker fragments list into an array of version specific array of strings for easier updating in future. 2022-01-30 08:14:07 +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
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 Fix invalid typecast by postponing sym change to after address resolution in 44094dba 2022-02-15 09:04:24 +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 * m68k-atari: override the exeext globally, not just at the final step of the linking. this fixes 'Linking <exename>.ttp' messages, when in fact <exename>.prg gets generated 2022-02-14 15:33:36 +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
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 + some basic stuff for MIPS64 2022-02-05 23:25:31 +01:00
systems.pas PPC64: fix wrong ifdef for SYSV ABI 2022-02-12 15:26:49 +01: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
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