mirror of https://github.com/acidanthera/audk.git
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:
parent
afe7c8b2bb
commit
4e4a5f359d
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -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
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue