arc-plt.def revision 1.1 1 1.1 christos /* Arc V2 Related PLT entries.
2 1.1 christos Copyright (C) 2016 Free Software Foundation, Inc.
3 1.1 christos Contributed by Cupertino Miranda (cmiranda (at) synopsys.com).
4 1.1 christos
5 1.1 christos This file is part of BFD, the Binary File Descriptor library.
6 1.1 christos
7 1.1 christos This program is free software; you can redistribute it and/or modify
8 1.1 christos it under the terms of the GNU General Public License as published by
9 1.1 christos the Free Software Foundation; either version 3 of the License, or
10 1.1 christos (at your option) any later version.
11 1.1 christos
12 1.1 christos This program is distributed in the hope that it will be useful,
13 1.1 christos but WITHOUT ANY WARRANTY; without even the implied warranty of
14 1.1 christos MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 1.1 christos GNU General Public License for more details.
16 1.1 christos
17 1.1 christos You should have received a copy of the GNU General Public License
18 1.1 christos along with this program; if not, write to the Free Software
19 1.1 christos Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
20 1.1 christos MA 02110-1301, USA. */
21 1.1 christos
22 1.1 christos PLT_TYPE_START (ELF_ARCV2_PIC)
23 1.1 christos PLT_ENTRY (0x2730, 0x7f8b, 0x0000, 0x0000) /* ld %r11, [pcl,0] : 0 to be replaced by _DYNAMIC@GOTPC+4 */
24 1.1 christos PLT_ENTRY (0x2730, 0x7f8a, 0x0000, 0x0000) /* ld %r10, [pcl,0] : 0 to be replaced by _DYNAMIC@GOTPC+8 */
25 1.1 christos PLT_ENTRY (0x2020, 0x0280) /* j [%r10] */
26 1.1 christos PLT_ENTRY (0x0,0x0,0x0,0x0,0x0,0x0) /* padding */
27 1.1 christos
28 1.1 christos PLT_ELEM (0x2730, 0x7f8c, 0x0000, 0x0000) /* ld %r12, [%pc,func@got] */
29 1.1 christos PLT_ELEM (0x2021, 0x0300) /* j.d [%r12] */
30 1.1 christos PLT_ELEM (0x240a, 0x1fc0) /* mov %r12, %pcl */
31 1.1 christos
32 1.1 christos ENTRY_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 4)
33 1.1 christos ENTRY_RELOC (12, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 8)
34 1.1 christos ENTRY_RELOC (20, 32, 0xFFFFFFFF, SGOT, 0)
35 1.1 christos
36 1.1 christos ELEM_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 0)
37 1.1 christos
38 1.1 christos PLT_TYPE_END (ELF_ARCV2_PIC)
39 1.1 christos
40 1.1 christos PLT_TYPE_START (ELF_ARCV2_ABS)
41 1.1 christos PLT_ENTRY (0x1600,0x700b,0x0000,0x0000) /* ld %r11, [0] */
42 1.1 christos PLT_ENTRY (0x1600,0x700a,0x0000,0x0000) /* ld %r10, [0] */
43 1.1 christos PLT_ENTRY (0x2020,0x0280) /* j [%r10] */
44 1.1 christos PLT_ENTRY (0x0,0x0,0x0,0x0,0x0,0x0) /* padding */
45 1.1 christos
46 1.1 christos PLT_ELEM (0x2730, 0x7f8c, 0x0000, 0x0000) /* ld %r12, [%pcl,func@gotpc] */
47 1.1 christos PLT_ELEM (0x2021,0x0300) /* j.d [%r12] */
48 1.1 christos PLT_ELEM (0x240a,0x1fc0) /* mov %r12, %pcl */
49 1.1 christos
50 1.1 christos ENTRY_RELOC (4, 32, 0xFFFFFFFF, SGOT | MIDDLE_ENDIAN, 4)
51 1.1 christos ENTRY_RELOC (12, 32, 0xFFFFFFFF, SGOT | MIDDLE_ENDIAN, 8)
52 1.1 christos ENTRY_RELOC (20, 32, 0xFFFFFFFF, SGOT, 0)
53 1.1 christos
54 1.1 christos ELEM_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 0)
55 1.1 christos
56 1.1 christos PLT_TYPE_END (ELF_ARCV2_ABS)
57 1.1 christos
58 1.1 christos
59 1.1 christos /* Non Arc V2 Related PLT entries. */
60 1.1 christos
61 1.1 christos PLT_TYPE_START (ELF_ARC_PIC)
62 1.1 christos PLT_ENTRY (0x2730,0x7f8b,0x0000,0x0000) /* ld %r11, [pcl,0] : 0 to be replaced by _DYNAMIC@GOTPC+4 */
63 1.1 christos PLT_ENTRY (0x2730,0x7f8a,0x0000,0x0000) /* ld %r10, [pcl,0] : 0 to be replaced by -DYNAMIC@GOTPC+8 */
64 1.1 christos PLT_ENTRY (0x2020,0x0280) /* j [%r10] */
65 1.1 christos PLT_ENTRY (0x0,0x0) /* padding */
66 1.1 christos
67 1.1 christos PLT_ELEM (0x2730,0x7f8c,0x0000,0x0000) /* ld %r12, [%pc,func@got] */
68 1.1 christos PLT_ELEM (0x7c20) /* j_s.d [%r12] */
69 1.1 christos PLT_ELEM (0x74ef) /* mov_s %r12, %pcl */
70 1.1 christos
71 1.1 christos ENTRY_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 4)
72 1.1 christos ENTRY_RELOC (12, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 8)
73 1.1 christos ENTRY_RELOC (20, 32, 0xFFFFFFFF, SGOT, 0)
74 1.1 christos
75 1.1 christos ELEM_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 0)
76 1.1 christos
77 1.1 christos PLT_TYPE_END (ELF_ARC_PIC)
78 1.1 christos
79 1.1 christos PLT_TYPE_START (ELF_ARC_ABS)
80 1.1 christos PLT_ENTRY (0x1600,0x700b,0x0000,0x0000) /* ld %r11, [0] */
81 1.1 christos PLT_ENTRY (0x1600,0x700a,0x0000,0x0000) /* ld %r10, [0] */
82 1.1 christos PLT_ENTRY (0x2020,0x0280) /* j [%r10] */
83 1.1 christos PLT_ENTRY (0x0,0x0) /* padding */
84 1.1 christos
85 1.1 christos PLT_ELEM (0x2730,0x7f8c,0x0000,0x0000) /* ld %r12, [%pc,func@gotpc] */
86 1.1 christos PLT_ELEM (0x7c20,0x74ef) /* mov_s %r12, %pcl */
87 1.1 christos
88 1.1 christos ENTRY_RELOC (4, 32, 0xFFFFFFFF, SGOT | MIDDLE_ENDIAN, 4)
89 1.1 christos ENTRY_RELOC (12, 32, 0xFFFFFFFF, SGOT | MIDDLE_ENDIAN, 8)
90 1.1 christos ENTRY_RELOC (20, 32, 0xFFFFFFFF, SGOT, 0)
91 1.1 christos
92 1.1 christos ELEM_RELOC (4, 32, 0xFFFFFFFF, SGOT | RELATIVE_INSN_32 | MIDDLE_ENDIAN, 0)
93 1.1 christos
94 1.1 christos PLT_TYPE_END (ELF_ARC_ABS)
95