[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