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