diff options
author | Devang Patel <dpatel@apple.com> | 2011-05-28 00:39:18 +0000 |
---|---|---|
committer | Devang Patel <dpatel@apple.com> | 2011-05-28 00:39:18 +0000 |
commit | 8816bbc02db7fbf9b678418725300f5ea724ac25 (patch) | |
tree | 3a2c5756d3da5a515b199cadb17235cfdbf91b2d /llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | |
parent | 19fea7a84010954c8bd808fbe5a24d10f0d8b53d (diff) | |
download | bcm5719-llvm-8816bbc02db7fbf9b678418725300f5ea724ac25.tar.gz bcm5719-llvm-8816bbc02db7fbf9b678418725300f5ea724ac25.zip |
Select DW_AT_const_value size based on global variable size.
llvm-svn: 132239
Diffstat (limited to 'llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp')
-rw-r--r-- | llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp index 212b0865e9d..9e4a61d52f6 100644 --- a/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp +++ b/llvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp @@ -493,13 +493,21 @@ bool CompileUnit::addConstantFPValue(DIE *Die, const MachineOperand &MO) { /// addConstantValue - Add constant value entry in variable DIE. bool CompileUnit::addConstantValue(DIE *Die, ConstantInt *CI, bool Unsigned) { - if (CI->getBitWidth() <= 64) { + unsigned CIBitWidth = CI->getBitWidth(); + if (CIBitWidth <= 64) { + unsigned form = 0; + switch (CIBitWidth) { + case 8: form = dwarf::DW_FORM_data1; break; + case 16: form = dwarf::DW_FORM_data2; break; + case 32: form = dwarf::DW_FORM_data4; break; + case 64: form = dwarf::DW_FORM_data8; break; + default: + form = Unsigned ? dwarf::DW_FORM_udata : dwarf::DW_FORM_sdata; + } if (Unsigned) - addUInt(Die, dwarf::DW_AT_const_value, dwarf::DW_FORM_udata, - CI->getZExtValue()); + addUInt(Die, dwarf::DW_AT_const_value, form, CI->getZExtValue()); else - addSInt(Die, dwarf::DW_AT_const_value, dwarf::DW_FORM_sdata, - CI->getSExtValue()); + addSInt(Die, dwarf::DW_AT_const_value, form, CI->getSExtValue()); return true; } |