diff options
Diffstat (limited to 'lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp')
| -rw-r--r-- | lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp b/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp index 54f664314578..32e6a0bdd65f 100644 --- a/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp +++ b/lib/Target/PowerPC/MCTargetDesc/PPCMCExpr.cpp @@ -44,6 +44,8 @@ void PPCMCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const { case VK_PPC_LO: OS << "@l"; break; case VK_PPC_HI: OS << "@h"; break; case VK_PPC_HA: OS << "@ha"; break; + case VK_PPC_HIGH: OS << "@high"; break; + case VK_PPC_HIGHA: OS << "@higha"; break; case VK_PPC_HIGHER: OS << "@higher"; break; case VK_PPC_HIGHERA: OS << "@highera"; break; case VK_PPC_HIGHEST: OS << "@highest"; break; @@ -75,6 +77,10 @@ PPCMCExpr::evaluateAsInt64(int64_t Value) const { return (Value >> 16) & 0xffff; case VK_PPC_HA: return ((Value + 0x8000) >> 16) & 0xffff; + case VK_PPC_HIGH: + return (Value >> 16) & 0xffff; + case VK_PPC_HIGHA: + return ((Value + 0x8000) >> 16) & 0xffff; case VK_PPC_HIGHER: return (Value >> 32) & 0xffff; case VK_PPC_HIGHERA: @@ -125,6 +131,12 @@ PPCMCExpr::evaluateAsRelocatableImpl(MCValue &Res, case VK_PPC_HA: Modifier = MCSymbolRefExpr::VK_PPC_HA; break; + case VK_PPC_HIGH: + Modifier = MCSymbolRefExpr::VK_PPC_HIGH; + break; + case VK_PPC_HIGHA: + Modifier = MCSymbolRefExpr::VK_PPC_HIGHA; + break; case VK_PPC_HIGHERA: Modifier = MCSymbolRefExpr::VK_PPC_HIGHERA; break; |
