Re: Compiler support for Intel-MMX?

Florian Klaempfl <ba2395@fen.baynet.de>
29 Apr 1998 01:00:27 -0400

          From comp.compilers

Related articles
Compiler support for Intel-MMX? kyoung@newton.ruph.cornell.edu (1998-04-15)
Re: Compiler support for Intel-MMX? fpeelo@portablesolutions.com (Frank Peelo) (1998-04-18)
Re: Compiler support for Intel-MMX? Gorup@wwa-fs.bayern.de (Andreas v. Gorup) (1998-04-18)
Re: Compiler support for Intel-MMX? mtiomkin@iil.intel.com (Michael Tiomkin) (1998-04-21)
Re: Compiler support for Intel-MMX? ba2395@fen.baynet.de (Florian Klaempfl) (1998-04-29)
Re: Compiler support for Intel-MMX? (fwd) reid@micro.ti.com (Reid Tatge) (1998-05-04)
Re: Compiler support for Intel-MMX? nnylfv@ny.ubs.com (Olivier Lefevre) (1998-05-04)
Re: Compiler support for Intel-MMX? Peter.Damron@Eng.Sun.COM (1998-05-07)
Re: Compiler support for Intel-MMX? meyer@lps.u-psud.fr (meyer) (1998-05-07)
| List of all articles for this month |

From: Florian Klaempfl <ba2395@fen.baynet.de>
Newsgroups: comp.compilers
Date: 29 Apr 1998 01:00:27 -0400
Organization: Compilers Central
References: 98-04-068 98-04-070
Keywords: arithmetic, optimize, 386

Frank Peelo schrieb:
>
> {MMX} : MMX support
> As of version 0.9.8, Free Pascal supports optimization for the MMX
> Intel processor.


....


> Things that change are Data with a
> size that is a multiple of 8 bytes is moved using the movq assembler
> instruction, which moves 8 bytes at a time


This wasn't a clever idea, we removed it and future versions will use
fld/fst.


> FP
> [Sounds like they're using it for block moves, which is certainly a fine
> idea but doesn't use any of the DSP-like arithmetic goodies. -John]


The new versions (0.99.x) contain a better MMX support, but it's still
in beta state (you need to recompile the compiler with -dSUPPORT_MMX)


the compiler allows the "explicit" use of MMX instructions:


var
      a,b,c : array[0..4] of integer;


begin
{$mmx+} { switch mmx instructions on }
      a:=b+c; { does a vectorial add of b and c }
      ....
{$saturation+} { work with saturating mmx instructions }
      a:=b+c;


Though I'am implementing that features, I'am not sure, if there are
serious applications for it. If you need _real_ (which is mostly
important where MMX is used) speed you should use assembler.
--


Post a followup to this message

Return to the comp.compilers page.
Search the comp.compilers archives again.