summaryrefslogtreecommitdiff
path: root/ELF/Arch/Hexagon.cpp
diff options
context:
space:
mode:
authorDimitry Andric <dim@FreeBSD.org>2018-08-02 17:33:42 +0000
committerDimitry Andric <dim@FreeBSD.org>2018-08-02 17:33:42 +0000
commit84c4061b34e048f47e5eb4fbabc1558495e8157c (patch)
tree83f9a0fbaadd2f5e3adac8f066cc8160781b385d /ELF/Arch/Hexagon.cpp
parent20d35e67e67f106f617c939725101223211659f0 (diff)
Notes
Diffstat (limited to 'ELF/Arch/Hexagon.cpp')
-rw-r--r--ELF/Arch/Hexagon.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/ELF/Arch/Hexagon.cpp b/ELF/Arch/Hexagon.cpp
index 2d5c23fd5ad6..ff5e862bafa2 100644
--- a/ELF/Arch/Hexagon.cpp
+++ b/ELF/Arch/Hexagon.cpp
@@ -70,6 +70,12 @@ void Hexagon::relocateOne(uint8_t *Loc, RelType Type, uint64_t Val) const {
switch (Type) {
case R_HEX_NONE:
break;
+ case R_HEX_12_X:
+ or32le(Loc, applyMask(0x000007e0, Val));
+ break;
+ case R_HEX_32_6_X:
+ or32le(Loc, applyMask(0x0fff3fff, Val >> 6));
+ break;
case R_HEX_B15_PCREL:
or32le(Loc, applyMask(0x00df20fe, Val >> 2));
break;