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
>