fpc/compiler/utils
Jonas Maebe d1538ab023 o added ARM VPFv2/VFPv3 support:
+ 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 -
2009-12-03 22:46:30 +00:00
..
dummyas.pp * properties properly set 2008-07-28 15:56:23 +00:00
fixlog.pp
fixmsg.pp
fixnasm.pp
fixtab.pp
fpc.cft * FPCAPACHE_1_13 or FPCAPACHE_2_0 define will determine what Apache version is taken 2007-12-30 20:46:27 +00:00
fpc.mpw
fpc.pp * Use ExeSearch instead of FileSearch to find compiler executable 2009-03-22 10:03:03 +00:00
fpccfg.inc * regenerated 2008-01-01 11:07:42 +00:00
fpcfg.inc * Revert wrong commit for fpcfg.inc 2009-11-20 11:09:19 +00:00
fpcmkcfg.pp
fpcsubst.pp
fpimpdef.pp
fpinc.cfg * fix for #11865 -Oppentium3 2008-08-14 10:24:06 +00:00
fpinc.ini + create svn add menu entry in tools menu 2008-05-11 07:36:30 +00:00
fpini.inc * regenerated 2008-05-11 07:36:50 +00:00
gia64reg.pp
gppc386.pp
Makefile * when "all" target is not used, unit dir was not created. 2009-11-22 11:36:36 +00:00
Makefile.fpc * when "all" target is not used, unit dir was not created. 2009-11-22 11:36:36 +00:00
mk68kreg.pp
mkarmins.pp
mkarmreg.pp o added ARM VPFv2/VFPv3 support: 2009-12-03 22:46:30 +00:00
mkavrreg.pp Merged revisions 5891-10167,10169-10180 via svnmerge from 2008-02-03 17:21:52 +00:00
mkmpsreg.pp
mkppcreg.pp
mkspreg.pp
mkx86ins.pp
mkx86reg.pp
msg2inc.pp Merged revisions 11894,12317 via svnmerge from 2008-12-10 21:33:53 +00:00
msgdif.pp * patch from KMS, resolves 10147 2008-01-02 09:43:55 +00:00
msgused.pl
ppudump.pp + Add target_x86_64_solaris constant 2009-11-20 10:51:02 +00:00
ppufiles.pp
ppumove.pp * fixed deprecated 2007-06-17 20:28:06 +00:00
README.txt * added .txt extensions to all README, TODO and COPYING files 2009-02-28 17:34:08 +00:00
samplecfg * use pipes instead of temporary files by default for assembling under 2009-11-20 13:20:01 +00:00
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 !)