X-Git-Url: http://svarog.pmf.uns.ac.rs/gitweb/?p=mjc2wsl.git;a=blobdiff_plain;f=src%2Fmjc2wsl.java;h=4c7618f2a212f0dbdffafebb7915a270fc783666;hp=c45de80f96e614e9652247d1919598fca3245f79;hb=ff01a2d354f1057698e96fcecaa749722a860544;hpb=46d034455b8af0cd19a8b4eaaf179d8ba8eb7a11 diff --git a/src/mjc2wsl.java b/src/mjc2wsl.java index c45de80..4c7618f 100644 --- a/src/mjc2wsl.java +++ b/src/mjc2wsl.java @@ -253,6 +253,13 @@ public class mjc2wsl{ return res; } + private String cmdPopEStack() { + String res = "mjvm_estack := TAIL(mjvm_estack);"; + if (genPrintEStackOnChange) res +="PRINT(\"eStack\",mjvm_estack);"; + return res; + } + + private String getTopTwo(){ return cmdFromEStack("tempa") + "\n" + cmdFromEStack("tempb"); } @@ -404,6 +411,12 @@ public class mjc2wsl{ } //TODO neg, shl, shr, inc + + case inc : { + int b1 = get(), b2 = get(); + prl(loc(b1)+" := " +loc(b1)+" + "+b2); + break; + } //TODO new_ newarray case new_ : get();//needs a short, but a byte will be taken bellow as well @@ -415,7 +428,12 @@ public class mjc2wsl{ } //TODO aload, asstore, baload, bastore //TODO arraylength - //TODO pop, dup, dup2 + //TODO dup, dup2 + + case pop : { + prl(cmdPopEStack()); + break; + } case jmp: { prl("CALL a" + (counter + get2()) + ";");