diff --git a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp index 7a731eb3a09..41476757721 100644 --- a/lib/Target/Mips/AsmParser/MipsAsmParser.cpp +++ b/lib/Target/Mips/AsmParser/MipsAsmParser.cpp @@ -2277,8 +2277,16 @@ MCSymbolRefExpr::VariantKind MipsAsmParser::getVariantKind(StringRef Symbol) { .Case("got_ofst", MCSymbolRefExpr::VK_Mips_GOT_OFST) .Case("hi(%neg(%gp_rel", MCSymbolRefExpr::VK_Mips_GPOFF_HI) .Case("lo(%neg(%gp_rel", MCSymbolRefExpr::VK_Mips_GPOFF_LO) + .Case("got_hi", MCSymbolRefExpr::VK_Mips_GOT_HI16) + .Case("got_lo", MCSymbolRefExpr::VK_Mips_GOT_LO16) + .Case("call_hi", MCSymbolRefExpr::VK_Mips_CALL_HI16) + .Case("call_lo", MCSymbolRefExpr::VK_Mips_CALL_LO16) + .Case("higher", MCSymbolRefExpr::VK_Mips_HIGHER) + .Case("highest", MCSymbolRefExpr::VK_Mips_HIGHEST) .Default(MCSymbolRefExpr::VK_None); + assert (VK != MCSymbolRefExpr::VK_None); + return VK; } diff --git a/test/MC/Mips/xgot.s b/test/MC/Mips/xgot.s index ec564c617a3..072e662c5ce 100644 --- a/test/MC/Mips/xgot.s +++ b/test/MC/Mips/xgot.s @@ -1,8 +1,5 @@ // RUN: llvm-mc -filetype=obj -triple mipsel-unknown-linux %s -o - | llvm-readobj -r | FileCheck %s -// Expected failure since the mips backend can't handle this yet. -// XFAIL: * - // Check that the appropriate relocations were created. // For the xgot case we want to see R_MIPS_[GOT|CALL]_[HI|LO]16. @@ -12,8 +9,8 @@ // CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_HI16 // CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT_LO16 // CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_HI16 -// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_LO16 // CHECK: 0x{{[0-9,A-F]+}} R_MIPS_GOT16 +// CHECK: 0x{{[0-9,A-F]+}} R_MIPS_CALL_LO16 // CHECK: 0x{{[0-9,A-F]+}} R_MIPS_LO16 // CHECK: ]