diff options
author | Ed Maste <emaste@freebsd.org> | 2014-03-03 14:27:49 +0000 |
---|---|---|
committer | Ed Maste <emaste@freebsd.org> | 2014-03-03 14:27:49 +0000 |
commit | 2a710d0a5bb0ba0d49e47c8c85cdb13ac1af25d0 (patch) | |
tree | 1c46440ba29f163df8c8d81621cf904835dd97c9 /llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp | |
parent | f9f8f4859a98d3135cead40094dc9cb67d51fbc6 (diff) | |
download | bcm5719-llvm-2a710d0a5bb0ba0d49e47c8c85cdb13ac1af25d0.tar.gz bcm5719-llvm-2a710d0a5bb0ba0d49e47c8c85cdb13ac1af25d0.zip |
[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
Diffstat (limited to 'llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp')
-rw-r--r-- | llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp index da332378bb1..dfaa4db50d9 100644 --- a/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp +++ b/llvm/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp @@ -38,6 +38,7 @@ static unsigned adjustFixupValue(const MCFixup &Fixup, uint64_t Value, 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 @@ public: 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; |