const char *comment, ...)
{
va_list ap;
+ const char *op = integer_asm_op (size, FALSE);
va_start (ap, comment);
if (size * 8 < HOST_BITS_PER_WIDE_INT)
value &= ~(~(unsigned HOST_WIDE_INT) 0 << (size * 8));
- dw2_assemble_integer (size, GEN_INT (value));
+ if (op)
+ fprintf (asm_out_file, "%s" HOST_WIDE_INT_PRINT_HEX, op, value);
+ else
+ assemble_integer (GEN_INT (value), size, BITS_PER_UNIT, 1);
if (flag_debug_asm && comment)
{
va_end (ap);
}
-/* Output a section-relative reference to a label. In general this
- can only be done for debugging symbols. E.g. on most targets with
- the GNU linker, this is accomplished with a direct reference and
- the knowledge that the debugging section will be placed at VMA 0.
- Some targets have special relocations for this that we must use. */
+/* Output a section-relative reference to a LABEL, which was placed in
+ BASE. In general this can only be done for debugging symbols.
+ E.g. on most targets with the GNU linker, this is accomplished with
+ a direct reference and the knowledge that the debugging section
+ will be placed at VMA 0. Some targets have special relocations for
+ this that we must use. */
void
dw2_asm_output_offset (int size, const char *label,
+ section *base ATTRIBUTE_UNUSED,
const char *comment, ...)
{
va_list ap;
va_start (ap, comment);
#ifdef ASM_OUTPUT_DWARF_OFFSET
- ASM_OUTPUT_DWARF_OFFSET (asm_out_file, size, label);
+ ASM_OUTPUT_DWARF_OFFSET (asm_out_file, size, label, base);
#else
dw2_assemble_integer (size, gen_rtx_SYMBOL_REF (Pmode, label));
#endif