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

Reply via email to