fpc/rtl/i386
sergei 06192a8137 Values of managed variables are never ever used after decrementing reference on the variable, so there is no point of having a 'decrement reference' as a separate operation. We can always do 'finalize', i.e. clear the contents after decref.
* Modified fpc_ansistr_decr_ref and fpc_widestr_decr_ref so they always zero the pointer passed by reference. Other _decr_ref helpers already do it.
- Removed tcg.g_decrrefcount, calling cg.g_finalize instead.
- finalize_data_node and tcg.g_finalize: removed code generation for zeroing locations, because it is now done by RTL helpers. This further reduces code size.

As a total result of this change and r20118, the size of Lazarus executable is reduced by about 12%.

git-svn-id: trunk@20119 -
2012-01-19 23:11:09 +00:00
..
cpu.pp + is_sse3_cpu, put into cpu unit, so x86-64 and i386 can share source code 2011-08-20 12:01:48 +00:00
fastmove.inc * win32 system unit doesn't depend anymore directly on the main program, this is necessary to be able to keep it in a dll 2007-11-01 21:59:43 +00:00
i386.inc Values of managed variables are never ever used after decrementing reference on the variable, so there is no point of having a 'decrement reference' as a separate operation. We can always do 'finalize', i.e. clear the contents after decref. 2012-01-19 23:11:09 +00:00
int64p.inc - Cleaned out REGCALL defines 2011-10-13 17:02:23 +00:00
makefile.cpu
math.inc * reset FPU properly after an exception, resolves #12214 2008-09-25 19:15:54 +00:00
mathu.inc - Cleaned out REGCALL defines 2011-10-13 17:02:23 +00:00
mathuh.inc * moved *SSECSR to system unit 2006-05-11 19:13:54 +00:00
mmx.pp + is_sse3_cpu, put into cpu unit, so x86-64 and i386 can share source code 2011-08-20 12:01:48 +00:00
readme * old logs removed and tabs fixed 2002-09-07 16:01:16 +00:00
set.inc - removed FPC_NEW_BIGENDIAN_SETS define and if(n)defs 2009-08-23 08:16:40 +00:00
setjump.inc - Cleaned out REGCALL defines 2011-10-13 17:02:23 +00:00
setjumph.inc + initial implementation of iso style gotos in iso mode 2010-08-05 19:20:46 +00:00
strings.inc - removed stray "overload" modifiers in the implementation for strcopy and 2011-10-15 11:40:16 +00:00
stringss.inc - Cleaned out REGCALL defines 2011-10-13 17:02:23 +00:00
strpas.inc * remove $Log 2005-06-07 09:47:55 +00:00

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)