diff options
Diffstat (limited to 'ACE/ace/CDR_Base.inl')
-rw-r--r-- | ACE/ace/CDR_Base.inl | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/ACE/ace/CDR_Base.inl b/ACE/ace/CDR_Base.inl index b84470af87f..351c853c2e3 100644 --- a/ACE/ace/CDR_Base.inl +++ b/ACE/ace/CDR_Base.inl @@ -145,12 +145,14 @@ ACE_CDR::swap_8 (const char* orig, char* target) #elif defined (ACE_HAS_BSWAP_64) *reinterpret_cast<uint64_t *> (target) = bswap_64 (*reinterpret_cast<uint64_t const *> (orig)); -#elif (defined (__amd64__) || defined (__x86_64__)) && defined(__GNUG__) +#elif (defined (__amd64__) || defined (__x86_64__)) && defined(__GNUG__) \ + && !defined(ACE_LACKS_INLINE_ASSEMBLY) register unsigned long x = * reinterpret_cast<const unsigned long*> (orig); asm ("bswapq %1" : "=r" (x) : "0" (x)); *reinterpret_cast<unsigned long*> (target) = x; -#elif defined(ACE_HAS_PENTIUM) && defined(__GNUG__) +#elif defined(ACE_HAS_PENTIUM) && defined(__GNUG__) \ + && !defined(ACE_LACKS_INLINE_ASSEMBLY) register unsigned int i = *reinterpret_cast<const unsigned int*> (orig); register unsigned int j = |