mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-05-02 16:34:54 +02:00
![]() + RTL support: o VFP exceptions are disabled by default on Darwin, because they cause kernel panics on iPhoneOS 2.2.1 at least o all denormals are truncated to 0 on Darwin, because disabling that also causes kernel panics on iPhoneOS 2.2.1 (probably because otherwise denormals can also cause exceptions) * set softfloat rounding mode correctly for non-wince/darwin/vfp targets + compiler support: only half the number of single precision registers is available due to limitations of the register allocator + added a number of comments about why the stackframe on ARM is set up the way it is by the compiler + added regtype and subregtype info to regsets, because they're also used for VFP registers (+ support in assembler reader) + various generic support routines for dealing with floating point values located in integer registers that have to be transferred to mm registers (needed for VFP) * renamed use_sse() to use_vectorfpu() and also use it for ARM/vfp support o only superficially tested for Linux (compiler compiled with -Cpvfpv6 -Cfvfpv2 works on a Cortex-A8, no testsuite run performed -- at least the fpu exception handler still needs to be implemented), Darwin has been tested more thoroughly + added ARMv6 cpu type and made it default for Darwin/ARM + ARMv6+ implementations of atomic operations using ldrex/strex * don't use r9 on Darwin/ARM, as it's reserved under certain circumstances (don't know yet which ones) * changed C-test object files for ARM/Darwin to ARMv6 versions * check in assembler reader that regsets are not empty, because instructions with a regset operand have undefined behaviour in that case * fixed resultdef of tarmtypeconvnode.first_int_to_real in case of int64->single type conversion * fixed constant pool locations in case 64 bit constants are generated, and/or when vfp instructions with limited reach are present WARNING: when using VFP on an ARMv6 or later cpu, you *must* compile all code with -Cparmv6 (or higher), or you will get crashes. The reason is that storing/restoring multiple VFP registers must happen using different instructions on pre/post-ARMv6. git-svn-id: trunk@14317 - |
||
---|---|---|
.. | ||
dummyas.pp | ||
fixlog.pp | ||
fixmsg.pp | ||
fixnasm.pp | ||
fixtab.pp | ||
fpc.cft | ||
fpc.mpw | ||
fpc.pp | ||
fpccfg.inc | ||
fpcfg.inc | ||
fpcmkcfg.pp | ||
fpcsubst.pp | ||
fpimpdef.pp | ||
fpinc.cfg | ||
fpinc.ini | ||
fpini.inc | ||
gia64reg.pp | ||
gppc386.pp | ||
Makefile | ||
Makefile.fpc | ||
mk68kreg.pp | ||
mkarmins.pp | ||
mkarmreg.pp | ||
mkavrreg.pp | ||
mkmpsreg.pp | ||
mkppcreg.pp | ||
mkspreg.pp | ||
mkx86ins.pp | ||
mkx86reg.pp | ||
msg2inc.pp | ||
msgdif.pp | ||
msgused.pl | ||
ppudump.pp | ||
ppufiles.pp | ||
ppumove.pp | ||
README.txt | ||
samplecfg | ||
usubst.pp |
This directory contains some utilities that are used during the development of the Free Pascal Compiler. msg2inc : Convert a compiler message file (errorX.msg) to .inc files to include it as the default language in the compiler. It can also convert the .msg to .tex for inclusion the documentation nasmconv : Convert a Nasm insns.dat to i386tab.inc so it can be used with the compiler makecfg : This script will make the samplecfg for linux installations msgdif : analyzes the differences between two msg files msgdif errore.msg errord.msg will print out new error msg, removed old ones and will create a new file new.msg that will contain the new error messages (supposing TeX comment is after the message line itself) removed messages are prepended by "%%% " (they can be useful in case on error enum renaming !)