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