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 { 14 m_Pair.d_tag = 0; 15 m_Pair.d_un.d_val = 0; 16 } 17 18 Entry<32, true>::~Entry() 19 { 20 } 21 22 void 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 28 size_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 38 Entry<64, true>::Entry() 39 { 40 m_Pair.d_tag = 0; 41 m_Pair.d_un.d_val = 0; 42 } 43 44 Entry<64, true>::~Entry() 45 { 46 } 47 48 void 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 54 size_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