fpc/compiler
2025-10-31 15:42:37 +01:00
..
aarch64 * Aarch64: don't emit illegal shifter operands, resolves #41424 2025-10-04 22:29:40 +02:00
arm * spelling 2025-09-10 23:07:27 +02:00
armgen * arm/a64: Be more careful about hp1 and p_second being null in "TryConstMerge" 2025-05-05 11:24:47 +02:00
avr [AVR] Add device information in .note.gnu.avr.deviceinfo section. 2025-10-26 14:59:57 +01:00
generic
html
i386 * small fixes 2025-10-15 23:01:03 +02:00
i8086 * small fixes 2025-10-15 23:01:03 +02:00
jvm Add tsym parameter to ttgobj.getlocal method. 2025-06-05 12:19:57 +00:00
llvm Fix error about unset result in TDebugInfoLLVM.getabstractprocdeftypes method 2025-09-08 20:57:16 +00:00
loongarch64 * emit_div/mod_reg_reg_reg takes now three operands 2025-09-17 22:40:28 +02:00
m68k m68k: do not allow the members of the register pair in division/remainder instructions be the same register 2025-09-19 01:14:08 +02:00
mips * enclose {$define DEBUG_AOPTCPU} in {$ifdef EXTDEBUG} 2025-03-10 22:50:49 +01:00
msg * Changed the WebAssembly exception mode switches: 2025-10-05 20:52:04 +03:00
powerpc * compilation of all target cpus fixed 2025-10-26 15:14:16 +01:00
powerpc64 Add dwarf CFI for powerpc64 cpu 2023-11-23 21:19:52 +01:00
ppcgen * spelling 2025-09-10 23:07:27 +02:00
riscv * improvement and fixes to RiscV 32 overflow checking code 2025-10-25 13:50:47 +02:00
riscv32 + tcg64frv.a_load64_reg_ref 2025-10-19 23:01:02 +02:00
riscv64 * started to fix RiscV 64 2025-10-21 22:58:25 +02:00
sparc + cs_opt_consts for sparc 2024-05-08 23:13:05 +02:00
sparc64 + cs_opt_consts for sparc64 2024-05-11 23:41:33 +02:00
sparcgen * enclose {$define DEBUG_AOPTCPU} in {$ifdef EXTDEBUG} 2025-03-10 22:50:49 +01:00
systems * fix ABIs used by RiscV64 2025-10-06 22:49:44 +02:00
utils valgrind args must be passed before compiler executable 2025-10-30 23:26:18 +00:00
wasm32 + use optimize_op_const in thlcgwasm.a_op_const_stack as well 2025-10-11 23:30:35 +03:00
x86 * compilation of all target cpus fixed 2025-10-26 15:14:16 +01:00
x86_64 * small fixes 2025-10-15 23:01:03 +02:00
xtensa * emit_div/mod_reg_reg_reg takes now three operands 2025-09-17 22:40:28 +02:00
z80 * compilation of all target cpus fixed 2025-10-26 15:14:16 +01:00
.gitignore git ignore msg2inc binary 2023-07-07 11:17:33 +02:00
aasmbase.pas [AVR] Add device information in .note.gnu.avr.deviceinfo section. 2025-10-26 14:59:57 +01:00
aasmcfi.pas
aasmcnst.pas [AVR] Add device information in .note.gnu.avr.deviceinfo section. 2025-10-26 14:59:57 +01:00
aasmdata.pas * properly fix #41161 2025-04-14 22:41:18 +02:00
aasmdef.pas
aasmsym.pas
aasmtai.pas tai_string: remove useless #0 terminators 2025-03-24 23:02:10 +01:00
aggas.pas Remove extra dot from ..ARM.attributes section name. 2025-10-26 14:59:57 +01:00
aopt.pas * simple clean ups after dyn. array conversion 2025-03-21 21:35:39 +01:00
aoptbase.pas * patch by lag programming: Code cleanup at function TAOptBase.RegInInstruction, resolves #40952 2024-10-15 22:51:39 +02:00
aoptda.pas
aoptobj.pas Reenable conditional jump optimization for powerpc CPUs using CPU_BC_HAS_SIZE_LIMIT code 2025-10-23 23:46:57 +02:00
aoptutils.pas * New Boolean "SetAndTest" utility function 2024-02-03 20:30:46 +00:00
assemble.pas * source linebuf as dyn array 2025-03-20 17:01:31 +01:00
blockutl.pas
browcol.pas Symbol browser consolidate units 2025-07-24 09:10:22 +00:00
catch.pas
ccharset.pas * Use dynamic array instead of pointer for character map 2025-03-20 17:01:31 +01:00
cclasses.pas Avoid range error in tbitset.clear method 2025-03-21 09:26:57 +00:00
cepiktimer.pas
cfidwarf.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
cfileutl.pas Every compile gets actual current directory (fix for Textmode IDE) 2025-01-10 18:38:22 +00:00
cg64f32.pas
cgbase.pas Support for tmmreg. 2025-06-08 22:21:11 +02:00
cgexcept.pas
cghlcpu.pas + a_bit_scan_reg_reg gets a flag if src cannot be zero: this simplifies the generated code 2025-02-08 14:27:48 +01:00
cgobj.pas + a_bit_scan_reg_reg gets a flag if src cannot be zero: this simplifies the generated code 2025-02-08 14:27:48 +01:00
cgutils.pas + function needs_check_for_fpu_exceptions to unify fpu exception handling 2024-02-13 17:42:21 +01:00
cmsgs.pas * Use dynamic arrays for compiler messages 2025-03-20 17:01:31 +01:00
comphook.pas * Allow to specify message when calling internal error 2025-09-29 20:41:43 +02:00
compiler.pas * (hopefully) more consistent message when the compiler is stopped during showing the help screen, resolves #39455 2024-04-25 22:12:31 +02:00
compinnr.pas + random bits for quad support on RiscV 2025-01-06 15:21:18 +01:00
comprsrc.pas * Allow to process .fmx files just as .lfm/.dfm files 2025-02-07 16:12:05 +01:00
comptty.pas
constexp.pas Simplify constexp.pas and fix certain edge cases. 2024-11-17 12:39:18 +00:00
COPYING.txt
cprofile.pas
crefs.pas
cresstr.pas * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
cscript.pas
cstreams.pas
ctask.pas compiler: when queue is stuck, write state of waiting for, issue #41386 2025-09-15 08:42:08 +02:00
cutils.pas Change CompareChar uses inside compiler/RTL to CompareByte. 2025-02-07 20:51:50 +03:00
dbgbase.pas Add globals to implementation _USES clause to prepare move of V_XXX constants to globals unit 2023-09-09 06:54:30 +00:00
dbgcodeview.pas
dbgdwarf.pas * Dwarf 3+: write always a type for enums 2025-04-17 23:25:06 +02:00
dbgdwarfconst.pas * spelling fixed 2023-03-26 15:55:37 +02:00
dbgstabs.pas
dbgstabx.pas
defcmp.pas + add an explicit function to compare two return types of a function or operator (in contrast to compare_defs it also treats two undefined defs as different if they aren't the exactly same) 2025-10-17 18:06:48 +02:00
defutil.pas Modify is_inlimit function to use setlow instead of setbase field 2025-05-24 08:55:21 +00:00
dirparse.pas - disallow enabling regvars for WebAssembly, because it's not supported, yet 2024-08-25 19:58:05 +03:00
dwarfbase.pas
elfbase.pas
entfile.pas Fix unaligned memory read inside x80 fpu type getrealsize method 2025-10-03 09:31:45 +03:00
export.pas + support 'promising last' exports 2023-06-16 11:00:19 +03:00
expunix.pas
finput.pas compiler: added module state ms_compiled_waitcrc and delay writing ppu until all used unit crcs are computed 2025-09-03 02:41:59 +02:00
fmodule.pas compiler: added module state ms_compiled_waitcrc and delay writing ppu until all used unit crcs are computed 2025-09-03 02:41:59 +02:00
fpcdefs.inc Introduce CPU_BC_HAS_SIZE_LIMIT to limit acceptable range when looking for unconditional jump label, to remain eligible for exchange with conditional jump 2025-10-23 23:46:57 +02:00
fpchash.pas * make UpdateFnv64 closer to the original algorithm as proposed by Gareth 2024-09-15 21:49:02 +02:00
fpcp.pas * search using the real package name instead of the uppercased one so that an as-is cased package will be found as well 2024-01-07 18:09:50 +01:00
fpkg.pas
fppu.pas + added target switch ts_wasm_native_exnref_exceptions for the future implementation of WebAssembly 'exceptions with exnref' support 2025-09-22 19:26:17 +03:00
gendef.pas * partial fix #40934: don't remove the DEF file if cs_link_deffile is set (thus if the user explicitly wants the file) 2024-10-11 16:20:28 +02:00
globals.pas Introduce CPU_BC_HAS_SIZE_LIMIT to limit acceptable range when looking for unconditional jump label, to remain eligible for exchange with conditional jump 2025-10-23 23:46:57 +02:00
globstat.pas * Restore messages state 2024-03-05 07:56:14 +00:00
globtype.pas * normalize tree: - do not allow statements in expressions 2025-10-12 16:57:26 +02:00
hlcg2ll.pas + a_bit_scan_reg_reg gets a flag if src cannot be zero: this simplifies the generated code 2025-02-08 14:27:48 +01:00
hlcgobj.pas + introduced optimize_op_const method to the high level code generator, similar to the low level code generator 2025-10-11 20:34:45 +03:00
htypechk.pas * when checking for the <dyn array> + <dyn array> overload then *both* sides need to be dynamic arrays 2025-10-21 23:40:25 +02:00
impdef.pas
import.pas
ldscript.pas * SetString needs correctly typed argument 2023-07-25 16:06:53 +02:00
link.pas * Correct allocation size for IsHandled, index is 1-based 2025-03-24 16:47:02 +01:00
macho.pas
machoutils.pas
Makefile morphos: convert the Un*x path used by the Makefile to an Amiga path before feeding it into the compiler. this fixes cycle on MorphOS again 2025-10-26 00:26:52 +02:00
Makefile.fpc morphos: convert the Un*x path used by the Makefile to an Amiga path before feeding it into the compiler. this fixes cycle on MorphOS again 2025-10-26 00:26:52 +02:00
MPWMake
nadd.pas * Delphi allows comparisons (>, >=, < and <=, but not = or <>) for different pointer types if POINTERMATH is enabled either for the involved code or for both involved pointer types 2025-10-21 20:10:20 +02:00
nbas.pas * "no_exit_statement_in_block" replaced with "not has_child_of_type(..., [exitn])" 2024-10-18 18:26:48 +00:00
ncal.pas * fix #41458: when registering the procdef ensure that it's owner is set to the same symtable as the procsym's owner 2025-10-24 18:15:33 +02:00
ncgadd.pas * generic second_addordinal can handle swapped nodes 2024-08-18 22:03:22 +02:00
ncgbas.pas * Flags specific to TAsmNode have been moved to their own field 2024-03-02 21:31:21 +01:00
ncgcal.pas * most of tcgcallparanode.secondcallparan's code was moved into two new methods: 2025-02-25 07:21:13 +02:00
ncgcnv.pas * avoid to call a_loadmm_reg_intreg for mm registers larger than the int registers, resolves #41252 2025-05-11 15:41:11 +02:00
ncgcon.pas Avoid adding size if tf_needs_symbol_size is not in target_info.flags 2025-05-16 21:13:19 +00:00
ncgflw.pas Add tsym parameter to ttgobj.getlocal method. 2025-06-05 12:19:57 +00:00
ncghlmat.pas
ncginl.pas * simplified code 2025-02-10 22:29:18 +01:00
ncgld.pas * strange oversight fixed that tcgassignmentnode.pass_generate_code doesn't handle a certain 2025-08-12 22:43:59 +02:00
ncgmat.pas ncgmat: fix location for constant divisions-by-power-of-two after a291347d 2025-09-19 01:50:17 +02:00
ncgmem.pas * another 64-bit ALU, 32-bit address fix in tcgvecnode.update_reference_reg_packed 2025-10-11 19:31:39 +03:00
ncgnstfl.pas
ncgnstld.pas
ncgnstmm.pas
ncgobjc.pas * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
ncgopt.pas
ncgrtti.pas Extended RTTI: more Objective-C handling 2025-01-05 11:50:26 +01:00
ncgset.pas * spelling 2025-09-10 23:07:27 +02:00
ncgutil.pas * nf_pass1_done, nf_error, nf_processing and nf_do_not_execute 2024-03-24 18:14:49 +00:00
ncgvmt.pas Fix emit_ansistr_const: its input is not guaranteed to be #0-terminated 2025-03-24 23:02:10 +01:00
ncnv.pas * another internal error 99080501 fixed, resolves #41299 2025-06-24 22:46:20 +02:00
ncon.pas * allow generic parameters to be used as array limits, resolves #41358 2025-08-13 22:31:51 +02:00
nflw.pas * do not copy the full while loop body when converting while loops into if/repeat loops to avoid 2025-10-11 10:16:16 +02:00
ngenutil.pas * make thread var count size CPU dependent 2025-08-17 17:05:09 +02:00
ngtcon.pas Fix emit_ansistr_const: its input is not guaranteed to be #0-terminated 2025-03-24 23:02:10 +01:00
ninl.pas Fix bug report #41384 2025-09-02 12:30:34 +00:00
nld.pas * dont' allow assignments to array of const, resolves #41230 2025-04-09 22:36:23 +02:00
nmat.pas + get_int_value 2024-04-16 23:11:16 +02:00
nmem.pas * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
nobj.pas List all VMT entry with same name as method generating no overload error 2025-10-18 01:01:59 +02:00
nobjc.pas * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
node.pas Add separate function printfileinfo 2025-09-24 00:17:20 +02:00
nopt.pas * Flags specific to TArrayConstructorNode have been moved to their own field 2024-03-02 21:31:21 +01:00
nset.pas * formatting 2025-08-14 22:32:29 +02:00
nutils.pas * compilation fixed 2025-09-15 22:51:24 +02:00
objcasm.pas
objcdef.pas
objcgutl.pas Fix emit_ansistr_const: its input is not guaranteed to be #0-terminated 2025-03-24 23:02:10 +01:00
objcutil.pas
ogbase.pas [AVR] Add device information in .note.gnu.avr.deviceinfo section. 2025-10-26 14:59:57 +01:00
ogcoff.pas * compilation of all target cpus fixed 2025-10-26 15:14:16 +01:00
ogelf.pas [AVR] Add device information in .note.gnu.avr.deviceinfo section. 2025-10-26 14:59:57 +01:00
oglx.pas
ogmacho.pas
ogmap.pas * SetString needs correctly typed argument 2023-07-25 16:06:53 +02:00
ognlm.pas
ogomf.pas * use NtoLE instead of LEtoN in OMF DoRelocationFixup when converting from native to little endian. No functional changes, just better readability. 2023-11-02 14:28:48 +02:00
ogrel.pas * compilation of all target cpus fixed 2025-10-26 15:14:16 +01:00
ogwasm.pas [AVR] Add device information in .note.gnu.avr.deviceinfo section. 2025-10-26 14:59:57 +01:00
omfbase.pas * compilation of all target cpus fixed 2025-10-26 15:14:16 +01:00
optbase.pas * patch by Rika: Don’t pretend optinfo^.index can be aword(−1), resolves #40405 2024-03-03 22:49:28 +01:00
optconstprop.pas * do_optconstpropagate and do_optdeadstoreelim now set their 2024-09-22 12:13:14 +00:00
optcse.pas * more aggressive cse on thread vars 2025-03-29 22:31:13 +01:00
optdead.pas
optdeadstore.pas * do_optconstpropagate and do_optdeadstoreelim now set their 2024-09-22 12:13:14 +00:00
optdfa.pas * properly take care of tempinitcode when calculating def./use. sums of tempcreate nodes 2024-11-25 20:33:54 +01:00
options.pas * changed the default WebAssembly exceptions mode from 'no exceptions' to 2025-10-06 20:30:37 +03:00
optloadmodifystore.pas Fix cycle for non-LLVM 2025-06-15 23:06:49 +02:00
optloop.pas optloop.pas: move global variables to a context object. 2025-09-14 10:43:11 +02:00
opttail.pas Add debugging of changed nodes inside opttail unit with DEBUG_OPTTAIL 2025-09-24 00:17:20 +02:00
opttree.pas * disable DEBUG_NORMALIZE 2025-10-12 17:10:34 +02:00
optutils.pas * get rid of the hack that tlabelnode inherits from tunarynode and stores a statement in left, resolves #40964 2024-10-26 16:11:24 +02:00
optvirt.pas WPO: don't crash on TP-style objects with only abstract virtual methods 2025-01-01 15:23:06 +01:00
owar.pas * Dyn array for ReadArchive variables 2025-03-20 17:01:31 +01:00
owbase.pas * Change buffer to dyn array 2025-03-20 17:01:31 +01:00
owomflib.pas Add globals to implementation _USES clause to prepare move of V_XXX constants to globals unit 2023-09-09 06:54:30 +00:00
parabase.pas
paramgr.pas
parser.pas * Call free instead of destroy 2025-03-21 14:25:19 +01:00
pass_1.pas * Call free instead of destroy 2025-03-21 14:25:19 +01:00
pass_2.pas * nf_pass1_done, nf_error, nf_processing and nf_do_not_execute 2024-03-24 18:14:49 +00:00
pbase.pas * Initial commit from patch in mantis issue #35827 2025-07-27 14:18:08 +02:00
pcp.pas
pdecl.pas * when declaring a generic type ensure that the newly added dummy symbol correctly resolves to potential symbols from another unit 2025-10-17 18:06:48 +02:00
pdecobj.pas * throw an error if a second forward type declaration is found at the place of this second 2025-04-22 20:32:25 +02:00
pdecsub.pas * extend add_generic_dummysym so that an explicit name can be provided in case the symbol does not yet have one set 2025-10-17 18:06:48 +02:00
pdecvar.pas * allow absolute on array of const parameters, resolves #41292 2025-06-23 22:21:16 +02:00
pexports.pas * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
pexpr.pas * always forward the symbol to generate_specialization_phase1() in handle_specialize_inline_specialization() 2025-10-31 15:26:55 +01:00
pgentype.pas * also store and restore the optoken when specializing to avoid potential issues when checking for compatible operator overloads 2025-10-21 23:40:25 +02:00
pgenutil.pas * adjust generate_specialization() so that it always takes a symbol name and its symtable 2025-10-31 15:42:37 +01:00
pinline.pas * Call free instead of destroy 2025-03-21 14:25:19 +01:00
pkgutil.pas
pmodules.pas Update esp32c3 for esp-idf v5.5 2025-09-10 22:42:42 +02:00
pp.lpi
pp.pas * Remove MMM after discussion on core 2025-03-11 09:57:26 +01:00
pparautl.pas * use new compare_rettype() to compare the return types of functions to decide whether they can be added as overloads so that operator overloads that have (different) generic types as return values are treated as different 2025-10-17 18:06:48 +02:00
ppc68k.lpi
ppc8086.lpi
ppcaarch64.lpi * update project file 2024-07-11 22:12:38 +02:00
ppcarm.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcavr.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcjvm.lpi * Undo changes to lpi files, committed by accident 2025-03-20 17:41:14 +01:00
ppcloongarch64.lpi + lazarus project for a loongarch64 compiler 2024-02-15 22:47:31 +01:00
ppcmips64el.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcmips.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcmipsel.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcppc64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcppc64le.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcppc.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcriscv32.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcriscv64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcsparc64.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcsparc.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcwasm32.lpi * Undo changes to lpi files, committed by accident 2025-03-20 17:41:14 +01:00
ppcx64.lpi compiler: added module state ms_compiled_waitcrc and delay writing ppu until all used unit crcs are computed 2025-09-03 02:41:59 +02:00
ppcx64llvm.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcxtensa.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppcz80.lpi * project files updated 2023-03-15 23:01:44 +01:00
ppheap.pas
ppu.pas Change do_internalerror into do_internalerrorex to avoid warning when TEST_CRC_ERROR macro is set 2025-10-18 01:01:58 +02:00
procdefutil.pas Fix LLVM cycle with -O4 option. 2025-10-18 09:24:20 +00:00
procinfo.pas * also keep track of captured def (necessary when functions are captured) 2023-12-29 20:26:45 +01:00
psabiehpi.pas
pstatmnt.pas * Initial commit from patch in mantis issue #35827 2025-07-27 14:18:08 +02:00
psub.pas * normalize tree: - do not allow statements in expressions 2025-10-12 16:57:26 +02:00
psystem.pas Switch from functions for the Atomic*-family to intrinsics 2024-12-12 22:05:15 +01:00
ptconst.pas
ptype.pas * adjust generate_specialization() so that it always takes a symbol name and its symtable 2025-10-31 15:42:37 +01:00
raatt.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
rabase.pas * Use new and dispose for asmmodeinfos 2025-03-20 17:01:31 +01:00
rasm.pas
rautils.pas Disable limitation of nonlocal setting for LLVM compiler 2025-02-23 09:22:10 +00:00
README.txt
rescmn.pas + initial compiler support for WebAssembly resources. Requires WebAssembly 2024-06-25 03:07:55 +03:00
rgbase.pas
rgobj.pas * Fixed inefficiency in register allocator where resized registers weren't considered 2025-10-16 21:55:07 +02:00
scandir.pas * handle Delphi's $DEFINITIONINFO and $YD like $REFERENCEINFO as the unsupported $Y switch 2025-10-21 23:40:25 +02:00
scanner.pas scanner: please do not try to byte swap a byte. not even on big endian. 2025-09-11 20:32:58 +02:00
switches.pas + take care of asmmode in $push/$pop, resolves #41190 2025-03-22 21:16:03 +01:00
symbase.pas * Replace object with record where possible 2024-05-04 16:44:32 +02:00
symconst.pas Postponing building of VMT until inheritance chain is specialized 2024-12-08 17:54:50 +00:00
symcreat.pas LLVM: always added related high parameters to parentfpstruct 2025-06-15 20:34:48 +02:00
symdef.pas * use the pretty symbol name when generating the name for a "class of" type 2025-10-31 15:23:36 +01:00
symsym.pas Fix typo, as suggested in issue 41465 2025-10-23 21:29:41 +00:00
symtable.pas * when searching for an assignment operator to a typed pointer type then also search for an assignment operator to an untyped pointer if nothing suitable was found 2025-10-21 23:40:25 +02:00
symtype.pas * compilation (hopefully) fixed 2025-09-29 21:30:36 +02:00
symutil.pas * Make compilerwidestring a class using dyn array, rework tstringconstnode: value_str -> valueas, valuews 2025-03-20 17:01:31 +01:00
syscinfo.pas m68k: basic DOS syscall generation for human68k 2023-11-30 23:43:27 +00:00
systems.inc * fixed compilation of loongarch compiler 2025-09-29 21:02:45 +02:00
systems.pas * RiscV: ABI naming compliant with official docs 2025-09-29 21:02:45 +02:00
tgobj.pas * fixed warning 2025-09-24 10:21:17 +03:00
tokens.pas + also allow declaring an external as 'suspending first' 2023-06-13 09:56:44 +03:00
triplet.pas Add aarch64-iphonesim target 2023-03-27 18:45:00 +00:00
verbose.pas * Allow to specify message when calling internal error 2025-09-29 20:41:43 +02:00
version.pas Add loongarch64 architecture support to compiler 2023-02-05 19:18:48 +00:00
versioncmp.pas
wasmbase.pas + added extra values to TWasmNameSubsectionType from the extended name section 2024-09-19 06:35:49 +03:00
widestr.pas Fix previous commit 105382b8 by setting Temp to zero if maxi is zero 2025-05-05 15:00:04 +00:00
wpo.pas
wpobase.pas * Write byte dyn array 2025-03-20 17:01:31 +01:00
wpoinfo.pas * Change pointer-to-array of deref to dynamic array 2025-03-20 17:01:31 +01:00

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