forked from OSchip/llvm-project
Revert "[DebugInfo] Shorten legacy [s|z]ext dwarf expressions"
This reverts commit 2ce36ebca5
. It depends
on https://reviews.llvm.org/D89838, which needs to be reverted.
This commit is contained in:
parent
735ab4be35
commit
4fe81b6b6a
|
@ -642,12 +642,14 @@ void DwarfExpression::addFragmentOffset(const DIExpression *Expr) {
|
|||
void DwarfExpression::emitLegacySExt(unsigned FromBits) {
|
||||
// (((X >> (FromBits - 1)) * (~0)) << FromBits) | X
|
||||
emitOp(dwarf::DW_OP_dup);
|
||||
emitConstu(FromBits - 1);
|
||||
emitOp(dwarf::DW_OP_constu);
|
||||
emitUnsigned(FromBits - 1);
|
||||
emitOp(dwarf::DW_OP_shr);
|
||||
emitOp(dwarf::DW_OP_lit0);
|
||||
emitOp(dwarf::DW_OP_not);
|
||||
emitOp(dwarf::DW_OP_mul);
|
||||
emitConstu(FromBits);
|
||||
emitOp(dwarf::DW_OP_constu);
|
||||
emitUnsigned(FromBits);
|
||||
emitOp(dwarf::DW_OP_shl);
|
||||
emitOp(dwarf::DW_OP_or);
|
||||
}
|
||||
|
@ -655,7 +657,8 @@ void DwarfExpression::emitLegacySExt(unsigned FromBits) {
|
|||
void DwarfExpression::emitLegacyZExt(unsigned FromBits, unsigned ToBits) {
|
||||
if (FromBits < 64) {
|
||||
// X & ((1 << FromBits) - 1)
|
||||
emitConstu((1ULL << FromBits) - 1);
|
||||
emitOp(dwarf::DW_OP_constu);
|
||||
emitUnsigned((1ULL << FromBits) - 1);
|
||||
emitOp(dwarf::DW_OP_and);
|
||||
} else {
|
||||
addOpPiece(FromBits, 0);
|
||||
|
|
|
@ -62,7 +62,7 @@
|
|||
; NOCONV: DW_TAG_formal_parameter
|
||||
; NOCONV: DW_TAG_variable
|
||||
; NOCONV: DW_AT_location (
|
||||
; NOCONV: {{.*}}, DW_OP_dup, DW_OP_lit7, DW_OP_shr, DW_OP_lit0, DW_OP_not, DW_OP_mul, DW_OP_lit8, DW_OP_shl, DW_OP_or, DW_OP_stack_value)
|
||||
; NOCONV: {{.*}}, DW_OP_dup, DW_OP_constu 0x7, DW_OP_shr, DW_OP_lit0, DW_OP_not, DW_OP_mul, DW_OP_constu 0x8, DW_OP_shl, DW_OP_or, DW_OP_stack_value)
|
||||
; NOCONV: DW_AT_name ("y")
|
||||
; NOCONV: NULL
|
||||
; NOCONV: DW_TAG_base_type
|
||||
|
|
|
@ -26,7 +26,7 @@
|
|||
; DW4: DW_TAG_compile_unit
|
||||
; DW4: DW_TAG_variable
|
||||
; DW4: DW_AT_name ("global")
|
||||
; DW4: DW_AT_location (DW_OP_addr 0x0, DW_OP_deref, DW_OP_dup, DW_OP_lit7, DW_OP_shr, DW_OP_lit0, DW_OP_not, DW_OP_mul, DW_OP_lit8, DW_OP_shl, DW_OP_or, DW_OP_stack_value)
|
||||
; DW4: DW_AT_location (DW_OP_addr 0x0, DW_OP_deref, DW_OP_dup, DW_OP_constu 0x7, DW_OP_shr, DW_OP_lit0, DW_OP_not, DW_OP_mul, DW_OP_constu 0x8, DW_OP_shl, DW_OP_or, DW_OP_stack_value)
|
||||
; DW4: DW_TAG_base_type
|
||||
; DW4: DW_AT_name ("int")
|
||||
; DW4: NULL
|
||||
|
|
Loading…
Reference in New Issue