Home | History | Annotate | Download | only in Target
      1 //===- ELFDynamic.h -------------------------------------------------------===//
      2 //
      3 //                     The MCLinker Project
      4 //
      5 // This file is distributed under the University of Illinois Open Source
      6 // License. See LICENSE.TXT for details.
      7 //
      8 //===----------------------------------------------------------------------===//
      9 
     10 //===----------------------------------------------------------------------===//
     11 /// 32-bit dynamic entry
     12 Entry<32, true>::Entry() {
     13   m_Pair.d_tag = 0;
     14   m_Pair.d_un.d_val = 0;
     15 }
     16 
     17 Entry<32, true>::~Entry() {
     18 }
     19 
     20 void Entry<32, true>::setValue(uint64_t pTag, uint64_t pValue) {
     21   m_Pair.d_tag = pTag;
     22   m_Pair.d_un.d_val = pValue;
     23 }
     24 
     25 size_t Entry<32, true>::emit(uint8_t* pAddress) const {
     26   memcpy(reinterpret_cast<void*>(pAddress),
     27          reinterpret_cast<const void*>(&m_Pair),
     28          sizeof(Pair));
     29   return sizeof(Pair);
     30 }
     31 
     32 //===----------------------------------------------------------------------===//
     33 /// 64-bit dynamic entry
     34 Entry<64, true>::Entry() {
     35   m_Pair.d_tag = 0;
     36   m_Pair.d_un.d_val = 0;
     37 }
     38 
     39 Entry<64, true>::~Entry() {
     40 }
     41 
     42 void Entry<64, true>::setValue(uint64_t pTag, uint64_t pValue) {
     43   m_Pair.d_tag = pTag;
     44   m_Pair.d_un.d_val = pValue;
     45 }
     46 
     47 size_t Entry<64, true>::emit(uint8_t* pAddress) const {
     48   memcpy(reinterpret_cast<void*>(pAddress),
     49          reinterpret_cast<const void*>(&m_Pair),
     50          sizeof(Pair));
     51   return sizeof(Pair);
     52 }
     53