Just for the record... Tom> What my patch does now is that it generally uses a signed integer type Tom> of the appropriate width for "legacy" DWARF values. Then, for mod, if Tom> the value's type is this special type, it converts it to an Tom> identically-sized unsigned type, and converts back after the operation.
Tom> For DW_OP_shr, I always convert the LHS to an appropriately-sized Tom> unsigned type first. I have since changed this. For explicitly-typed values, I tried DW_OP_shr and DW_OP_shra identically. The type encodes the desired operation. For "old-style" untyped values, DW_OP_shr converts to unsigned. I thought this approach was most consistent with the rest of the specification. Tom