* support reg=NR_NO in thlcgcpu.reference_reset_base on i8086. This fixes test
  webtbs/tw26162.pp in the i8086 far data memory models.



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27807 3ad0048d-3df7-0310-abae-a5850022a9f2
* sqr(real) and sqrt(real): remove typeconv node inserted by initial call processing (see explanation in comments), allowing these functions to be evaluated using precision of argument. In particular, sqrt(single) and sqrt(double) now emit 'sqrtss' and 'sqrtsd' instructions on x86 targets with -Cfsse3. Non-x86 targets already have the necessary support in code generators.
* abs(real): handle the same way as sqrt and sqr, i.e. without casting to bestreal and back.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27808 3ad0048d-3df7-0310-abae-a5850022a9f2
* sqrt(real): for targets with emulated floating point, invoke float64_sqrt or float32_sqrt from softfpu code. Testing on ARM CPU shows that float64_sqrt executes about twice faster and offers better accuracy than fpc_sqrt_real from genmath.inc.
* softfpu.pp: changed float64_sqrt into a function, so it is consistent with other compiler-invoked routines.


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27809 3ad0048d-3df7-0310-abae-a5850022a9f2
* x86: fix spilling of sqrtss and sqrtsd instructions, they cannot have memory as destination.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27810 3ad0048d-3df7-0310-abae-a5850022a9f2
* pas2jni: Always specify unit prefix for types in the generated bridge code. 

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27811 3ad0048d-3df7-0310-abae-a5850022a9f2
+ added support for nested procvars in the i8086 far data memory models



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27812 3ad0048d-3df7-0310-abae-a5850022a9f2
 * add comments wrt TIFF magic numbers, mantis #26210


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27813 3ad0048d-3df7-0310-abae-a5850022a9f2
* fixed the global function to nested procvar conversion in the i8086 far data
  memory models



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27814 3ad0048d-3df7-0310-abae-a5850022a9f2
* Fixed sqrt procedure selection on arm-wince after r27809.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27815 3ad0048d-3df7-0310-abae-a5850022a9f2
* taddrnode: fixed getting the address of nested procs in tp mode in i8086 far
  data memory models



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27816 3ad0048d-3df7-0310-abae-a5850022a9f2
m68k: minor optimizations to g_proc_exit() - use LEA for stackpointer math which is better than ADDing large constants, also only modify the SP reg once

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27817 3ad0048d-3df7-0310-abae-a5850022a9f2
* abs(): when translated to generic fpc_abs_real() helper, typecast result back to original precision, similar to how it is done for sqr and sqrt. Fixes compilation on m68k after r27808 (m86k looks like the only target still needing this generic handling).


git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27818 3ad0048d-3df7-0310-abae-a5850022a9f2
* Updated header: this file is in cp866 encoding.

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27819 3ad0048d-3df7-0310-abae-a5850022a9f2
+ generate the stack segment for i8086 far data memory models from within fpc
  itself (instead of having a fixed 16k stack in the startup code). This allows
  setting the stack size in these models with the -Cs option.



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27820 3ad0048d-3df7-0310-abae-a5850022a9f2
removed silly ancient writeln debug from me...

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27821 3ad0048d-3df7-0310-abae-a5850022a9f2
* fixed multiplication by 64-bit constants on x86_64, mantis #26230



git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27822 3ad0048d-3df7-0310-abae-a5850022a9f2
  + test for mantis #26226 (already works with FPC 2.7.1)

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27823 3ad0048d-3df7-0310-abae-a5850022a9f2
* in i8086 far data memory models add reference to the beginning of stack from
  the startup code, so the object module, containing the stack segment doesn't
  get smartlinked away

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27824 3ad0048d-3df7-0310-abae-a5850022a9f2
* put the i8086-msdos stack segment in a separate object file

git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@27825 3ad0048d-3df7-0310-abae-a5850022a9f2
Read the deref of the fieldvarsym into the correct variable. I wonder how this ever went past the test suite O.o

symsym.pas, tstaticvarsym.ppuload:
  * read the deref of the fieldvarsym into fieldvarsymderef, not defaultconstsymderef


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