On 04/16/2011 04:11 AM, Jakub Jelinek wrote:
+ case dw_val_class_const_double: + { + unsigned HOST_WIDE_INT first, second; + l = 2 * HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR; + + dw2_asm_output_data (1, l, NULL); + if (WORDS_BIG_ENDIAN) + { + first = val2->v.val_double.high; + second = val2->v.val_double.low; + } + else + { + first = val2->v.val_double.low; + second = val2->v.val_double.high; + } + dw2_asm_output_data (HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR, + first, NULL); + dw2_asm_output_data (HOST_BITS_PER_WIDE_INT / HOST_BITS_PER_CHAR, + second, NULL); + }
How about moving the 2* into the first call to dw2_asm_output_data so that the later calls can just use 'l'?
+ unsigned r = val1->v.val_unsigned; + unsigned long o = get_base_type_offset (val2->v.val_die_ref.die); + if (for_eh_or_skip>= 0) + r = DWARF2_FRAME_REG_OUT (r, for_eh_or_skip); + gcc_assert (size_of_uleb128 (r) + == size_of_uleb128 (val1->v.val_unsigned)&& o);
Maybe move this assert inside the if?
+ /* Sort by increasing usage count, as when readding the last
"reading" OK with these changes. Jason