summaryrefslogtreecommitdiff
path: root/lzo/asm/i386/00README.TXT
diff options
context:
space:
mode:
authorArne Schwabe <arne@rfc2549.org>2012-04-16 19:21:14 +0200
committerArne Schwabe <arne@rfc2549.org>2012-04-16 19:21:14 +0200
commit3e4d8f433239c40311037616b1b8833a06651ae0 (patch)
tree98ab7fce0d011d34677b0beb762d389cb5c39199 /lzo/asm/i386/00README.TXT
Initial import
Diffstat (limited to 'lzo/asm/i386/00README.TXT')
-rw-r--r--lzo/asm/i386/00README.TXT45
1 files changed, 45 insertions, 0 deletions
diff --git a/lzo/asm/i386/00README.TXT b/lzo/asm/i386/00README.TXT
new file mode 100644
index 00000000..0d3dcf9f
--- /dev/null
+++ b/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.
+