+ if (HAVE_AS_LEB128)
+ {
+ fprintf (asm_out_file, "\t.sleb128 " HOST_WIDE_INT_PRINT_DEC, value);
+
+ if (flag_debug_asm && comment)
+ {
+ fprintf (asm_out_file, "\t%s ", ASM_COMMENT_START);
+ vfprintf (asm_out_file, comment, ap);
+ }
+ }
+ else
+ {
+ HOST_WIDE_INT work = value;
+ int more, byte;
+ const char *byte_op = targetm.asm_out.byte_op;
+
+ if (byte_op)
+ fputs (byte_op, asm_out_file);
+ do
+ {
+ byte = (work & 0x7f);
+ /* arithmetic shift */
+ work >>= 7;
+ more = !((work == 0 && (byte & 0x40) == 0)
+ || (work == -1 && (byte & 0x40) != 0));
+ if (more)
+ byte |= 0x80;
+
+ if (byte_op)
+ {
+ fprintf (asm_out_file, "%#x", byte);
+ if (more)
+ fputc (',', asm_out_file);
+ }
+ else
+ assemble_integer (GEN_INT (byte), 1, BITS_PER_UNIT, 1);
+ }
+ while (more);
+
+ if (flag_debug_asm)
+ {
+ fprintf (asm_out_file, "\t%s sleb128 " HOST_WIDE_INT_PRINT_DEC,
+ ASM_COMMENT_START, value);
+ if (comment)
+ {
+ fputs ("; ", asm_out_file);
+ vfprintf (asm_out_file, comment, ap);
+ }
+ }
+ }
+
+ fputc ('\n', asm_out_file);
+
+ va_end (ap);
+}
+
+/* Output symbol LAB1 as an unsigned LEB128 quantity. LAB1 should be
+ an assembler-computed constant, e.g. a view number, because we
+ can't have relocations in LEB128 quantities. */
+
+void
+dw2_asm_output_symname_uleb128 (const char *lab1 ATTRIBUTE_UNUSED,
+ const char *comment, ...)
+{
+ va_list ap;
+
+ va_start (ap, comment);
+