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{ 14 m_Pair.d_tag = 0; 15 m_Pair.d_un.d_val = 0; 16} 17 18Entry<32, true>::~Entry() 19{ 20} 21 22void Entry<32, true>::setValue(uint64_t pTag, uint64_t pValue) 23{ 24 m_Pair.d_tag = pTag; 25 m_Pair.d_un.d_val = pValue; 26} 27 28size_t Entry<32, true>::emit(uint8_t* pAddress) const 29{ 30 memcpy(reinterpret_cast<void*>(pAddress), 31 reinterpret_cast<const void*>(&m_Pair), 32 sizeof(Pair)); 33 return sizeof(Pair); 34} 35 36//===----------------------------------------------------------------------===// 37/// 64-bit dynamic entry 38Entry<64, true>::Entry() 39{ 40 m_Pair.d_tag = 0; 41 m_Pair.d_un.d_val = 0; 42} 43 44Entry<64, true>::~Entry() 45{ 46} 47 48void Entry<64, true>::setValue(uint64_t pTag, uint64_t pValue) 49{ 50 m_Pair.d_tag = pTag; 51 m_Pair.d_un.d_val = pValue; 52} 53 54size_t Entry<64, true>::emit(uint8_t* pAddress) const 55{ 56 memcpy(reinterpret_cast<void*>(pAddress), 57 reinterpret_cast<const void*>(&m_Pair), 58 sizeof(Pair)); 59 return sizeof(Pair); 60} 61 62