delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1994/04/06/10:17:00

Date: Wed, 6 Apr 94 09:47:00 -0400
From: dj AT ctron DOT com (DJ Delorie)
To: eliz AT is DOT elta DOT co DOT il
Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
Subject: Re: memxxx() library functions

> Cc: djgpp AT sun DOT soe DOT clarkson DOT edu
> Date: Wed, 06 Apr 94 13:21:54 +0200
> From: eliz AT is DOT elta DOT co DOT il
> X-Mts: smtp
> DJ-Mail-Sort: djgpp@, djgpp
> 
>   While browsing through the libc.a sources, I noticed that the functions of the
> memxxx family (memcpy(), memset() etc.) use the byte-oriented instructions
> (i.e. rep movsb, rep stosb and the like) rather than the word- or double-word
> oriented variations.  Is this intentional?  Won't the operation be sped-up two-
> or four-fold by using movsd/stosd instructions?

I'll look at improving them.  I'll probably need custom functions for
specific widths (for movedata, at least).

>   And while on this theme, let me ask (maybe not DJGCC, but GCC) question: how,
> if at all, can I ask GCC to produce these functions as inline (i.e. assembly-
> language macros or built-in functions)?

Write a static inline function that uses asm operations.  The ones in
libc.a won't be inlined.


- Raw text -


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