1. Pentiums and EU

I'm guessing Rob will have to answer this, so:

Rob, does ex.exe take advantage of extra features
found in 486/586 processors that aren't found
in 386's?

I could see serious benefits with having command
line switches for ex.exe that invoke processor
specific run-time enhancements.

ex -386      game.ex    --runs using only 386 commands
                        --usefull in determining if game.ex
                        --will run satisfactorily on 386's

ex -486      game.ex    --i've got one, so lets boost a bit

ex -586      game.ex    --i've got one, so lets boost to max

ex -586 -mmx game.ex    --even more improvements are possible

ex -P2       game.ex    --turns EU from "*FAST*" into
                        --"not safe without shoulder harnesses
                        --  and roll bars"

if all this hasn't been already done, i know it would be
asking a lot to make these changes.

alternatively:
===============
there is a bright side, i think, unless mistaken, watcom
has compiler switches that basically do this. could be
done today, available on the web page in hour or two.
i know i would DL another copy of ex.exe (called ex586.exe),
if you recompiled it with the -586 flag for watcom.
i'd DL it in a heartbeat. i think most on the list would too.

the nice thing about making 3-5 versions of ex.exe would be
that it wouldn't slow down ex.exe when running on a 386
because the code for the interpreter wouldn't have to be
changed by adding a buncha 'fluff' and a buncha testing to
see if it's using this or that processor.
the user would simply select the proper exX86.exe file to
execute their .ex file with.
nothing would be broken either. the only 'hard' part would
be distribution, but that is what batch files are for. :)

   make.bat     --shown for illustration, i do not mean to insult
                --*anyone's* intelligence here...
      copy makefile.386 makefile
      make
      copy makefile.486 makefile
      make
      copy makefile.586 makefile
      make
      copy makefile.mmx makefile --not sure if watcom does this
      make
      copy makefile.p2 makefile  --or if watcom does this either
      make
      pkzip euph20.zip \include\*.* \doc\*.* ex*.exe *.ex

it would only add a meager amount to the euph20.zip file...

or you could have eu20_386.zip,eu20_486.zip,eu20_586.zip
eu20_mmx.zip, & eu20_p2.zip instead...

*hoping* --Hawke'

new topic     » topic index » view message » categorize

2. Re: Pentiums and EU

Uhm, and I'm no expert here, but would there be runtime-problems in a
bound .ex file if say, I bind it with p2ex.ex, and you tried to run it
on your 486?

snortboy

new topic     » goto parent     » topic index » view message » categorize

3. Re: Pentiums and EU

Hawke writes:
> Rob, does ex.exe take advantage of extra features
> found in 486/586 processors that aren't found
> in 386's?

Yes. When I compile it with WATCOM C, I choose
C compiler options that produce the fastest possible
code for a Pentium, but do not use any instructions
that don't exist on a 386/486.

For example, a Pentium has two instruction pipelines,
so it can potentially execute 2 machine instructions at the same
time in parallel (superscalar) provided there are no dependencies
between the instructions, such as one instruction needs the result
of the previous instruction. There's an option to reorder machine
instructions to make this more likely. That option will speed
up the code on a Pentium, but won't hurt performance on a
386 or 486. For the older processors the order doesn't matter
(usually).

As an other example, on a Pentium, 8-byte floating-point
numbers load faster to/from memory if they are aligned
on an 8-byte boundary in memory. For a 386/486 it doesn't
matter, 4-byte alignment is enough. So Euphoria
aligns f.p. numbers on 8-byte boundaries.

In general, most Pentium-specific optimizations are
unlikely to hurt performance on the older processors. It's not
worth it to have separate versions optimized specifically for
a 386 or a 486. You might only gain 1% at best.

Regards,
     Rob Craig
     Rapid Deployment Software
     http://members.aol.com/FilesEu/

new topic     » goto parent     » topic index » view message » categorize

4. Re: Pentiums and EU

Noah Smith wrote:
> Uhm, and I'm no expert here, but would there be runtime-problems in a
> bound .ex file if say, I bind it with p2ex.ex, and you tried to run it
> on your 486?

yes, binding could present problems, but as Rob mentioned
in an email (that you may not have gotten yet)
most, if not all, of the pentium optimizations i was
thinking of, are actually implemented...

new topic     » goto parent     » topic index » view message » categorize

5. Re: Pentiums and EU

Robert Craig wrote:
> For example, a Pentium has two instruction pipelines,
> so it can potentially execute 2 machine instructions at the same
> time in parallel (superscalar)
that is the main optimization i was thinking of...

>There's an option to reorder machine
>instructions to make this more likely.
>That option will speed up the code on a Pentium,
>but won't hurt performance on a 386 or 486.
i didn't know that switch existed...
nice switch...

>It's not worth it to have separate versions
>optimized specifically for a 386 or a 486.
now that I know about what you have enumerated
upon here, i would, of course, agree...

thanks for the explanation and reply.
--Hawke'

new topic     » goto parent     » topic index » view message » categorize

Search



Quick Links

User menu

Not signed in.

Misc Menu