[mips] support FK_Data_2 and FK_Data_8 to fix big-endian debug data
This fixes invalid lengths in .debug_aranges on big-endian mips64
(lengths appear to be left-shifted by 32 bits) and in .debug_loc.
Differential Revision: http://llvm-reviews.chandlerc.com/D2517
llvm-svn: 202716
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
index da33237..dfaa4db 100644
--- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
+++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
@@ -38,6 +38,7 @@
switch (Kind) {
default:
return 0;
+ case FK_Data_2:
case FK_GPRel_4:
case FK_Data_4:
case FK_Data_8:
@@ -140,12 +141,15 @@
unsigned FullSize;
switch ((unsigned)Kind) {
+ case FK_Data_2:
case Mips::fixup_Mips_16:
FullSize = 2;
break;
+ case FK_Data_8:
case Mips::fixup_Mips_64:
FullSize = 8;
break;
+ case FK_Data_4:
default:
FullSize = 4;
break;