disassembly options
Dave Korn
dave.korn@artimi.com
Fri Sep 7 14:59:00 GMT 2007
On 07 September 2007 15:52, Nick Clifton wrote:
> Hi Robin,
>
>> It would be nice to have something that automatically told me that the MMR
>> at 0xffc00000 == "PLL_CTL", (the name actually means something - and is
>> referenced in the standard processor documentation), and get something
>> that looks like:
>>
>> 20e4: 4a e1 c0 ff P2.H = 0xffc0 /* 0xffc01f24 */;
>> 20e8: 0a e1 00 00 P2.L = 0x0 /* 0xffc00000 */;
>> 20ec: 10 95 R0 = W[P2] (Z) /* PLL_CTL */;
>
> I think that this would be useful.
>
> You may find however that implementing it in a nice generic way will mean
> that you will have to rewrite the symbol/address decoding part of the
> disassembler. Not that this would be a bad thing, it could certainly use
> a tidy up.
Won't the real tricky bit be in performing the data flow analysis? There
are relocs on those two assignments. There's nothing on the load indirect. I
don't see how it could handle (sorry, don't speak bfin assembler, so this is a
bit made up) stuff like:
P2.H = 0xffc0 /* 0xffc01f24 */;
P2.L = 0x0 /* 0xffc00000 */;
if (condition) goto LABEL
P2.H = 0xffc0 /* 0xffc01f28 */;
P2.L = 0x0 /* 0xffc00000 */;
LABEL:
R0 = W[P2] (Z) /* ???Don't know??? */;
or
SUBROUTINE:
R0 = W[P2] (Z) /* ???Was set on entry, could be anything ??? */;
or even just
P2.H = 0xffc0 /* 0xffc01f24 */;
P2.L = 0x0 /* 0xffc00000 */;
( lots of instructions that don't alter P2)
R0 = W[P2] (Z) /* ???Don't know??? */;
...?
cheers,
DaveK
--
Can't think of a witty .sigline today....
More information about the Binutils
mailing list