Shadowrun: Awakened 29 September 2011 - Build 871
Classes | Defines | Functions
windows_ia32.h File Reference

Go to the source code of this file.

Classes

struct  __TBB_machine_load_store< T, S >
struct  __TBB_machine_load_store< T, 8 >

Defines

#define __TBB_AtomicAND(P, V)   __TBB_machine_AND(P,V)
#define __TBB_AtomicOR(P, V)   __TBB_machine_OR(P,V)
#define __TBB_BIG_ENDIAN   0
#define __TBB_CompareAndSwap1(P, V, C)   __TBB_machine_cmpswp1(P,V,C)
#define __TBB_CompareAndSwap2(P, V, C)   __TBB_machine_cmpswp2(P,V,C)
#define __TBB_CompareAndSwap4(P, V, C)   __TBB_machine_cmpswp4(P,V,C)
#define __TBB_CompareAndSwap8(P, V, C)   __TBB_machine_cmpswp8(P,V,C)
#define __TBB_CompareAndSwapW(P, V, C)   __TBB_machine_cmpswpW(P,V,C)
#define __TBB_DEFINE_ATOMICS(S, T, U, A, C)
#define __TBB_FetchAndAdd1(P, V)   __TBB_machine_fetchadd1(P,V)
#define __TBB_FetchAndAdd2(P, V)   __TBB_machine_fetchadd2(P,V)
#define __TBB_FetchAndAdd4(P, V)   __TBB_machine_fetchadd4(P,V)
#define __TBB_FetchAndAdd8(P, V)   __TBB_machine_fetchadd8(P,V)
#define __TBB_FetchAndAddW(P, V)   __TBB_machine_fetchaddW(P,V)
#define __TBB_FetchAndStore1(P, V)   __TBB_machine_fetchstore1(P,V)
#define __TBB_FetchAndStore2(P, V)   __TBB_machine_fetchstore2(P,V)
#define __TBB_FetchAndStore4(P, V)   __TBB_machine_fetchstore4(P,V)
#define __TBB_FetchAndStore8(P, V)   __TBB_machine_fetchstore8(P,V)
#define __TBB_FetchAndStoreW(P, V)   __TBB_machine_fetchstoreW(P,V)
#define __TBB_Load8(P)   __TBB_machine_load8(P)
#define __TBB_load_with_acquire(L)   __TBB_machine_load_with_acquire((L))
#define __TBB_Log2(V)   __TBB_machine_lg(V)
#define __TBB_Pause(V)   __TBB_machine_pause(V)
#define __TBB_Store8(P, V)   __TBB_machine_store8(P,V)
#define __TBB_store_with_release(L, V)   __TBB_machine_store_with_release((L),(V))
#define __TBB_WORDSIZE   4
#define __TBB_Yield()   SwitchToThread()

Functions

 __declspec (dllimport) int __stdcall SwitchToThread(void)
static void __TBB_machine_AND (volatile void *operand, __int32 addend)
static __int8 __TBB_machine_cmpswp1 (volatile void *ptr, __int8 value, __int8 comparand)
static __int16 __TBB_machine_cmpswp2 (volatile void *ptr, __int16 value, __int16 comparand)
static __int32 __TBB_machine_cmpswp4 (volatile void *ptr, __int32 value, __int32 comparand)
__int64 __TBB_EXPORTED_FUNC __TBB_machine_cmpswp8 (volatile void *ptr, __int64 value, __int64 comparand)
static ptrdiff_t __TBB_machine_cmpswpW (volatile void *ptr, ptrdiff_t value, ptrdiff_t comparand)
static __int8 __TBB_machine_fetchadd1 (volatile void *ptr, __int8 addend)
static __int16 __TBB_machine_fetchadd2 (volatile void *ptr, __int16 addend)
static __int32 __TBB_machine_fetchadd4 (volatile void *ptr, __int32 addend)
__int64 __TBB_EXPORTED_FUNC __TBB_machine_fetchadd8 (volatile void *ptr, __int64 addend)
static ptrdiff_t __TBB_machine_fetchaddW (volatile void *ptr, ptrdiff_t addend)
static __int8 __TBB_machine_fetchstore1 (volatile void *ptr, __int8 value)
static __int16 __TBB_machine_fetchstore2 (volatile void *ptr, __int16 value)
static __int32 __TBB_machine_fetchstore4 (volatile void *ptr, __int32 value)
__int64 __TBB_EXPORTED_FUNC __TBB_machine_fetchstore8 (volatile void *ptr, __int64 value)
static ptrdiff_t __TBB_machine_fetchstoreW (volatile void *ptr, ptrdiff_t value)
static __int32 __TBB_machine_lg (unsigned __int64 i)
__int64 __TBB_EXPORTED_FUNC __TBB_machine_load8 (const volatile void *ptr)
template<typename T >
T __TBB_machine_load_with_acquire (const volatile T &location)
static void __TBB_machine_OR (volatile void *operand, __int32 addend)
static void __TBB_machine_pause (__int32 delay)
void __TBB_EXPORTED_FUNC __TBB_machine_store8 (volatile void *ptr, __int64 value)
template<typename T , typename V >
void __TBB_machine_store_with_release (T &location, V value)
void __TBB_machine_store_with_release (size_t &location, size_t value)
 Overload that exists solely to avoid /Wp64 warnings.
