- VA_OPEN (ap, comment);
- VA_FIXEDARG (ap, int, size);
- VA_FIXEDARG (ap, unsigned HOST_WIDE_INT, value);
- VA_FIXEDARG (ap, const char *, comment);
+ unsigned char bytes[8];
+ int i;
+
+ for (i = 0; i < 8; ++i)
+ {
+ bytes[i] = value & 0xff;
+ value >>= 8;
+ }
+
+ if (BYTES_BIG_ENDIAN)
+ {
+ for (i = size - 1; i > 0; --i)
+ fprintf (asm_out_file, "%#x,", bytes[i]);
+ fprintf (asm_out_file, "%#x", bytes[0]);
+ }
+ else
+ {
+ for (i = 0; i < size - 1; ++i)
+ fprintf (asm_out_file, "%#x,", bytes[i]);
+ fprintf (asm_out_file, "%#x", bytes[i]);
+ }
+}
+
+/* Output an immediate constant in a given SIZE in bytes. */
+
+void
+dw2_asm_output_data (int size, unsigned HOST_WIDE_INT value,
+ const char *comment, ...)
+{
+ va_list ap;
+ const char *op = integer_asm_op (size, FALSE);
+
+ va_start (ap, comment);