From: Michael H. <mic...@ea...> - 2000-02-11 05:15:55
|
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 It's messier than I thought :) The first optimisation seems to be pointer fetch/inc dependent. This code: Is: Should be: - ---------------------------------------- -------------------- ; genAssign ld -4(ix),e ; tmp = d -4(ix) = de ld -3(ix),d ; genPlus ; genPlusIncr ld c,e inc de ld b,d (ie really bad !) inc bc ; genAssign ld e,c ld d,b ; genAssign ld l,-2(ix) ; 0 hl = -2(ix) ld h,-1(ix) ; 1 ; genPlus ; genPlusIncr ld c,-2(ix) ; 0 inc -2(ix) ld b,-1(ix) ; 1 jr inc bc inc -1(ix) ; genAssign ld -2(ix),c ld -1(ix),b ; genPointerGet ld a,(hl) a = (hl) ld c,a ; genAssign (pointer) ld l,-4(ix) ; 0 hl = -4(ix) ld h,-3(ix) ; 1 ld (hl),c ld (hl),a ; genGoto jp 00101$ jp is generated from part of a standard memcpy: *d++ = *s++ - -- Michael -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.0.0 (GNU/Linux) Comment: For info see http://www.gnupg.org iD8DBQE4o5qLUejL3SuzxEgRAkYnAJwJT9BQU4nj1QbS/BGzqJPPHbxieACeKUrm CBfr/S6MAFK+fDBkDUzFAlA= =ER8C -----END PGP SIGNATURE----- |