Subject: Re: [PATCH 5/6] Support for the Ebony 440GP reference board in arch/powerpc

From: Segher Boessenkool <[email-masked]>
Date: Sat, 5 May 2007 22:37:37 +0200

>>> +static void ebony_exit(void)
>>> +{
>>> +     unsigned long tmp;
>>> +
>>> +     asm volatile (
>>> +             "mfspr  %0,%1\n"
>>> +             "oris   %0,%0,%2@h\n"
>>> +             "mtspr  %1,%0"
>>> +             : "=&r"(tmp) : "i"(SPRN_DBCR0), "i"(DBCR0_RST_SYSTEM)
>>
>> You don't have to pass in the constants here, you can specify them in
>> the asm. Makes it a little more readable.
>
> How?   CPP doesn't apply inside the strings.

So put it outside the strings:

+     asm volatile (
+             "mfspr  %0," #SPRN_DBCR0 "\n\t"
+             "oris   %0,%0," #DBCR0_RST_SYSTEM "@h\n\t"
+             "mtspr  " #SPRN_DBCR0 ",%0"
+             : "=&r"(tmp));

Segher