summaryrefslogtreecommitdiff
path: root/app/lzo/asm/i386/00README.TXT
diff options
context:
space:
mode:
Diffstat (limited to 'app/lzo/asm/i386/00README.TXT')
-rw-r--r--app/lzo/asm/i386/00README.TXT45
1 files changed, 45 insertions, 0 deletions
diff --git a/app/lzo/asm/i386/00README.TXT b/app/lzo/asm/i386/00README.TXT
new file mode 100644
index 00000000..81b01423
--- /dev/null
+++ b/app/lzo/asm/i386/00README.TXT
@@ -0,0 +1,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.
+