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 12Entry<32, true>::Entry() { 13 m_Pair.d_tag = 0; 14 m_Pair.d_un.d_val = 0; 15} 16 17Entry<32, true>::~Entry() { 18} 19 20void 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 25size_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 34Entry<64, true>::Entry() { 35 m_Pair.d_tag = 0; 36 m_Pair.d_un.d_val = 0; 37} 38 39Entry<64, true>::~Entry() { 40} 41 42void 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 47size_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