To: djgpp AT delorie DOT com Subject: Re: Inline assembly - rotate left References: <4125673F DOT 005E129F DOT 00 AT derumg01 DOT cyberlink DOT eds DOT com> From: Michael Bukin Date: 26 Mar 1999 07:59:13 +0600 In-Reply-To: david.stegbauer@cz.opel.com's message of "Thu, 25 Mar 1999 18:19:58 +0100" Message-ID: <207ls5huz2.fsf@Sky.inp.nsk.su> Lines: 18 X-Mailer: Gnus v5.5/Emacs 19.34 Reply-To: djgpp AT delorie DOT com david DOT stegbauer AT cz DOT opel DOT com writes: > #ifdef __DJGPP__ > #define roll(val,cnt) asm volatile (\ > "movl %2, %%ecx \n\t" \ > "roll %%cl, %1" \ > :"=r" (val) \ > :"r"(val), "r"(cnt) \ ^ this must be 0. You need to use the same register for input and output of rotated value. As Nate said it would be better to use "c" constraint for cnt and get rid of clobbering. > :"%ecx") > #endif /*__DJGPP__*/ -- Michael Bukin