diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 09f07906e5..1db7b2041a 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,9 @@ +Wed Feb 14 15:12:17 1996 Ian Lance Taylor + + * ieee.c (ieee_regno_to_genreg): Convert register numbers for m68k + and i960. + (ieee_genreg_to_regno): Likewise. + Mon Feb 12 14:19:59 1996 Ian Lance Taylor * ieee.c: Extensive changes to write code to put types in the diff --git a/binutils/ieee.c b/binutils/ieee.c index 642006b272..1fe98bf859 100644 --- a/binutils/ieee.c +++ b/binutils/ieee.c @@ -3432,6 +3432,22 @@ ieee_regno_to_genreg (abfd, r) bfd *abfd; int r; { + switch (bfd_get_arch (abfd)) + { + case bfd_arch_m68k: + /* For some reasons stabs adds 2 to the floating point register + numbers. */ + if (r >= 16) + r += 2; + break; + + case bfd_arch_i960: + /* Stabs uses 0 to 15 for r0 to r15, 16 to 31 for g0 to g15, and + 32 to 35 for fp0 to fp3. */ + --r; + break; + } + return r; } @@ -3442,6 +3458,22 @@ ieee_genreg_to_regno (abfd, r) bfd *abfd; int r; { + switch (bfd_get_arch (abfd)) + { + case bfd_arch_m68k: + /* For some reason stabs add 2 to the floating point register + numbers. */ + if (r >= 18) + r -= 2; + break; + + case bfd_arch_i960: + /* Stabs uses 0 to 15 for r0 to r15, 16 to 31 for g0 to g15, and + 32 to 35 for fp0 to fp3. */ + ++r; + break; + } + return r; }