Temporarily remove build-in __sync_val_compare_and_swap() in the implementation of sync functions.

git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@10519 6f19259b-4bc3-4df7-8a09-765794883524
This commit is contained in:
qhuang8 2010-05-19 06:06:40 +00:00
parent afe7c8b2bb
commit 4e4a5f359d
2 changed files with 4 additions and 40 deletions

View File

@ -1,7 +1,7 @@
/** @file /** @file
GCC inline implementation of BaseSynchronizationLib processor specific functions. GCC inline implementation of BaseSynchronizationLib processor specific functions.
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -114,13 +114,6 @@ InternalSyncCompareExchange32 (
) )
{ {
// GCC 4.1 and forward supports atomic builtins
#if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)))
return __sync_val_compare_and_swap (Value, CompareValue, ExchangeValue);
#else
__asm__ __volatile__ ( __asm__ __volatile__ (
" \n\t" " \n\t"
"lock \n\t" "lock \n\t"
@ -133,9 +126,7 @@ InternalSyncCompareExchange32 (
"cc" "cc"
); );
return CompareValue; return CompareValue;
#endif
} }
/** /**
@ -163,13 +154,6 @@ InternalSyncCompareExchange64 (
IN UINT64 ExchangeValue IN UINT64 ExchangeValue
) )
{ {
// GCC 4.1 and forward supports atomic builtins
#if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)))
return __sync_val_compare_and_swap (Value, CompareValue, ExchangeValue);
#else
__asm__ __volatile__ ( __asm__ __volatile__ (
" \n\t" " \n\t"
"push %%ebx \n\t" "push %%ebx \n\t"
@ -186,8 +170,4 @@ InternalSyncCompareExchange64 (
); );
return CompareValue; return CompareValue;
#endif
} }

View File

@ -1,7 +1,7 @@
/** @file /** @file
GCC inline implementation of BaseSynchronizationLib processor specific functions. GCC inline implementation of BaseSynchronizationLib processor specific functions.
Copyright (c) 2006 - 2009, Intel Corporation. All rights reserved.<BR> Copyright (c) 2006 - 2010, Intel Corporation. All rights reserved.<BR>
Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR> Portions copyright (c) 2008 - 2009, Apple Inc. All rights reserved.<BR>
This program and the accompanying materials This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License are licensed and made available under the terms and conditions of the BSD License
@ -49,7 +49,6 @@ InternalSyncIncrement (
); );
return Result; return Result;
} }
@ -115,12 +114,7 @@ InternalSyncCompareExchange32 (
IN UINT32 ExchangeValue IN UINT32 ExchangeValue
) )
{ {
// GCC 4.1 and forward supports atomic builtins
#if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)))
return __sync_val_compare_and_swap (Value, CompareValue, ExchangeValue);
#else
__asm__ __volatile__ ( __asm__ __volatile__ (
"lock \n\t" "lock \n\t"
@ -134,9 +128,7 @@ InternalSyncCompareExchange32 (
"cc" "cc"
); );
return CompareValue; return CompareValue;
#endif
} }
@ -165,12 +157,6 @@ InternalSyncCompareExchange64 (
IN UINT64 ExchangeValue IN UINT64 ExchangeValue
) )
{ {
// GCC 4.1 and forward supports atomic builtins
#if ((__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 1)))
return __sync_val_compare_and_swap (Value, CompareValue, ExchangeValue);
#else
__asm__ __volatile__ ( __asm__ __volatile__ (
"lock \n\t" "lock \n\t"
@ -185,8 +171,6 @@ InternalSyncCompareExchange64 (
); );
return CompareValue; return CompareValue;
#endif
} }