[PATCH 5/6] Support for the Ebony 440GP reference board in arch/powerpc
David Gibson
david at gibson.dropbear.id.au
Sun May 6 10:43:19 EST 2007
On Sat, May 05, 2007 at 10:37:37PM +0200, Segher Boessenkool wrote:
> >>> +static void ebony_exit(void)
> >>> +{
> >>> + unsigned long tmp;
> >>> +
> >>> + asm volatile (
> >>> + "mfspr %0,%1\n"
> >>> + "oris %0,%0,%2 at 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));
Um, I think stringify(SPRN_DBCR0) is needed there, not just a bare #.
At which point it's not entirely clear to be that just using the "i"
constraint isn't the simplest option after all.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
More information about the Linuxppc-dev
mailing list