[m68k] Correct ISAC support
Nathan Sidwell
nathan@codesourcery.com
Fri Apr 20 18:09:00 GMT 2007
This patch corrects the ISAC support. ISAC is not a superset of ISAB, because
it does not have a relative long unconditional branch instruction. ISAC has
relative long conditional branch and relative long call. This causes two problems:
1) gas presumes that the chosen 68k variant has either all or none of the three
kinds of long relative branches. So I've had to split its handling of those
into separate tests. We now have Bb, Bs, Bg opcode format specifiers for
unconditional branch, unconditional subroutine and conditional branch.
2) ISAB PLT slots end with a relative branch to the plt header, which then does
a stack push. For ISAC I've changed this to do a relative call and then
overwrite the pushed return address in the plt header.
The patch also adds the 54455 cpu.
This patch is not as robustly tested as is ideal. I've tested on isa a & b
machines with elf-newlib and linux-glibc, but I've not tested isac support
beyond building an isac runtime for those two targets. Freescale are bringing
up a 54455 linux system, using those toolchains, which AIUI now boots. They are
progressing through the user space tools.
ok?
nathan
--
Nathan Sidwell :: http://www.codesourcery.com :: CodeSourcery
nathan@codesourcery.com :: http://www.planetfall.pwp.blueyonder.co.uk
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 5.patch
Type: text/x-patch
Size: 39197 bytes
Desc: not available
URL: <https://sourceware.org/pipermail/binutils/attachments/20070420/8169d3bc/attachment.bin>
More information about the Binutils
mailing list