Short: Amithlon x86 Native Copy Routines (K7/P3) Author: RaMstah@optushome.com.au (RaM) Uploader: RaMstah optushome com au (RaM) Type: misc/emu Version: 1.1 Architecture: i386-amithlon ================================================ *** Amithlon x86 Native Memory Copy Routines *** *** (c) 2002 RaM *** ================================================ USAGE: Just run from CLI, ensure 16k stack min. QUIET - no output MMX - Dont use K7/Athlon Extensions STD - Dont use K7 or 3D Now! FOR PIII CPU: Use only STD, others will crash FOR K7: Use as is (no args full opt) FOR Others: K6 try MMX, others try STD Comparisons made using custom tool MemTest with multitasking disabled and a minimal boot. No - No patch applied, just std calls, interesting to note how the JIT really comes into play. CMQ060 - CopyMemQuicker 060 from Aminet. Originally Busse(?), this version was 1.5b from Sintonen. Fastx86 - FastCopy (FastCopy.elf / FastCopy_x86) as supplied in the extras/ drawer on the Amithlon CD RaMithlon - My own x86 Athlon optimized patch. .------------------------------------------------------. CopyMem() CopyMemQuick() (system ticks) (system ticks) .------------------------------------------------------. | Copy | # of | No CMQ Fast RaMi | No CMQ Fast RaMi | | Size | Iters | 060 x86 thlon | 060 x86 thlon | `------------------------------------------------------' 4Kb 1000000 121 109 78 62 118 104 132 60 16Kb 250000 109 60 56 53 107 60 129 53 64Kb 22500 60 98 77 51 61 98 72 50 256Kb 1125 60 58 57 55 61 58 57 55 1024Kb 350 56 53 53 51 56 53 54 51 `------------------------------------------------------' NOTE NOTE -> Dont run before you have initialized a Picasso screen (i.e. AFTER iprefs in startup) as the x86 ASM code is making the native screen hack go funny while a copy is in progress. Probably doesn't like fastcalling the x86 at that stage. RaMithlon.elf must be residing in some dir as the RaMithlon Amiga executable. HISTORY ------- 1.1 FIXED PIII problems - 3D Now! op in both routines please for P3 use STD routine - Thanks to kolla for helping bite this bug. assert_stack() on startup - we must have min 16k Added MemTest binary for testing speed. 1.0 initial release