[OpenBIOS] [PATCH 3/4] ppc: Introduce load() macro for ppc64

Andreas Färber andreas.faerber at web.de
Mon Nov 1 23:09:30 CET 2010


Am 01.11.2010 um 22:10 schrieb Alexander Graf:

> On 01.11.2010, at 16:56, Andreas Färber wrote:
>
>> When loading the fw_cfg address with just lis, addi sequence,
>> we get the high address bits as 0xffffffff on ppc64.
>>
>> Use the full double word immediate load sequence on ppc64.
>>
>> Cc: Alexander Graf <agraf at suse.de>
>> Signed-off-by: Andreas Färber <andreas.faerber at web.de>
>> ---
>> arch/ppc/qemu/start.S |   51 ++++++++++++++++++++++++++ 
>> +---------------------
>> 1 files changed, 29 insertions(+), 22 deletions(-)
>>
>> diff --git a/arch/ppc/qemu/start.S b/arch/ppc/qemu/start.S
>> index 443d668..0be69d9 100644
>> --- a/arch/ppc/qemu/start.S
>> +++ b/arch/ppc/qemu/start.S
>> @@ -176,6 +176,24 @@
>> #undef stl
>> #undef ll
>>
>> +
>> +#ifdef __powerpc64__
>> +
>> +#define load(D, x) \
>> +	lis  (D),      (x)@highest ; \
>> +	ori  (D), (D), (x)@higher ; \
>> +	sldi (D), (D), 32 ; \
>> +	oris (D), (D), (x)@h ; \
>> +	ori  (D), (D), (x)@l
>> +
>> +#else
>> +
>> +#define load(D, x) \
>> +	lis  (D),      HA(x) ; \
>> +	addi (D), (D), LO(x)
>
> I would recommend to take the LOAD_REG_IMMEDIATE macro from  
> Linux :). That makes the code more readable for someone who knows  
> his way around the Linux code.

Done. This series is now also available from http://repo.or.cz/w/openbios/afaerber.git 
  ppc64-queue.

Andreas


More information about the OpenBIOS mailing list