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