[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Unidentified subject!



On Wed, Jan 09, 2002 at 11:20:52PM +0100, Christian Groessler wrote:

> 
> .L1239:
> #APP
> 	.chip 68040
> 	pflush (%a0)
> 	.chip 68k
> #NO_APP
> 	clr.l %d1
> 	jbra .L1196
> 	.align	2
> .L1193:
> #APP
> 	ptestr (%a0)
> #NO_APP
> 	jbra .L1194
> 	.align	2
> 
> There is the .chip 68k currently in effect.

I see, the compiler reordered the statements somewhat so the '.chip' 
got lexicaly separated from the statements where it belongs to
logically.

Try this replacement-probe040, I can't even testcompile it now.

static inline unsigned long probe040(int iswrite, unsigned long addr, int wbs)
{
	unsigned long mmusr;
	mm_segment_t old_fs = get_fs();

	set_fs(MAKE_MM_SEG(wbs));

	asm volatile ( ".chip 68040\n"
		       "tst.l %2\n"
		       "jbne 1f\n"
                       "ptestr (%1)\n" 
                       "jbra 2f\n"
                       "1: ptestw (%1)\n"
                       "2: movec %%mmusr,%0\n"
                       ".chip 68k\n"
			: "=r" (mmusr) : "a" (addr), "r" (iswrite));

	set_fs(old_fs); 

	return mmusr;
}


> gcc version 3.0.2

no known problems, btw how many people besides me test gcc3 on kernels 
actually?

Bye
Richard



Reply to: