On Tue, May 28, 2002 at 10:59:34AM +0000, Freddy BL wrote:
> So, at first it seams to be easy to translate:
> 
> iload_x  -> ldloc.x
> istore_x -> stloc.x
> iadd     -> add
> return   -> ret
> aload_0  -> ldarg.0

It *might* look easy.... but to tell you some of the complicated
stuff....

The JVM uses dynamic type local variables ... IL doesnot

so like 

sipush 0
istore_3
ldc "hello"
astore_3

is valid , but 

ldc.i4.0
stloc.3
ldstr "hello"
ldloc.3 

is illegal ... which will need a hell lot of dynamic flow analysis
to find out what was in local var 3 at a point of execution and relocate
to a new var of correct type ... I'll decline to bore you with *how*..

Also add a few of the JVM's good features like pop2 , dup2_x1 , dup2_x2
and [Ljava/lang/String; you get a cart load of work. oh and I forgot
the jump target mapping , different size operands (like long,double)...

So a simple convertor is impossible... unlike your claims .. for
any useful code.

_______________________________________________
Mono-list maillist  -  [EMAIL PROTECTED]
http://lists.ximian.com/mailman/listinfo/mono-list

Reply via email to