void __TBB_rel_acq_fence ()

Define Documentation

#define __TBB_AtomicAND (   P,
  V 
)    __TBB_machine_AND(P,V)

Definition at line 219 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_AtomicOR (   P,
  V 
)    __TBB_machine_OR(P,V)

Definition at line 218 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_BIG_ENDIAN   0

Definition at line 46 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_CompareAndSwap1 (   P,
  V,
 
)    __TBB_machine_cmpswp1(P,V,C)

Definition at line 197 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_CompareAndSwap2 (   P,
  V,
 
)    __TBB_machine_cmpswp2(P,V,C)

Definition at line 198 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_CompareAndSwap4 (   P,
  V,
 
)    __TBB_machine_cmpswp4(P,V,C)

Definition at line 199 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_CompareAndSwap8 (   P,
  V,
 
)    __TBB_machine_cmpswp8(P,V,C)

Definition at line 200 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_CompareAndSwapW (   P,
  V,
 
)    __TBB_machine_cmpswpW(P,V,C)

Definition at line 201 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_DEFINE_ATOMICS (   S,
  T,
  U,
  A,
 
)

Definition at line 105 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndAdd1 (   P,
  V 
)    __TBB_machine_fetchadd1(P,V)

Definition at line 203 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndAdd2 (   P,
  V 
)    __TBB_machine_fetchadd2(P,V)

Definition at line 204 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndAdd4 (   P,
  V 
)    __TBB_machine_fetchadd4(P,V)

Definition at line 205 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndAdd8 (   P,
  V 
)    __TBB_machine_fetchadd8(P,V)

Definition at line 206 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndAddW (   P,
  V 
)    __TBB_machine_fetchaddW(P,V)

Definition at line 207 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndStore1 (   P,
  V 
)    __TBB_machine_fetchstore1(P,V)

Definition at line 209 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndStore2 (   P,
  V 
)    __TBB_machine_fetchstore2(P,V)

Definition at line 210 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndStore4 (   P,
  V 
)    __TBB_machine_fetchstore4(P,V)

Definition at line 211 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndStore8 (   P,
  V 
)    __TBB_machine_fetchstore8(P,V)

Definition at line 212 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_FetchAndStoreW (   P,
  V 
)    __TBB_machine_fetchstoreW(P,V)

Definition at line 213 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_Load8 (   P)    __TBB_machine_load8(P)

Definition at line 217 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_load_with_acquire (   L)    __TBB_machine_load_with_acquire((L))

Definition at line 102 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_Log2 (   V)    __TBB_machine_lg(V)

Definition at line 225 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_Pause (   V)    __TBB_machine_pause(V)

Definition at line 224 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_Store8 (   P,
  V 
)    __TBB_machine_store8(P,V)

Definition at line 216 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_store_with_release (   L,
  V 
)    __TBB_machine_store_with_release((L),(V))

Definition at line 103 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_WORDSIZE   4

Definition at line 45 of file Include/tbb/machine/windows_ia32.h.

#define __TBB_Yield ( )    SwitchToThread()

Definition at line 223 of file Include/tbb/machine/windows_ia32.h.


Function Documentation

__declspec ( dllimport  )
static void __TBB_machine_AND ( volatile void *  operand,
__int32  addend 
) [inline, static]

Definition at line 176 of file Include/tbb/machine/windows_ia32.h.

                                                                               {
   __asm 
   {
       mov eax, addend
       mov edx, [operand]
       lock and [edx], eax
   }
}
static __int8 __TBB_machine_cmpswp1 ( volatile void *  ptr,
__int8  value,
__int8  comparand 
) [inline, static]

Definition at line 152 of file Include/tbb/machine/windows_ia32.h.

