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