delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1997/12/29/10:16:22

Message-Id: <m0xmbIQ-000S2WC@inti.gov.ar>
Comments: Authenticated sender is <salvador AT natacha DOT inti DOT gov DOT ar>
From: "Salvador Eduardo Tropea (SET)" <salvador AT inti DOT gov DOT ar>
Organization: INTI
To: dave DOT nugent AT ns DOT sympatico DOT ca, djgpp AT delorie DOT com
Date: Mon, 29 Dec 1997 12:22:32 +0000
MIME-Version: 1.0
Subject: Re: Help with optimizing for speed
In-reply-to: <34A40538.F19@ns.sympatico.ca>

Dave Nugent <dave DOT nugent AT ns DOT sympatico DOT ca> wrote:

> // xoxoxoxoxoxo    Snipped code... xoxoxoxoxoxoxoxoxoxoxoxox
> for(loop1=0;loop1<160;loop1++)
> memcpy(screen+loop1*320,screen_hold+offset+loop1*3200,320);
Avoid the multiply using additions:

char *scr,*scr_h;
scr=screen;
scr_h=screen_hold+offset;
for (loop1=160; loop1; scr+=320,scr_h+=3200,--loop1)
     memcpy(scr,scr_h,320);

Compile with -O2 -fomit-frame-pointer -ffast-math but not while debugging!

> // Now send the screen buffer to VGA Memory..
> _dosmemputl(screen, 16000, 0xa0000);  // Send "screen" buffer to VGA
> MEMORY
Good enough, a marginal gain can be achieved with far or near pointers.
 
> // Ok.. firstly I know I can use shifts << for the multip's.  I just
> wrote it this way to make easier to understand.
Don't worry GCC NEVER uses mul when the numbers are known.

> I am copyiny 160 lines of 320 bytes from screen_hold to screen buffers
> the offset and 3200 are related to where the screen is located in the
> buffer screen_hold.
> 
> I would appreciate any optimization suggestions, or any different
> approaches you may have.
I guess you can get another, don't know how much faster.

Greetings, SET
------------------------------------ 0 --------------------------------
Visit my home page: http://set-soft.home.ml.org/
or
Salvador Eduardo Tropea (SET). (Electronics Engineer)
Alternative e-mail: set-sot AT usa DOT net - ICQ: 2951574
Address: Curapaligue 2124, Caseros, 3 de Febrero
Buenos Aires, (1678), ARGENTINA
TE: +(541) 759 0013

- Raw text -


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