1
2Directory overview:
3===================
4
5As writing portable assembler sources supporting different operating
6systems, compilers and assemblers has proven to be extremely painful,
7the assembler sources have been converted into a more portable `db'
8format. Use these whenever possible.
9
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
13
14  src           assembler sources (you need the OpenSource nasm assembler)
15
16  obj           pre-assembled object files
17
18Also look `src_XXX/all/asm_all.asm' which contains all assembler
19functions conveniently arranged into a single file.
20
21
22Notes:
23======
24
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.
28
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.
32
33- Prototypes for the assembler functions can be found in <lzo/lzo_asm.h>.
34
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 ]
40
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.
45
46