{
static __int16 __TBB_machine_cmpswp2 ( volatile void *  ptr,
__int16  value,
__int16  comparand 
) [inline, static]

Definition at line 153 of file Include/tbb/machine/windows_ia32.h.

{
static __int32 __TBB_machine_cmpswp4 ( volatile void *  ptr,
__int32  value,
__int32  comparand 
) [inline, static]

Definition at line 154 of file Include/tbb/machine/windows_ia32.h.

{
__int64 __TBB_EXPORTED_FUNC __TBB_machine_cmpswp8 ( volatile void *  ptr,
__int64  value,
__int64  comparand 
) [inline]

Definition at line 55 of file Include/tbb/machine/mac_ppc.h.

{
    int64_t result;
    __asm__ __volatile__("sync\n"
                         "0: ldarx %0,0,%2\n\t"  /* load w/ reservation */
                         "cmpd %0,%4\n\t"        /* compare against comparand */
                         "bne- 1f\n\t"           /* exit if not same */
                         "stdcx. %3,0,%2\n\t"    /* store new_value */
                         "bne- 0b\n"             /* retry if reservation lost */
                         "1: sync"               /* the exit */
                          : "=&b"(result), "=m"(* (int64_t*) ptr)
                          : "r"(ptr), "r"(value), "r"(comparand), "m"(* (int64_t*) ptr)
                          : "cr0");
    return result;
}
static ptrdiff_t __TBB_machine_cmpswpW ( volatile void *  ptr,
ptrdiff_t  value,
ptrdiff_t  comparand 
) [inline, static]

Definition at line 155 of file Include/tbb/machine/windows_ia32.h.

{
static __int8 __TBB_machine_fetchadd1 ( volatile void *  ptr,
__int8  addend 
) [inline, static]

Definition at line 152 of file Include/tbb/machine/windows_ia32.h.

{
static __int16 __TBB_machine_fetchadd2 ( volatile void *  ptr,
__int16  addend 
) [inline, static]

Definition at line 153 of file Include/tbb/machine/windows_ia32.h.

{
static __int32 __TBB_machine_fetchadd4 ( volatile void *  ptr,
__int32  addend 
) [inline, static]

Definition at line 154 of file Include/tbb/machine/windows_ia32.h.

{
__int64 __TBB_EXPORTED_FUNC __TBB_machine_fetchadd8 ( volatile void *  ptr,
__int64  addend 
)
static ptrdiff_t __TBB_machine_fetchaddW ( volatile void *  ptr,
ptrdiff_t  addend 
) [inline, static]

Definition at line 155 of file Include/tbb/machine/windows_ia32.h.

{
static __int8 __TBB_machine_fetchstore1 ( volatile void *  ptr,
__int8  value 
) [inline, static]

Definition at line 152 of file Include/tbb/machine/windows_ia32.h.

{
static __int16 __TBB_machine_fetchstore2 ( volatile void *  ptr,
__int16  value 
) [inline, static]

Definition at line 153 of file Include/tbb/machine/windows_ia32.h.

{
static __int32 __TBB_machine_fetchstore4 ( volatile void *  ptr,
__int32  value 
) [inline, static]

Definition at line 154 of file Include/tbb/machine/windows_ia32.h.

{
__int64 __TBB_EXPORTED_FUNC __TBB_machine_fetchstore8 ( volatile void *  ptr,
__int64  value 
)
static ptrdiff_t __TBB_machine_fetchstoreW ( volatile void *  ptr,
ptrdiff_t  value 
) [inline, static]

Definition at line 155 of file Include/tbb/machine/windows_ia32.h.

{
static __int32 __TBB_machine_lg ( unsigned __int64  i) [inline, static]

Definition at line 157 of file Include/tbb/machine/windows_ia32.h.

                                                             {
    unsigned __int32 j;
    __asm
    {
        bsr eax, i
        mov j, eax
    }
    return j;
}
__int64 __TBB_EXPORTED_FUNC __TBB_machine_load8 ( const volatile void *  ptr)
template<typename T >
T __TBB_machine_load_with_acquire ( const volatile T location) [inline]
static void __TBB_machine_OR ( volatile void *  operand,
__int32  addend 
) [inline, static]

Definition at line 167 of file Include/tbb/machine/windows_ia32.h.

                                                                              {
   __asm 
   {
       mov eax, addend
       mov edx, [operand]
       lock or [edx], eax
   }
}
static void __TBB_machine_pause ( __int32  delay) [inline, static]

Definition at line 185 of file Include/tbb/machine/windows_ia32.h.

                                                        {
    _asm 
    {
        mov eax, delay
      L1: 
        pause
        add eax, -1
        jne L1  
    }
    return;
}
void __TBB_EXPORTED_FUNC __TBB_machine_store8 ( volatile void *  ptr,
__int64  value 
)
template<typename T , typename V >
void __TBB_machine_store_with_release ( T location,
V  value 
) [inline]
void __TBB_machine_store_with_release ( size_t &  location,
size_t  value 
) [inline]
void __TBB_rel_acq_fence ( ) [inline]

Definition at line 43 of file Include/tbb/machine/windows_ia32.h.

{ __asm { __asm mfence } }

Copyright © 2007-2010 by The Shadowrun: Awakened Team. This work is licensed under the GNU Lesser General Public License 3.

GNU Lesser General Public License 3 Sourceforge.net