[BACK]Return to elfcpp_swap.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / external / gpl3 / binutils / dist / elfcpp

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/external/gpl3/binutils/dist/elfcpp/elfcpp_swap.h between version 1.1.1.2 and 1.1.1.2.8.1

version 1.1.1.2, 2011/09/24 22:37:34 version 1.1.1.2.8.1, 2014/08/19 23:52:30
Line 1 
Line 1 
 // elfcpp_swap.h -- Handle swapping for elfcpp   -*- C++ -*-  // elfcpp_swap.h -- Handle swapping for elfcpp   -*- C++ -*-
   
 // Copyright 2006, 2007, 2008, 2009 Free Software Foundation, Inc.  // Copyright 2006, 2007, 2008, 2009, 2012 Free Software Foundation, Inc.
 // Written by Ian Lance Taylor <iant@google.com>.  // Written by Ian Lance Taylor <iant@google.com>.
   
 // This file is part of elfcpp.  // This file is part of elfcpp.
Line 430  struct Swap_unaligned<64, true>
Line 430  struct Swap_unaligned<64, true>
   }    }
 };  };
   
   // Swap_aligned32 is a template based on size and on whether the
   // target is big endian.  It defines the type Valtype and the
   // functions readval and writeval.  The functions read and write
   // values of the appropriate size out of buffers which may not be
   // 64-bit aligned, but are 32-bit aligned.
   
   template<int size, bool big_endian>
   struct Swap_aligned32
   {
     typedef typename Valtype_base<size>::Valtype Valtype;
   
     static inline Valtype
     readval(const unsigned char* wv)
     { return Swap<size, big_endian>::readval(
           reinterpret_cast<const Valtype*>(wv)); }
   
     static inline void
     writeval(unsigned char* wv, Valtype v)
     { Swap<size, big_endian>::writeval(reinterpret_cast<Valtype*>(wv), v); }
   };
   
   template<>
   struct Swap_aligned32<64, true>
   {
     typedef Valtype_base<64>::Valtype Valtype;
   
     static inline Valtype
     readval(const unsigned char* wv)
     {
       return ((static_cast<Valtype>(Swap<32, true>::readval(wv)) << 32)
               | static_cast<Valtype>(Swap<32, true>::readval(wv + 4)));
     }
   
     static inline void
     writeval(unsigned char* wv, Valtype v)
     {
       typedef Valtype_base<32>::Valtype Valtype32;
   
       Swap<32, true>::writeval(wv, static_cast<Valtype32>(v >> 32));
       Swap<32, true>::writeval(wv + 4, static_cast<Valtype32>(v));
     }
   };
   
   template<>
   struct Swap_aligned32<64, false>
   {
     typedef Valtype_base<64>::Valtype Valtype;
   
     static inline Valtype
     readval(const unsigned char* wv)
     {
       return ((static_cast<Valtype>(Swap<32, false>::readval(wv + 4)) << 32)
               | static_cast<Valtype>(Swap<32, false>::readval(wv)));
     }
   
     static inline void
     writeval(unsigned char* wv, Valtype v)
     {
       typedef Valtype_base<32>::Valtype Valtype32;
   
       Swap<32, false>::writeval(wv + 4, static_cast<Valtype32>(v >> 32));
       Swap<32, false>::writeval(wv, static_cast<Valtype32>(v));
     }
   };
   
 } // End namespace elfcpp.  } // End namespace elfcpp.
   
 #endif // !defined(ELFCPP_SWAP_H)  #endif // !defined(ELFCPP_SWAP_H)

Legend:
Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.2.8.1

CVSweb <webmaster@jp.NetBSD.org>