* tcgloadnode.pass_generate_code: fixes for i8086 far data model fixes in the
  handling of method procsyms + even more ifdef i8086s removed



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27551 3ad0048d-3df7-0310-abae-a5850022a9f2
+ Inserted license header for AMath routines.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27552 3ad0048d-3df7-0310-abae-a5850022a9f2
* Fixed exp() result for +-Inf input, must be +Inf or 0, not NaN. This is mathematically correct and consistent with generic implementation of this function.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27553 3ad0048d-3df7-0310-abae-a5850022a9f2
* refactored i8086's thlcgcpu.location_force_mem:
  o The checks for types that need special handling moved to separate methods,
    because they'll probably be used by the other hlcg.a_load*loc* methods as
    well.
  o Use voidcodepointertype and voidpointertype to avoid the ifs for checking
    the memory model.



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27554 3ad0048d-3df7-0310-abae-a5850022a9f2
+ added i8086 specific implementation of thlcgcpu.a_load_loc_ref, which handles
  6-byte method pointers and other i8086 types that use loc.registerhi
* changed the i8086 specific code in tcgassignmentnode.pass_generate_code to
  use hlcg.a_load_loc_ref



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27555 3ad0048d-3df7-0310-abae-a5850022a9f2
* fixed ppudump after r27434



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27556 3ad0048d-3df7-0310-abae-a5850022a9f2
* fixed the reading of x86 pointer defs in ppudump after the ppuwrite_platform
  changes



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27557 3ad0048d-3df7-0310-abae-a5850022a9f2
* tx86addnode.second_addfloat: use single and double-precision memory locations without loading them on FPU stack if possible.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27558 3ad0048d-3df7-0310-abae-a5850022a9f2
+ added method is_far to i8086's tcpuprocdef and tcpuprocvardef
+ added helper function to i8086's symcpu is_proc_far that dispatches the call
  to the proper is_far method (because we can't make a cpu specific descendant
  of tabstractprocdef and add it there)
* all checks for (po_far in procoptions) in the i8086 code generator replaced
  with calls to is_proc_far



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27559 3ad0048d-3df7-0310-abae-a5850022a9f2
+ added $F directive handling, sets cs_force_far_calls (not implemented yet)



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27560 3ad0048d-3df7-0310-abae-a5850022a9f2
+ added the $F switch to the turbo and macSwitchTable, as that takes precedence
  over dir_forcefarcalls



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27561 3ad0048d-3df7-0310-abae-a5850022a9f2
+ override hlcg.a_call_name for i8086 and dispatch to the appropriate type of
  call (near or far), according to whether the procdef is near or far, instead
  of relying on the default for the memory model



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27562 3ad0048d-3df7-0310-abae-a5850022a9f2
* forgot to commit the changes to i386/symcpu.pas in r27549



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27563 3ad0048d-3df7-0310-abae-a5850022a9f2
+ support for FMA intrinsic: if there is no hardware support, the compiler throws an error.
  Currently it is implemented only for x86-CPUs supporting the FMA extension. While it would
  be possible to implement it in software or simulate fma(<single>,<single>,<single>) using
  double operations, it makes no sense in my opinion to do so.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27564 3ad0048d-3df7-0310-abae-a5850022a9f2
* compilation fixed

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27565 3ad0048d-3df7-0310-abae-a5850022a9f2
* fix compilation of i8086 compiler

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27566 3ad0048d-3df7-0310-abae-a5850022a9f2
+ show an error message 'procedure must be far' if an attempt is made to convert
  a near proc to a procvar in a i8086 far code memory model



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27567 3ad0048d-3df7-0310-abae-a5850022a9f2
Fix remaining failure for make testppudump at compiler level

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27568 3ad0048d-3df7-0310-abae-a5850022a9f2
* Patch from Reinier to fix upload (bug 25940)

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27569 3ad0048d-3df7-0310-abae-a5850022a9f2
* Made creating socket handler configurable

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27570 3ad0048d-3df7-0310-abae-a5850022a9f2