@@ -156,6 +156,8 @@ class PPCAsmParser : public MCTargetAsmParser {
156156 unsigned validateTargetOperandClass (MCParsedAsmOperand &Op,
157157 unsigned Kind) override ;
158158
159+ MCSymbolRefExpr::VariantKind
160+ getVariantKindForName (StringRef Name) const override ;
159161 const MCExpr *applyModifierToExpr (const MCExpr *E,
160162 MCSymbolRefExpr::VariantKind,
161163 MCContext &Ctx) override ;
@@ -1901,6 +1903,81 @@ unsigned PPCAsmParser::validateTargetOperandClass(MCParsedAsmOperand &AsmOp,
19011903 return Match_InvalidOperand;
19021904}
19031905
1906+ MCSymbolRefExpr::VariantKind
1907+ PPCAsmParser::getVariantKindForName (StringRef Name) const {
1908+ return StringSwitch<MCSymbolRefExpr::VariantKind>(Name.lower ())
1909+ .Case (" dtprel" , MCSymbolRefExpr::VK_DTPREL)
1910+ .Case (" got" , MCSymbolRefExpr::VK_GOT)
1911+ .Case (" pcrel" , MCSymbolRefExpr::VK_PCREL)
1912+ .Case (" plt" , MCSymbolRefExpr::VK_PLT)
1913+ .Case (" tlsgd" , MCSymbolRefExpr::VK_TLSGD)
1914+ .Case (" tlsld" , MCSymbolRefExpr::VK_TLSLD)
1915+ .Case (" tprel" , MCSymbolRefExpr::VK_TPREL)
1916+ .Case (" l" , MCSymbolRefExpr::VK_PPC_LO)
1917+ .Case (" h" , MCSymbolRefExpr::VK_PPC_HI)
1918+ .Case (" ha" , MCSymbolRefExpr::VK_PPC_HA)
1919+ .Case (" high" , MCSymbolRefExpr::VK_PPC_HIGH)
1920+ .Case (" higha" , MCSymbolRefExpr::VK_PPC_HIGHA)
1921+ .Case (" higher" , MCSymbolRefExpr::VK_PPC_HIGHER)
1922+ .Case (" highera" , MCSymbolRefExpr::VK_PPC_HIGHERA)
1923+ .Case (" highest" , MCSymbolRefExpr::VK_PPC_HIGHEST)
1924+ .Case (" highesta" , MCSymbolRefExpr::VK_PPC_HIGHESTA)
1925+ .Case (" got@l" , MCSymbolRefExpr::VK_PPC_GOT_LO)
1926+ .Case (" got@h" , MCSymbolRefExpr::VK_PPC_GOT_HI)
1927+ .Case (" got@ha" , MCSymbolRefExpr::VK_PPC_GOT_HA)
1928+ .Case (" local" , MCSymbolRefExpr::VK_PPC_LOCAL)
1929+ .Case (" tocbase" , MCSymbolRefExpr::VK_PPC_TOCBASE)
1930+ .Case (" toc" , MCSymbolRefExpr::VK_PPC_TOC)
1931+ .Case (" toc@l" , MCSymbolRefExpr::VK_PPC_TOC_LO)
1932+ .Case (" toc@h" , MCSymbolRefExpr::VK_PPC_TOC_HI)
1933+ .Case (" toc@ha" , MCSymbolRefExpr::VK_PPC_TOC_HA)
1934+ .Case (" u" , MCSymbolRefExpr::VK_PPC_U)
1935+ // .Case("l", MCSymbolRefExpr::VK_PPC_L) VK_PPC_LO?
1936+ .Case (" tls" , MCSymbolRefExpr::VK_PPC_TLS)
1937+ .Case (" dtpmod" , MCSymbolRefExpr::VK_PPC_DTPMOD)
1938+ .Case (" tprel@l" , MCSymbolRefExpr::VK_PPC_TPREL_LO)
1939+ .Case (" tprel@h" , MCSymbolRefExpr::VK_PPC_TPREL_HI)
1940+ .Case (" tprel@ha" , MCSymbolRefExpr::VK_PPC_TPREL_HA)
1941+ .Case (" tprel@high" , MCSymbolRefExpr::VK_PPC_TPREL_HIGH)
1942+ .Case (" tprel@higha" , MCSymbolRefExpr::VK_PPC_TPREL_HIGHA)
1943+ .Case (" tprel@higher" , MCSymbolRefExpr::VK_PPC_TPREL_HIGHER)
1944+ .Case (" tprel@highera" , MCSymbolRefExpr::VK_PPC_TPREL_HIGHERA)
1945+ .Case (" tprel@highest" , MCSymbolRefExpr::VK_PPC_TPREL_HIGHEST)
1946+ .Case (" tprel@highesta" , MCSymbolRefExpr::VK_PPC_TPREL_HIGHESTA)
1947+ .Case (" dtprel@l" , MCSymbolRefExpr::VK_PPC_DTPREL_LO)
1948+ .Case (" dtprel@h" , MCSymbolRefExpr::VK_PPC_DTPREL_HI)
1949+ .Case (" dtprel@ha" , MCSymbolRefExpr::VK_PPC_DTPREL_HA)
1950+ .Case (" dtprel@high" , MCSymbolRefExpr::VK_PPC_DTPREL_HIGH)
1951+ .Case (" dtprel@higha" , MCSymbolRefExpr::VK_PPC_DTPREL_HIGHA)
1952+ .Case (" dtprel@higher" , MCSymbolRefExpr::VK_PPC_DTPREL_HIGHER)
1953+ .Case (" dtprel@highera" , MCSymbolRefExpr::VK_PPC_DTPREL_HIGHERA)
1954+ .Case (" dtprel@highest" , MCSymbolRefExpr::VK_PPC_DTPREL_HIGHEST)
1955+ .Case (" dtprel@highesta" , MCSymbolRefExpr::VK_PPC_DTPREL_HIGHESTA)
1956+ .Case (" got@tprel" , MCSymbolRefExpr::VK_PPC_GOT_TPREL)
1957+ .Case (" got@tprel@l" , MCSymbolRefExpr::VK_PPC_GOT_TPREL_LO)
1958+ .Case (" got@tprel@h" , MCSymbolRefExpr::VK_PPC_GOT_TPREL_HI)
1959+ .Case (" got@tprel@ha" , MCSymbolRefExpr::VK_PPC_GOT_TPREL_HA)
1960+ .Case (" got@dtprel" , MCSymbolRefExpr::VK_PPC_GOT_DTPREL)
1961+ .Case (" got@dtprel@l" , MCSymbolRefExpr::VK_PPC_GOT_DTPREL_LO)
1962+ .Case (" got@dtprel@h" , MCSymbolRefExpr::VK_PPC_GOT_DTPREL_HI)
1963+ .Case (" got@dtprel@ha" , MCSymbolRefExpr::VK_PPC_GOT_DTPREL_HA)
1964+ .Case (" got@tlsgd" , MCSymbolRefExpr::VK_PPC_GOT_TLSGD)
1965+ .Case (" got@tlsgd@l" , MCSymbolRefExpr::VK_PPC_GOT_TLSGD_LO)
1966+ .Case (" got@tlsgd@h" , MCSymbolRefExpr::VK_PPC_GOT_TLSGD_HI)
1967+ .Case (" got@tlsgd@ha" , MCSymbolRefExpr::VK_PPC_GOT_TLSGD_HA)
1968+ .Case (" got@tlsld" , MCSymbolRefExpr::VK_PPC_GOT_TLSLD)
1969+ .Case (" got@tlsld@l" , MCSymbolRefExpr::VK_PPC_GOT_TLSLD_LO)
1970+ .Case (" got@tlsld@h" , MCSymbolRefExpr::VK_PPC_GOT_TLSLD_HI)
1971+ .Case (" got@tlsld@ha" , MCSymbolRefExpr::VK_PPC_GOT_TLSLD_HA)
1972+ .Case (" got@pcrel" , MCSymbolRefExpr::VK_PPC_GOT_PCREL)
1973+ .Case (" got@tlsgd@pcrel" , MCSymbolRefExpr::VK_PPC_GOT_TLSGD_PCREL)
1974+ .Case (" got@tlsld@pcrel" , MCSymbolRefExpr::VK_PPC_GOT_TLSLD_PCREL)
1975+ .Case (" got@tprel@pcrel" , MCSymbolRefExpr::VK_PPC_GOT_TPREL_PCREL)
1976+ .Case (" tls@pcrel" , MCSymbolRefExpr::VK_PPC_TLS_PCREL)
1977+ .Case (" notoc" , MCSymbolRefExpr::VK_PPC_NOTOC)
1978+ .Default (MCSymbolRefExpr::VK_Invalid);
1979+ }
1980+
19041981const MCExpr *
19051982PPCAsmParser::applyModifierToExpr (const MCExpr *E,
19061983 MCSymbolRefExpr::VariantKind Variant,
0 commit comments