|
kusano |
7d535a |
|
|
kusano |
7d535a |
Directory overview:
|
|
kusano |
7d535a |
===================
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
As writing portable assembler sources supporting different operating
|
|
kusano |
7d535a |
systems, compilers and assemblers has proven to be extremely painful,
|
|
kusano |
7d535a |
the assembler sources have been converted into a more portable `db'
|
|
kusano |
7d535a |
format. Use these whenever possible.
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
src_gas sources converted for portable gcc/gas syntax
|
|
kusano |
7d535a |
src_masm sources converted for portable masm/tasm/wasm syntax
|
|
kusano |
7d535a |
src_nasm sources converted for portable nasm syntax
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
src assembler sources (you need the OpenSource nasm assembler)
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
obj pre-assembled object files
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Also look `src_XXX/all/asm_all.asm' which contains all assembler
|
|
kusano |
7d535a |
functions conveniently arranged into a single file.
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
Notes:
|
|
kusano |
7d535a |
======
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
- The assembler sources are designed for a flat 32-bit memory model
|
|
kusano |
7d535a |
running in protected mode - they should work with all i386
|
|
kusano |
7d535a |
32-bit compilers around.
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
- All functions expect a `cdecl' (C stack based) calling convention.
|
|
kusano |
7d535a |
The function return value will be placed into `eax'.
|
|
kusano |
7d535a |
All other registers are preserved.
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
- Prototypes for the assembler functions can be found in <lzo lzo_asm.h="">.</lzo>
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
- For reasons of speed all fast assembler decompressors (having `_fast'
|
|
kusano |
7d535a |
in their name) can access (write to) up to 3 bytes past the end of
|
|
kusano |
7d535a |
the decompressed (output) block. Data past the end of the compressed
|
|
kusano |
7d535a |
(input) block is never accessed (read from).
|
|
kusano |
7d535a |
[ technical note: because data is transferred in 32-bit units ]
|
|
kusano |
7d535a |
|
|
kusano |
7d535a |
- Finally you should test if the assembler versions are actually faster
|
|
kusano |
7d535a |
than the C version on your machine - some compilers can do a very good
|
|
kusano |
7d535a |
optimization job, and they also can optimize the code for a specific
|
|
kusano |
7d535a |
processor type.
|
|
kusano |
7d535a |
|