www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/03/22/07:08:01

From: "A.Appleyard" <A DOT APPLEYARD AT fs2 DOT mt DOT umist DOT ac DOT uk>
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 -----
<challier AT irit3-eth DOT irit DOT fr>  (unrecoverable error)
   ----- Transcript of session follows -----
553 irit3.irit.fr config error: mail loops back to myself
554 <challier AT irit3-eth DOT irit DOT fr>... 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?

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019