*** dwarf2read.c.~1~ Tue Jan 8 14:17:30 2002 --- dwarf2read.c Thu Jan 10 11:54:45 2002 *************** decode_locdesc (struct dwarf_block *blk, *** 5807,5812 **** --- 5807,5847 ---- 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: *************** decode_locdesc (struct dwarf_block *blk, *** 5965,5970 **** --- 6000,6010 ---- 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--; *************** decode_locdesc (struct dwarf_block *blk, *** 5976,5982 **** break; case DW_OP_minus: ! stack[stacki - 1] = stack[stacki] - stack[stacki - 1]; stacki--; break; --- 6016,6022 ---- break; case DW_OP_minus: ! stack[stacki - 1] -= stack[stacki]; stacki--; break;