JIT on Netwinder
Godmar Back
kaffe@rufus.w3.org
Mon, 13 Nov 2000 11:07:18 -0700 (MST)
This could either be a problem with cache flushing (shouldn't be though)
or a problem with the compiler you're using.
You could try compiling with a different level of optimization
and you should doublecheck that the D-Cache is being flushed properly.
- Godmar
>
> kaffe@rufus.w3.org@rufus.w3.org on 08.11.2000 22:40:12
>
> Please respond to kaffe@rufus.w3.org
>
> Sent by: owner-kaffe@rufus.w3.org
>
>
> To: kaffe@rufus.w3.org
> cc:
>
> Subject: Re: JIT on Netwinder
>
>
>
> Hello Godmar
>
> I recompile libraries needed by kaffe with -fPIC but get the same error:
>
> Illegal instruction. Core dumped.
>
> I attempt to debug kaffe and determine that it fails in macros sysdepCallMethod
> which calling from function callMethodA(...) at lines
> case 0:
> asm ("mov lr, pc\n
> mov pc, %3\n"
> : "=r" (r0), "=r" (r1), "=f" (f0)
> : "r" ((CALL)->function),
> "0" (r0), "1" (r1), "r" (r2), "r" (r3)
> : "ip", "rfp", "sl", "fp", "lr"
> );
> switch((CALL)->rettype)
> {
> case 'D':
> asm("stfd %1,%0" : "=m" ((CALL)->ret->d) : "f" (f0));
> break;
> case 'F':
> asm("stfs %1,%0" : "=m" ((CALL)->ret->f) : "f" (f0));
> break;
> case 'J':
> (&(CALL)->ret->i)[1] = r1;
> /* follow through */
> default:
> (CALL)->ret->i = r0;
> }
> break;
>
> Best Regards,
> Sergey Voitseh
>