florian 77cf67b59a o unified interface of i386 and x86-64 cpu unit: %!s(int64=9) %!d(string=hai) anos
..
cpu.pp 77cf67b59a o unified interface of i386 and x86-64 cpu unit: %!s(int64=9) %!d(string=hai) anos
fastmove.inc 12030f904a - removed FPC_HAS_VALGRINDBOOL-related checks, FPC 2.6.4 has it %!s(int64=10) %!d(string=hai) anos
i386.inc b16c6f8ced * i386 and x86_64 changes for Delphi compatibility: %!s(int64=11) %!d(string=hai) anos
int64p.inc 88b58c3580 i386: added signed 64bit div/mod helpers in assembly. we have some 64bit heavy code where a direct helper results in about 8-10% of performance advantage compared to going through the generic wrapper + the unsigned function %!s(int64=11) %!d(string=hai) anos
makefile.cpu d39bfec4d2 + added missing i386 system unit includes fastmove.inc and int64p.inc to makefile.cpu %!s(int64=10) %!d(string=hai) anos
math.inc fc5f45f65c * 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. %!s(int64=11) %!d(string=hai) anos
mathu.inc b16c6f8ced * i386 and x86_64 changes for Delphi compatibility: %!s(int64=11) %!d(string=hai) anos
mmx.pp 88c2c77319 + is_sse3_cpu, put into cpu unit, so x86-64 and i386 can share source code %!s(int64=14) %!d(string=hai) anos
readme 9f31783a0a * old logs removed and tabs fixed %!s(int64=23) %!d(string=hai) anos
set.inc 4b3bf874df * Added CLDs in the RTL i386 inline asm routines, wrapped in {$ifdef %!s(int64=12) %!d(string=hai) anos
setjump.inc 74f9d719f1 * i386-win32 setjmp and longjmp: if SEH support is enabled, save/restore head of exception registration chain. Without this, a longjmp out of a function with exception frame(s) will leave these exception frames below ESP, which will fail integrity checks in OS and cause process termination if an exception occurs later on (or they may be overwritten by subsequent operations on stack and, again, cause undesired results). %!s(int64=11) %!d(string=hai) anos
setjumph.inc 74f9d719f1 * i386-win32 setjmp and longjmp: if SEH support is enabled, save/restore head of exception registration chain. Without this, a longjmp out of a function with exception frame(s) will leave these exception frames below ESP, which will fail integrity checks in OS and cause process termination if an exception occurs later on (or they may be overwritten by subsequent operations on stack and, again, cause undesired results). %!s(int64=11) %!d(string=hai) anos
strings.inc e4b05477e1 * put the cld instructions behind {$ifdef FPC_ENABLED_CLD} in i386/strings*.inc %!s(int64=12) %!d(string=hai) anos
stringss.inc e4b05477e1 * put the cld instructions behind {$ifdef FPC_ENABLED_CLD} in i386/strings*.inc %!s(int64=12) %!d(string=hai) anos

readme

This directory contains only RTL parts specific to the processor I386 family.

(They are specific because they contain assembler instructions)

Include files for system are :
heap.inc (heap handling)
set.inc (sets operations)
math.inc (mathematic operations using the coprocessor)
i386.inc (several functions/procedures containing assembler parts)
setjump.inc (setjmp/longjmp implementation for exceptions)
rttip.inc (rtti handling, for speed reasons)

Units are :
strings.pp (written in assembler for speed)
cpu.pp (routines to access cpu info)
mmx.pp (special mmx routines)