Author: Matt Taylor
Date: 23:41:38 01/14/03
Go up one level in this thread
On January 14, 2003 at 19:23:38, Sander de Zoete wrote: >Thanks Gerd, > >I also did some searching myself on the web. I ended up with a website where >SIMD was explained together with MMX,SSE,MAJC, etc. Then I also managed to >download the instruction sets from all these processor technologies. Can I use >these like this in Cplusplus (Borland) > >I really see a lot of potential here. > >// Put BITBOARD a into MMX >void SetBitboardIntoMMX(BITBOARD a, unsigned int b) >{ > asm > { > movq a > > } > // Shift a with value b to the right > asm > { > psrlw a, b > > } >} >Will something like this work? > >In an example a was represented by mm5 (probably the 6th memory space in MMX >(mm0 - mm7 if I recall correctly). How do I know what is in mm5? > >Sander. mm5 works exactly like a variable. How do you know what a and b are until you set them? Same thing for mm5 -- you have to initialize it with a movd or movq instruction. As for the significance of mm5, its significance is defined by you. If you put a in mm5, mm5 becomes a. If you put b in mm5, it becomes b. Note that you probably want to coalesce your statements like this: asm { movq a psrlw a, b } The syntax of the instructions is always going to look like this: operation dest, src By the way, Intel manual 245471-6 makes a very good reference. -Matt
This page took 0 seconds to execute
Last modified: Thu, 15 Apr 21 08:11:13 -0700
Current Computer Chess Club Forums at Talkchess. This site by Sean Mintz.