Mips relocations R_MIPS_HIGHER and R_MIPS_HIGHEST.
authorJack Carter <jcarter@mips.com>
Mon, 6 Aug 2012 21:26:03 +0000 (21:26 +0000)
committerJack Carter <jcarter@mips.com>
Mon, 6 Aug 2012 21:26:03 +0000 (21:26 +0000)
commitfc54d9e47a1276650f14f38e7d037c9b58c8dc2d
treebbf0805bc17a035e6d50d6ecce00c63bc07fed7e
parentf45717e985260e9416dbd2fe8df471d48705c86a
Mips relocations R_MIPS_HIGHER and R_MIPS_HIGHEST.

These 2 relocations gain access to the
highest and the second highest 16 bits
of a 64 bit object.

R_MIPS_HIGHER %higher(A+S)
The %higher(x) function is [ (((long long) x + 0x80008000LL) >> 32) & 0xffff ].

R_MIPS_HIGHEST %highest(A+S)
The %highest(x) function is [ (((long long) x + 0x800080008000LL) >> 48) & 0xffff ].

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@161348 91177308-0d34-0410-b5e6-96231b3b80d8
lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
lib/Target/Mips/MCTargetDesc/MipsELFObjectWriter.cpp
lib/Target/Mips/MCTargetDesc/MipsFixupKinds.h
lib/Target/Mips/MCTargetDesc/MipsMCCodeEmitter.cpp
test/MC/Mips/higher_highest.ll [new file with mode: 0644]