From: Jason Merrill Date: Fri, 11 Jan 2002 09:32:50 +0000 (+0000) Subject: * dwarf2read.c (decode_locdesc): Implement DW_OP_litn, DW_OP_dup. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=f1bea926d1d3e9f2ac6edae4ee28f9423cf7f650;p=binutils-gdb.git * dwarf2read.c (decode_locdesc): Implement DW_OP_litn, DW_OP_dup. Fix DW_OP_minus. --- diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 6647f4dc543..9e91405cd5a 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2002-01-10 Jason Merrill + + * dwarf2read.c (decode_locdesc): Implement DW_OP_litn, DW_OP_dup. + Fix DW_OP_minus. + 2002-01-10 Andrew Cagney * config/djgpp/fnchange.lst: Add renames for bfd/ChangeLog-0001 diff --git a/gdb/dwarf2read.c b/gdb/dwarf2read.c index 7c78eb5ad81..28317f2e7b8 100644 --- a/gdb/dwarf2read.c +++ b/gdb/dwarf2read.c @@ -5807,6 +5807,41 @@ decode_locdesc (struct dwarf_block *blk, struct objfile *objfile, op = data[i++]; switch (op) { + case DW_OP_lit0: + case DW_OP_lit1: + case DW_OP_lit2: + case DW_OP_lit3: + case DW_OP_lit4: + case DW_OP_lit5: + case DW_OP_lit6: + case DW_OP_lit7: + case DW_OP_lit8: + case DW_OP_lit9: + case DW_OP_lit10: + case DW_OP_lit11: + case DW_OP_lit12: + case DW_OP_lit13: + case DW_OP_lit14: + case DW_OP_lit15: + case DW_OP_lit16: + case DW_OP_lit17: + case DW_OP_lit18: + case DW_OP_lit19: + case DW_OP_lit20: + case DW_OP_lit21: + case DW_OP_lit22: + case DW_OP_lit23: + case DW_OP_lit24: + case DW_OP_lit25: + case DW_OP_lit26: + case DW_OP_lit27: + case DW_OP_lit28: + case DW_OP_lit29: + case DW_OP_lit30: + case DW_OP_lit31: + stack[++stacki] = op - DW_OP_lit0; + break; + case DW_OP_reg0: case DW_OP_reg1: case DW_OP_reg2: @@ -5965,6 +6000,11 @@ decode_locdesc (struct dwarf_block *blk, struct objfile *objfile, i += bytes_read; break; + case DW_OP_dup: + stack[stacki + 1] = stack[stacki]; + stacki++; + break; + case DW_OP_plus: stack[stacki - 1] += stack[stacki]; stacki--; @@ -5976,7 +6016,7 @@ decode_locdesc (struct dwarf_block *blk, struct objfile *objfile, break; case DW_OP_minus: - stack[stacki - 1] = stack[stacki] - stack[stacki - 1]; + stack[stacki - 1] -= stack[stacki]; stacki--; break;