This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: bfd questions.
- From: "Martin Schwidefsky" <schwidefsky at de dot ibm dot com>
- To: Andrew Cagney <ac131313 at cygnus dot com>
- Cc: Nick Clifton <nickc at cambridge dot redhat dot com>, binutils at sources dot redhat dot com, gdb at sources dot redhat dot com
- Date: Mon, 18 Feb 2002 14:15:35 +0100
- Subject: Re: bfd questions.
>> For the bi-arch s390/s390x support I'd like to change the two s390
>> bfds in some aspects. 1) The printable_name for 31 bit is "s390:390"
>> and for 64 bit it is "s390:esame". Both pretty meaningless,
>> "s390:31" and "s390:64" would be better.
>
>
> or maybe "s390:31-bit" and s390:64-bit" ?
>
>
> Take care this will affect downstream GDB:
>
> (gdb) set architecture
> Requires an argument. Valid arguments are s390:390, s390:esame, auto.
This should get inherited from bfd/cpu-s390.c. Old scripts that use
set architecture will break though.
>>> 2) change the bfd_mach_s390_esa preprocessor define to
>>> bfd_mach_s390_31 and bfd_mach_s390_esame to bfd_mach_s390_64.
>>
>>
>> Seems reasonable.
>
>
>Again. This one will need a GDB tweak.
This is true, we'd need a tiny patch for the three occurences of
bfd_mach_s390_{esa,esame}. If I apply my planned changes I will
send you a patch.
>> 3) Add the switches -m31 and -m64 to switch to 31 bit or 64 bit.
>
>
> Err, add the switches to where ? GAS ?
>
>
>> 4) Add the switches -Aesa and -Aesame to switch between the ESA and
>> ESAME architectures. And last but not least 5) add ESAME relocations
>> to the 31 bit bfd.
>>
>> The idea of 4) and 5) is to enable the use of ESAME instructions on
>> a 31 bit system that is running on a machine that supports ESAME.
>
>
> Presumably then you would generate a warning if -m64 and -Aesa were
> used together, or is there an advantage to having 64 bit binaries that
> do not support the ESAME instructions ?
> Can I assume these only affect the ISA and not the ABI?
The ABI is not affected.
> I also guess that the disassembler will always disassemble ESAME
> instructions (31 or 64 bit modes) so there is no reason to add
> disassembler-options.
The disassembler will by default disassemble ESAME for 64 bit and
ESA instructions for 31 bit. You can force objdump with -ms390:64
to disassemble 31 bit objects with esame instructions.
blue skies,
Martin
Linux/390 Design & Development, IBM Deutschland Entwicklung GmbH
Schönaicherstr. 220, D-71032 Böblingen, Telefon: 49 - (0)7031 - 16-2247
E-Mail: schwidefsky@de.ibm.com