[ELF][Hexagon] Add comments related to hexagon relocations.

No functional changes.

llvm-svn: 233783
This commit is contained in:
Shankar Easwaran 2015-04-01 03:07:01 +00:00
parent ee39d33175
commit 83aa6d02d8
2 changed files with 10 additions and 6 deletions

View File

@ -7,6 +7,7 @@
//
//===----------------------------------------------------------------------===//
Instruction insn_encodings[] = {
// InsnMask CompareMask BitMask IsDuplexInstruction
{ 0xffe00004, 0x40000000, 0x20f8, 0x0 },
{ 0xffe03080, 0x9ca03080, 0xf60, 0x0 },
{ 0xf9e00000, 0x48c00000, 0x61f20ff, 0x0 },

View File

@ -16,12 +16,15 @@
namespace lld {
namespace elf {
/// \brief HexagonInstruction which is used to store various values
/// \brief Applying fixup on Hexagon requires the relocator to fetch the fixup
/// mask from the instruction. To fetch the fixup encoding, the linker uses a
/// static array that contains the instruction mask, the compare mask and the
/// relocation mask.
typedef struct {
uint32_t insnMask;
uint32_t insnCmpMask;
uint32_t insnBitMask;
bool isDuplex;
uint32_t insnMask; // Instruction mask.
uint32_t insnCmpMask; // Compare mask.
uint32_t insnBitMask; // Relocation mask.
bool isDuplex; // Indicates if the instruction is a duplex instruction.
} Instruction;
#include "HexagonEncodings.h"
@ -37,7 +40,7 @@ inline uint32_t findv4bitmask(uint8_t *location) {
if (((insn_encodings[i].insnMask) & insn) == insn_encodings[i].insnCmpMask)
return insn_encodings[i].insnBitMask;
}
llvm_unreachable("found unknown instruction");
llvm_unreachable("found unknown Hexagon instruction");
}
} // elf