00README.TXT 1.6 KB

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