Updates to Tomato RAF including NGINX && PHP
[tomato.git] / release / src / router / lzo / asm / i386 / 00README.TXT
blob81b0142383a516fdb03a4b8af203f661c215009f
2 Directory overview:
3 ===================
5 As writing portable assembler sources supporting different operating
6 systems, compilers and assemblers has proven to be extremely painful,
7 the assembler sources have been converted into a more portable 'db'
8 format. Use these whenever possible.
10   src_gas       sources converted for portable gcc/gas syntax
11   src_masm      sources converted for portable masm/tasm/wasm syntax
12   src_nasm      sources converted for portable nasm syntax
14   src           assembler sources (you need the OpenSource nasm assembler)
16   obj           pre-assembled object files
18 Also look 'src_XXX/all/asm_all.asm' which contains all assembler
19 functions conveniently arranged into a single file.
22 Notes:
23 ======
25 - The assembler sources are designed for a flat 32-bit memory model
26   running in protected mode - they should work with all i386
27   32-bit compilers around.
29 - All functions expect a 'cdecl' (C stack based) calling convention.
30   The function return value will be placed into 'eax'.
31   All other registers are preserved.
33 - Prototypes for the assembler functions can be found in <lzo/lzo_asm.h>.
35 - For reasons of speed all fast assembler decompressors (having '_fast'
36   in their name) can access (write to) up to 3 bytes past the end of
37   the decompressed (output) block. Data past the end of the compressed
38   (input) block is never accessed (read from).
39   [ technical note: because data is transferred in 32-bit units ]
41 - Finally you should test if the assembler versions are actually faster
42   than the C version on your machine - some compilers can do a very good
43   optimization job, and they also can optimize the code for a specific
44   processor type.