Use "iq" instead of "ir" for the register constraint. "iq" means 'an
authorMatthew Dillon <dillon@dragonflybsd.org>
Fri, 13 Feb 2004 18:44:42 +0000 (18:44 +0000)
committerMatthew Dillon <dillon@dragonflybsd.org>
Fri, 13 Feb 2004 18:44:42 +0000 (18:44 +0000)
commit5249a4cd383a3cb0f8bb9cbdc21df3dfa5d864b4
tree65658218a4df9adbf61e4020ebbe63dcfd93e1f8
parent9a7f38971bc68648f6933db11d5be1950950cba3
Use "iq" instead of "ir" for the register constraint.  "iq" means 'an
integer constant or one of %ax,%bx,%cx, or %dx.  The prior use of "ir"
could cause GCC to attempt to use a 'low byte' accessor on a register
that cannot be accessed that way, such as '%si' (e.g. %sil).  I see no
need to get fancy so I am just applying %iq to all the atomic instructions.
It's good enough.

Reported-by: YONETANI Tomokazu <qhwt+dragonfly-bugs@les.ath.cx>
sys/cpu/i386/include/atomic.h
sys/i386/include/atomic.h