[ros-diffs] [akhaldi] 52100: [CRT/INTRINSICS] Timo Kreuzer: * Change inline assembly constraint from "r" to "q". "r" means any kind of register, including *si and *di, these cannot be used for 8bit operations ...

akhaldi at svn.reactos.org akhaldi at svn.reactos.org
Sun Jun 5 20:59:09 UTC 2011


Author: akhaldi
Date: Sun Jun  5 20:59:09 2011
New Revision: 52100

URL: http://svn.reactos.org/svn/reactos?rev=52100&view=rev
Log:
[CRT/INTRINSICS]
Timo Kreuzer:
* Change inline assembly constraint from "r" to "q". "r" means any kind of register, including *si and *di, these cannot be used for 8bit operations on x86, only x64 has sil, dil registers. But gcc is stupid and doesn't get that if we don't tell it explicitly, by using "q", which will only allow a, b, c, d registers. Fixes an assembler error messages that can occur under certain circumstances.

Modified:
    trunk/reactos/include/crt/mingw32/intrin_x86.h

Modified: trunk/reactos/include/crt/mingw32/intrin_x86.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/crt/mingw32/intrin_x86.h?rev=52100&r1=52099&r2=52100&view=diff
==============================================================================
--- trunk/reactos/include/crt/mingw32/intrin_x86.h [iso-8859-1] (original)
+++ trunk/reactos/include/crt/mingw32/intrin_x86.h [iso-8859-1] Sun Jun  5 20:59:09 2011
@@ -911,7 +911,7 @@
 __INTRIN_INLINE unsigned char _rotr8(unsigned char value, unsigned char shift)
 {
 	unsigned char retval;
-	__asm__("rorb %b[shift], %b[retval]" : [retval] "=rm" (retval) : "[retval]" (value), [shift] "Nc" (shift));
+	__asm__("rorb %b[shift], %b[retval]" : [retval] "=qm" (retval) : "[retval]" (value), [shift] "Nc" (shift));
 	return retval;
 }
 




More information about the Ros-diffs mailing list