* elf64-mips.c (bfd_mips_elf64_swap_reginfo_in)

(bfd_mips_elf64_swap_reginfo_out): Move from here...
	* elf32-mips.c (bfd_mips_elf64_swap_reginfo_in)
	(bfd_mips_elf64_swap_reginfo_out): ...to here.
This commit is contained in:
Ian Lance Taylor 1996-06-02 01:51:55 +00:00
parent 871781804f
commit 903612a2f4
2 changed files with 50 additions and 0 deletions

View File

@ -1,3 +1,10 @@
Sat Jun 1 21:49:58 1996 Ian Lance Taylor <ian@cygnus.com>
* elf64-mips.c (bfd_mips_elf64_swap_reginfo_in)
(bfd_mips_elf64_swap_reginfo_out): Move from here...
* elf32-mips.c (bfd_mips_elf64_swap_reginfo_in)
(bfd_mips_elf64_swap_reginfo_out): ...to here.
Fri May 31 13:51:28 1996 Ian Lance Taylor <ian@cygnus.com>
* elf64-mips.c: Improve reloc special_functions and handling of

View File

@ -1333,6 +1333,49 @@ bfd_mips_elf32_swap_reginfo_out (abfd, in, ex)
(bfd_byte *) ex->ri_gp_value);
}
/* In the 64 bit ABI, the .MIPS.options section holds register
information in an Elf64_Reginfo structure. These routines swap
them in and out. They are globally visible because they are used
outside of BFD. These routines are here so that gas can call them
without worrying about whether the 64 bit ABI has been included. */
void
bfd_mips_elf64_swap_reginfo_in (abfd, ex, in)
bfd *abfd;
const Elf64_External_RegInfo *ex;
Elf64_Internal_RegInfo *in;
{
in->ri_gprmask = bfd_h_get_32 (abfd, (bfd_byte *) ex->ri_gprmask);
in->ri_pad = bfd_h_get_32 (abfd, (bfd_byte *) ex->ri_pad);
in->ri_cprmask[0] = bfd_h_get_32 (abfd, (bfd_byte *) ex->ri_cprmask[0]);
in->ri_cprmask[1] = bfd_h_get_32 (abfd, (bfd_byte *) ex->ri_cprmask[1]);
in->ri_cprmask[2] = bfd_h_get_32 (abfd, (bfd_byte *) ex->ri_cprmask[2]);
in->ri_cprmask[3] = bfd_h_get_32 (abfd, (bfd_byte *) ex->ri_cprmask[3]);
in->ri_gp_value = bfd_h_get_64 (abfd, (bfd_byte *) ex->ri_gp_value);
}
void
bfd_mips_elf64_swap_reginfo_out (abfd, in, ex)
bfd *abfd;
const Elf64_Internal_RegInfo *in;
Elf64_External_RegInfo *ex;
{
bfd_h_put_32 (abfd, (bfd_vma) in->ri_gprmask,
(bfd_byte *) ex->ri_gprmask);
bfd_h_put_32 (abfd, (bfd_vma) in->ri_pad,
(bfd_byte *) ex->ri_pad);
bfd_h_put_32 (abfd, (bfd_vma) in->ri_cprmask[0],
(bfd_byte *) ex->ri_cprmask[0]);
bfd_h_put_32 (abfd, (bfd_vma) in->ri_cprmask[1],
(bfd_byte *) ex->ri_cprmask[1]);
bfd_h_put_32 (abfd, (bfd_vma) in->ri_cprmask[2],
(bfd_byte *) ex->ri_cprmask[2]);
bfd_h_put_32 (abfd, (bfd_vma) in->ri_cprmask[3],
(bfd_byte *) ex->ri_cprmask[3]);
bfd_h_put_64 (abfd, (bfd_vma) in->ri_gp_value,
(bfd_byte *) ex->ri_gp_value);
}
/* Swap an entry in a .gptab section. Note that these routines rely
on the equivalence of the two elements of the union. */