aboutsummaryrefslogtreecommitdiff
path: root/lib/MC
diff options
context:
space:
mode:
authorRafael Espindola <rafael.espindola@gmail.com>2010-12-29 04:31:26 +0000
committerRafael Espindola <rafael.espindola@gmail.com>2010-12-29 04:31:26 +0000
commitcaf1158b0f4ee5bd1bfc2c275e95e6fbb359df9d (patch)
tree7e9750e90c946919c751c22e70557d6f3519e5d2 /lib/MC
parent7d63a2c2e8da75eeb2d36dd93adf33f7658d0083 (diff)
Correctly encode pcrel|indirect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@122624 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/MC')
-rw-r--r--lib/MC/MCDwarf.cpp3
-rw-r--r--lib/MC/MCParser/AsmParser.cpp5
2 files changed, 3 insertions, 5 deletions
diff --git a/lib/MC/MCDwarf.cpp b/lib/MC/MCDwarf.cpp
index eff9dd6905..0b8b06c045 100644
--- a/lib/MC/MCDwarf.cpp
+++ b/lib/MC/MCDwarf.cpp
@@ -526,7 +526,7 @@ static void EmitSymbol(MCStreamer &streamer, const MCSymbol &symbol,
MCContext &context = streamer.getContext();
const TargetAsmInfo &asmInfo = context.getTargetAsmInfo();
unsigned format = symbolEncoding & 0x0f;
- unsigned application = symbolEncoding & 0xf0;
+ unsigned application = symbolEncoding & 0x70;
unsigned size;
switch (format) {
default:
@@ -553,7 +553,6 @@ static void EmitSymbol(MCStreamer &streamer, const MCSymbol &symbol,
assert(0 && "Unknown Encoding");
break;
case 0:
- case dwarf::DW_EH_PE_indirect:
streamer.EmitSymbolValue(&symbol, size);
break;
case dwarf::DW_EH_PE_pcrel:
diff --git a/lib/MC/MCParser/AsmParser.cpp b/lib/MC/MCParser/AsmParser.cpp
index d8a166cc71..9105ad5146 100644
--- a/lib/MC/MCParser/AsmParser.cpp
+++ b/lib/MC/MCParser/AsmParser.cpp
@@ -2248,10 +2248,9 @@ static bool isValidEncoding(int64_t Encoding) {
Format != dwarf::DW_EH_PE_sdata8 && Format != dwarf::DW_EH_PE_signed)
return false;
- const unsigned Application = Encoding & 0xf0;
+ const unsigned Application = Encoding & 0x70;
if (Application != dwarf::DW_EH_PE_absptr &&
- Application != dwarf::DW_EH_PE_pcrel &&
- Application != dwarf::DW_EH_PE_indirect)
+ Application != dwarf::DW_EH_PE_pcrel)
return false;
return true;