@@ -156,6 +156,8 @@ class PPCAsmParser : public MCTargetAsmParser {
156
156
unsigned validateTargetOperandClass (MCParsedAsmOperand &Op,
157
157
unsigned Kind) override ;
158
158
159
+ MCSymbolRefExpr::VariantKind
160
+ getVariantKindForName (StringRef Name) const override ;
159
161
const MCExpr *applyModifierToExpr (const MCExpr *E,
160
162
MCSymbolRefExpr::VariantKind,
161
163
MCContext &Ctx) override ;
@@ -1901,6 +1903,81 @@ unsigned PPCAsmParser::validateTargetOperandClass(MCParsedAsmOperand &AsmOp,
1901
1903
return Match_InvalidOperand;
1902
1904
}
1903
1905
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
+
1904
1981
const MCExpr *
1905
1982
PPCAsmParser::applyModifierToExpr (const MCExpr *E,
1906
1983
MCSymbolRefExpr::VariantKind Variant,
0 commit comments