projects
/
platform
/
upstream
/
glib.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
unicode: Update to unicode 7.0.0
[platform/upstream/glib.git]
/
glib
/
gbitlock.c
diff --git
a/glib/gbitlock.c
b/glib/gbitlock.c
index
7674f9a
..
572c2d1
100644
(file)
--- a/
glib/gbitlock.c
+++ b/
glib/gbitlock.c
@@
-13,13
+13,13
@@
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
- * License along with this library; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
+ * License along with this library; if not, see <http://www.gnu.org/licenses/>.
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
*
* Author: Ryan Lortie <desrt@desrt.ca>
*/
+#include "config.h"
+
#include "gbitlock.h"
#include <glib/gmessages.h>
#include "gbitlock.h"
#include <glib/gmessages.h>
@@
-29,10
+29,9
@@
#include <glib/gslice.h>
#include "gthreadprivate.h"
#include <glib/gslice.h>
#include "gthreadprivate.h"
-#include "config.h"
-#undef HAVE_FUTEX
#ifdef G_BIT_LOCK_FORCE_FUTEX_EMULATION
#ifdef G_BIT_LOCK_FORCE_FUTEX_EMULATION
+#undef HAVE_FUTEX
#endif
#ifndef HAVE_FUTEX
#endif
#ifndef HAVE_FUTEX
@@
-207,12
+206,12
@@
g_bit_lock (volatile gint *address,
{
#ifdef USE_ASM_GOTO
retry:
{
#ifdef USE_ASM_GOTO
retry:
-
asm
volatile goto ("lock bts %1, (%0)\n"
- "jc %l[contended]"
- : /* no output */
- : "r" (address), "r" (lock_bit)
- : "cc", "memory"
- : contended);
+
__asm__
volatile goto ("lock bts %1, (%0)\n"
+
"jc %l[contended]"
+
: /* no output */
+
: "r" (address), "r" (lock_bit)
+
: "cc", "memory"
+
: contended);
return;
contended:
return;
contended:
@@
-280,12
+279,12
@@
g_bit_trylock (volatile gint *address,
#ifdef USE_ASM_GOTO
gboolean result;
#ifdef USE_ASM_GOTO
gboolean result;
-
asm
volatile ("lock bts %2, (%1)\n"
- "setnc %%al\n"
- "movzx %%al, %0"
- : "=r" (result)
- : "r" (address), "r" (lock_bit)
- : "cc", "memory");
+
__asm__
volatile ("lock bts %2, (%1)\n"
+
"setnc %%al\n"
+
"movzx %%al, %0"
+
: "=r" (result)
+
: "r" (address), "r" (lock_bit)
+
: "cc", "memory");
return result;
#else
return result;
#else
@@
-366,6
+365,12
@@
g_futex_int_address (const volatile void *address)
{
const volatile gint *int_address = address;
{
const volatile gint *int_address = address;
+ /* this implementation makes these (reasonable) assumptions: */
+ G_STATIC_ASSERT (G_BYTE_ORDER == G_LITTLE_ENDIAN ||
+ (G_BYTE_ORDER == G_BIG_ENDIAN &&
+ sizeof (int) == 4 &&
+ (sizeof (gpointer) == 4 || sizeof (gpointer) == 8)));
+
#if G_BYTE_ORDER == G_BIG_ENDIAN && GLIB_SIZEOF_VOID_P == 8
int_address++;
#endif
#if G_BYTE_ORDER == G_BIG_ENDIAN && GLIB_SIZEOF_VOID_P == 8
int_address++;
#endif