- struct internal_aouthdr *aouthdr_in = (struct internal_aouthdr *)in;
- AOUTHDR *aouthdr_out = (AOUTHDR *)out;
- bfd_h_put_16(abfd, aouthdr_in->magic, (bfd_byte *) aouthdr_out->magic);
- bfd_h_put_16(abfd, aouthdr_in->vstamp, (bfd_byte *) aouthdr_out->vstamp);
- bfd_h_put_32(abfd, aouthdr_in->tsize, (bfd_byte *) aouthdr_out->tsize);
- bfd_h_put_32(abfd, aouthdr_in->dsize, (bfd_byte *) aouthdr_out->dsize);
- bfd_h_put_32(abfd, aouthdr_in->bsize, (bfd_byte *) aouthdr_out->bsize);
- bfd_h_put_32(abfd, aouthdr_in->entry, (bfd_byte *) aouthdr_out->entry);
- bfd_h_put_32(abfd, aouthdr_in->text_start,
- (bfd_byte *) aouthdr_out->text_start);
- bfd_h_put_32(abfd, aouthdr_in->data_start, (bfd_byte *) aouthdr_out->data_start);
-#ifdef I960
- bfd_h_put_32(abfd, aouthdr_in->tagentries, (bfd_byte *) aouthdr_out->tagentries);
-#endif
- return sizeof(AOUTHDR);
+ struct internal_aouthdr *aouthdr_in = (struct internal_aouthdr *) in;
+ AOUTHDR *aouthdr_out = (AOUTHDR *) out;
+
+ H_PUT_16 (abfd, aouthdr_in->magic, aouthdr_out->magic);
+ H_PUT_16 (abfd, aouthdr_in->vstamp, aouthdr_out->vstamp);
+ PUT_AOUTHDR_TSIZE (abfd, aouthdr_in->tsize, aouthdr_out->tsize);
+ PUT_AOUTHDR_DSIZE (abfd, aouthdr_in->dsize, aouthdr_out->dsize);
+ PUT_AOUTHDR_BSIZE (abfd, aouthdr_in->bsize, aouthdr_out->bsize);
+ PUT_AOUTHDR_ENTRY (abfd, aouthdr_in->entry, aouthdr_out->entry);
+ PUT_AOUTHDR_TEXT_START (abfd, aouthdr_in->text_start,
+ aouthdr_out->text_start);
+ PUT_AOUTHDR_DATA_START (abfd, aouthdr_in->data_start,
+ aouthdr_out->data_start);
+
+#ifdef RS6000COFF_C
+#ifdef XCOFF64
+ H_PUT_64 (abfd, aouthdr_in->o_toc, aouthdr_out->o_toc);
+#else
+ H_PUT_32 (abfd, aouthdr_in->o_toc, aouthdr_out->o_toc);
+#endif
+ H_PUT_16 (abfd, aouthdr_in->o_snentry, aouthdr_out->o_snentry);
+ H_PUT_16 (abfd, aouthdr_in->o_sntext, aouthdr_out->o_sntext);
+ H_PUT_16 (abfd, aouthdr_in->o_sndata, aouthdr_out->o_sndata);
+ H_PUT_16 (abfd, aouthdr_in->o_sntoc, aouthdr_out->o_sntoc);
+ H_PUT_16 (abfd, aouthdr_in->o_snloader, aouthdr_out->o_snloader);
+ H_PUT_16 (abfd, aouthdr_in->o_snbss, aouthdr_out->o_snbss);
+ H_PUT_16 (abfd, aouthdr_in->o_algntext, aouthdr_out->o_algntext);
+ H_PUT_16 (abfd, aouthdr_in->o_algndata, aouthdr_out->o_algndata);
+ H_PUT_16 (abfd, aouthdr_in->o_modtype, aouthdr_out->o_modtype);
+ H_PUT_16 (abfd, aouthdr_in->o_cputype, aouthdr_out->o_cputype);
+#ifdef XCOFF64
+ H_PUT_64 (abfd, aouthdr_in->o_maxstack, aouthdr_out->o_maxstack);
+ H_PUT_64 (abfd, aouthdr_in->o_maxdata, aouthdr_out->o_maxdata);
+#else
+ H_PUT_32 (abfd, aouthdr_in->o_maxstack, aouthdr_out->o_maxstack);
+ H_PUT_32 (abfd, aouthdr_in->o_maxdata, aouthdr_out->o_maxdata);
+#endif
+ memset (aouthdr_out->o_resv2, 0, sizeof aouthdr_out->o_resv2);
+#ifdef XCOFF64
+ memset (aouthdr_out->o_debugger, 0, sizeof aouthdr_out->o_debugger);
+ memset (aouthdr_out->o_resv3, 0, sizeof aouthdr_out->o_resv3);
+#endif
+#endif
+
+#ifdef MIPSECOFF
+ H_PUT_32 (abfd, aouthdr_in->bss_start, aouthdr_out->bss_start);
+ H_PUT_32 (abfd, aouthdr_in->gp_value, aouthdr_out->gp_value);
+ H_PUT_32 (abfd, aouthdr_in->gprmask, aouthdr_out->gprmask);
+ H_PUT_32 (abfd, aouthdr_in->cprmask[0], aouthdr_out->cprmask[0]);
+ H_PUT_32 (abfd, aouthdr_in->cprmask[1], aouthdr_out->cprmask[1]);
+ H_PUT_32 (abfd, aouthdr_in->cprmask[2], aouthdr_out->cprmask[2]);
+ H_PUT_32 (abfd, aouthdr_in->cprmask[3], aouthdr_out->cprmask[3]);
+#endif
+
+#ifdef ALPHAECOFF
+ /* FIXME: What does bldrev mean? */
+ H_PUT_16 (abfd, 2, aouthdr_out->bldrev);
+ H_PUT_16 (abfd, 0, aouthdr_out->padding);
+ H_PUT_64 (abfd, aouthdr_in->bss_start, aouthdr_out->bss_start);
+ H_PUT_64 (abfd, aouthdr_in->gp_value, aouthdr_out->gp_value);
+ H_PUT_32 (abfd, aouthdr_in->gprmask, aouthdr_out->gprmask);
+ H_PUT_32 (abfd, aouthdr_in->fprmask, aouthdr_out->fprmask);
+#endif
+
+ return AOUTSZ;