[PATCH] Typed DWARF stack
Jason Merrill
jason@redhat.com
Fri Apr 29 21:01:00 GMT 2011
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
More information about the Gcc-patches
mailing list