From: Nate Eldredge Newsgroups: comp.os.msdos.djgpp Subject: Re: Assembly in DJGPP (MMX etc) Date: Sun, 05 Sep 1999 12:40:21 -0700 Organization: Harvey Mudd College Lines: 27 Message-ID: <37D2C725.77BB05D8@hmc.edu> References: <7qtv03$ck$1 AT lure DOT pipex DOT net> NNTP-Posting-Host: mercury.st.hmc.edu Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Trace: nntp1.interworld.net 936560430 77184 134.173.45.219 (5 Sep 1999 19:40:30 GMT) X-Complaints-To: usenet AT nntp1 DOT interworld DOT net NNTP-Posting-Date: 5 Sep 1999 19:40:30 GMT X-Mailer: Mozilla 4.08 [en] (X11; I; Linux 2.2.12pre4 i586) To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp Reply-To: djgpp AT delorie DOT com Duncan Coutts wrote: > > I know the standard gcc inline assembler uses the AT&T syntax rather than > the more common intel notation. I suspect (but an no sure) that the inline > assembler is not very recent and does not support new instructions eg MMX, > P6 or 3DNOW (I noticed that it doesn't even support segment override > prefixes! - see farptr.h). > My question therefore is what is the best way to include assembly (including > new instruction sets - MMX in particular) into my programs. Also, I don't > suppose there is any chance of inlining instead of linking? > My aim is to optimise the rendering and geometric transformation routines in > my 3D engine using MMX instructions. > > Thanks in advance for any suggestions. Actually, I think Binutils 2.9.1 does support MMX, and more recent snapshots support 3dnow and and the other Instructions Of The Week. (Note that IIRC 2.9.1 has a bug where it generates the wrong opcode for `pand'.) GNU as *has* supported segment overrides since time out of mind, but in some versions they were buggy. farptr.h uses the .byte method in case it encounters one of these versions. -- Nate Eldredge neldredge AT hmc DOT edu