JavaByteCodeProcessorAdapter.st
changeset 2678 c865275e48a7
parent 2396 fadc6d7a2f5b
child 2731 13f5be2bf83b
--- a/JavaByteCodeProcessorAdapter.st	Fri Aug 16 19:52:36 2013 +0200
+++ b/JavaByteCodeProcessorAdapter.st	Fri Sep 06 02:45:44 2013 +0200
@@ -51,9 +51,24 @@
      as of 1.9.2010
 
 "
+!
+
+documentation
+"
+    documentation to be added.
+
+    [author:]
+        Jan Vrany <jan.vrany@fit.cvut.cz>
+
+    [instance variables:]
+
+    [class variables:]
+
+    [see also:]
+
+"
 ! !
 
-
 !JavaByteCodeProcessorAdapter class methodsFor:'instance creation'!
 
 preresolve: aJavaMethod
@@ -62,7 +77,6 @@
     "Created: / 09-02-2012 / 22:36:29 / mh <hlopik@gmail.com>"
 ! !
 
-
 !JavaByteCodeProcessorAdapter methodsFor:'instructions'!
 
 aaload
@@ -87,11 +101,15 @@
 !
 
 aload
-
-    
-    self fetchByte.
+    wide ifTrue:[
+        wide := false.
+        self fetchIndex2.
+    ] ifFalse:[
+        self fetchIndex.
+    ]
 
     "Modified (comment): / 09-02-2012 / 21:12:38 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:54:37 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 aload: idx
@@ -121,9 +139,15 @@
 !
 
 astore
-   self fetchByte.
+    wide ifTrue:[
+        wide := false.
+        self istore: self fetchIndex2.
+    ] ifFalse:[
+        self istore: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:13:42 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:57:03 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 astore: idx
@@ -231,9 +255,15 @@
 !
 
 dload
- self fetchByte.
+    wide ifTrue:[
+        wide := false.
+        self dload: self fetchIndex2.
+    ] ifFalse:[
+        self dload: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:17:47 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:55:59 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 dload: idx
@@ -265,10 +295,16 @@
 !
 
 dstore
-    self fetchIndex
+    wide ifTrue:[
+        wide := false.
+        self dstore: self fetchIndex2.
+    ] ifFalse:[
+        self dstore: self fetchIndex.
+    ]
 
     "Created: / 14-03-2011 / 18:04:05 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 09-02-2012 / 21:21:05 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:57:35 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 dstore: idx
@@ -366,9 +402,15 @@
 !
 
 fload
-    self fetchIndex.
+    wide ifTrue:[
+        wide := false.
+        self fload: self fetchIndex2.
+    ] ifFalse:[
+        self fload: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:25:01 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:55:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fload: idx
@@ -398,10 +440,16 @@
 !
 
 fstore
-     self fetchIndex.
+    wide ifTrue:[
+        wide := false.
+        self fstore: self fetchIndex2.
+    ] ifFalse:[
+        self fstore: self fetchIndex.
+    ]
 
     "Created: / 14-03-2011 / 18:01:34 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 09-02-2012 / 21:23:14 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:56:39 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 fstore: idx
@@ -623,17 +671,30 @@
 !
 
 iinc
-
-                    self fetchBytes2.
+    wide ifTrue:[
+        wide := false.
+        self fetchIndex2.
+        self fetchBytes2.
+    ] ifFalse:[
+        self fetchIndex.
+        self fetchByte
+    ]
 
     "Created: / 14-03-2011 / 17:22:22 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
     "Modified: / 09-02-2012 / 21:30:13 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:53:43 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 iload
-   self fetchIndex.
+    wide ifTrue:[
+        wide := false.
+        self iload: self fetchIndex2.
+    ] ifFalse:[
+        self iload: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:30:25 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:55:24 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 iload: idx
@@ -738,9 +799,15 @@
 !
 
 istore
- self fetchIndex.
+    wide ifTrue:[
+        wide := false.
+        self istore: self fetchIndex2.
+    ] ifFalse:[
+        self istore: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:33:33 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:56:27 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 istore: idx
@@ -855,9 +922,15 @@
 !
 
 lload
-    self fetchIndex.
+    wide ifTrue:[
+        wide := false.
+        self lload: self fetchIndex2.
+    ] ifFalse:[
+        self lload: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:39:26 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:55:07 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 lload: idx
@@ -918,9 +991,15 @@
 !
 
 lstore
-   self fetchIndex.
+    wide ifTrue:[
+        wide := false.
+        self lstore: self fetchIndex2.
+    ] ifFalse:[
+        self lstore: self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:44:23 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:57:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 lstore: idx
@@ -1013,9 +1092,15 @@
 !
 
 ret
-   self fetchByte.
+    wide ifTrue:[
+        wide := false.
+        self fetchIndex2.
+    ] ifFalse:[
+        self fetchIndex.
+    ]
 
     "Modified: / 09-02-2012 / 21:47:06 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:57:57 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 !
 
 ret_w
@@ -1068,14 +1153,16 @@
 !
 
 wide
-   |nextOp|
-   nextOp := self fetchByte.
-   nextOp = 16r84 ifTrue: [self fetchBytes4] ifFalse: [self fetchBytes2].
+    wide := true.
+"/   |nextOp|
+"/   nextOp := self fetchByte.
+"/   nextOp = 16r84 ifTrue: [self fetchBytes4] ifFalse: [self fetchBytes2].
+"/
 
     "Modified: / 09-02-2012 / 22:23:56 / mh <hlopik@gmail.com>"
+    "Modified: / 31-08-2013 / 12:38:13 / Jan Vrany <jan.vrany@fit.cvut.cz>"
 ! !
 
-
 !JavaByteCodeProcessorAdapter methodsFor:'processing'!
 
 handleAbstractMethod
@@ -1083,11 +1170,19 @@
     "Created: / 09-02-2012 / 22:51:16 / mh <hlopik@gmail.com>"
 ! !
 
+!JavaByteCodeProcessorAdapter methodsFor:'processing loop'!
+
+switch: opcode
+    super switch: opcode.
+    leaveProcessor := pc > byteCode size.
+
+    "Created: / 30-08-2013 / 13:59:21 / Jan Vrany <jan.vrany@fit.cvut.cz>"
+! !
 
 !JavaByteCodeProcessorAdapter class methodsFor:'documentation'!
 
 version_CVS
-    ^ '$Header: /cvs/stx/stx/libjava/JavaByteCodeProcessorAdapter.st,v 1.2 2013-02-25 11:15:31 vrany Exp $'
+    ^ '$Header: /cvs/stx/stx/libjava/JavaByteCodeProcessorAdapter.st,v 1.3 2013-09-06 00:41:15 vrany Exp $'
 !
 
 version_HG