From: "A.Appleyard" To: DJGPP AT SUN DOT SOE DOT CLARKSON DOT EDU Date: Wed, 22 Mar 1995 10:30:20 GMT Subject: Message to challier AT irit3-eth DOT irit DOT fr To: challier AT irit3-eth DOT irit DOT fr (Jean-Marc CHALLIER) I am sorry to clutter everybody's email with this, but when I tried to send it directly to him, an email daemon called `irit3.irit.fr' blasphemed thus:- ----- The following addresses had delivery problems ----- (unrecoverable error) ----- Transcript of session follows ----- 553 irit3.irit.fr config error: mail loops back to myself 554 ... Local configuration error ....................................................... I wrote:- > > /*-----*//* fast move s[0:n-1]=t[0:n-1] */ > > void str_cpy(void*s,void*t,int n){ ... You replied:- > It is quicker, BUT.... > 1/ you can include many assembly instructions in a single asm("...") statement > 2/ you don't have to push %esi and %edi, you can specify to the compiler that you are trashing them, and it'll decide all by himself if it needs to push/pop them ot not > 3/ it is between twice (if badly aligned) and four times as fast (if well aligned to use movsd). I know, it prevents you from using byte granularity, by you can have it using a little header and footer. If you are interrested, I can mail you the piece of source code I use when moving blocks of memory... > By the way, am I wrong, or did I see you on comp.lang.asm.x86, too ? That piece of source code comes from there (about 5-6 months ago, when it was started), since what was posted there was 2 cycles less than what I formerly used, on a 486 at least. (1) Each paragraph of your reply hereinabove quoted reached me as one very long line! (79, 169, 307!!, 249 characters in that order) (86, 176, 314, 256 when the tabulate characters are expanded). Obviously, when you are typing a message, your emailer folds long lines on the screen but NOT in what it sends to the net. You will have to press RET at the end of each line. My emailer and likely many others displays long lines truncated, not folded. (2):- > 1/ You can include many assembly instructions in a single asm("...") statement. In the asm(" "), what do I put between the instructions? \n or ; or what? > 2/ You don't have to push %esi and %edi, you can specify to the compiler that you are trashing them, and it'll decide all by himself if it needs to push/pop them or not. How do I specify it please? > 3/ It is between twice (if badly aligned) and four times as fast (if well aligned to use movsd). I know, it prevents you from using byte granularity, by you can have it using a little header and footer. If you are interested, I can mail you the piece of source code I use when moving blocks of memory... Please mail it. > By the way, am I wrong, or did I see you on comp.lang.asm.x86, too? That piece of source code comes from there (about 5-6 months ago, when it was started), since what was posted there was 2 cycles less than what I formerly used, on a 486 at least. I wrote the above routine myself. What is comp.lang.asm.x86? What context did (the version that you saw there) appear in? How do I subscribe to it? About how many messages per day are there on it?