Decompiler.st
changeset 3 b63b8a6b71fb
parent 0 7ad01559b262
child 4 f6fd83437415
--- a/Decompiler.st	Wed Oct 13 01:25:45 1993 +0100
+++ b/Decompiler.st	Wed Oct 13 01:26:26 1993 +0100
@@ -19,12 +19,12 @@
 
 Decompiler comment:'
 
-COPYRIGHT (c) 1991-92 by Claus Gittinger
+COPYRIGHT (c) 1991-93 by Claus Gittinger
              All Rights Reserved
 
 additional methods for decompilation
 
-%W% %E%
+$Header: /cvs/stx/stx/libcomp/Decompiler.st,v 1.2 1993-10-13 00:25:43 claus Exp $
 '!
 
 !Decompiler class methodsFor:'decompiling'!
@@ -82,6 +82,34 @@
     Transcript show:')'
 !
 
+showAbsOffset:byte
+    |offs b2|
+
+    index := index + 1.
+    b2 := (bytes at:index).
+    offs := byte + (b2 bitShift:8).
+    index := index + 1.
+    Transcript show:offs printString.
+    Transcript show:' ('.
+    Transcript show:offs printString.
+    Transcript show:')'
+!
+
+showAbsOffsetLevel:byte
+    |offs b2|
+
+    index := index + 1.
+    b2 := (bytes at:index).
+    offs := byte + (b2 bitShift:8).
+    index := index + 1.
+    Transcript show:offs printString.
+    Transcript show:' ('.
+    Transcript show:offs printString.
+    Transcript show:')'.
+    self showNvarNargsAt:index.
+    index := index + 2
+!
+
 showNvarNargsAt:index
     Transcript show:' nv='.
     Transcript show:(bytes at:index) printString.
@@ -129,7 +157,8 @@
     Transcript show:byte printString.
     Transcript show:' '.
     index := index + 1.
-    self showLiteralAt:index
+    self showLiteralAt:index.
+    index := index + 1
 !
 
 showSuperSendArgs:byte
@@ -137,6 +166,8 @@
     Transcript show:' '.
     index := index + 1.
     self showLiteralAt:index.
+    index := index + 1.
+    self showLiteralAt:index.
     index := index + 1
 !
 
@@ -150,6 +181,12 @@
     index := index + 1
 !
 
+showIndexLevel:byte
+    self showIndex:byte.
+    self showNvarNargsAt:index.
+    index := index + 2
+!
+
 showNumber:byte
     Transcript show:byte printString.
     index := index + 1
@@ -312,10 +349,10 @@
                 storeMethodVar4
                 storeMethodVar5
                 storeMethodVar6 " 105 "
-                nil
-                nil
-                nil
-                nil
+                sendY
+                sendX
+                sendWidth
+                sendHeight
                 storeInstVar1   " 110 "
                 storeInstVar2
                 storeInstVar3
@@ -345,7 +382,7 @@
                 sendATPUT
                 sendBitAnd
                 sendBitOr
-                nil
+                push2
                 pushBlockArg1   " 140 "
                 pushBlockArg2
                 pushBlockArg3
@@ -394,6 +431,18 @@
                 sendSelfDrop1   " 185 "
                 sendSelfDrop2
                 sendSelfDrop3
+                nil
+                nil
+                falseJumpAbs    " 190 "
+                trueJumpAbs     
+                nilJumpAbs     
+                notNilJumpAbs   
+                jumpAbs        
+                makeBlockAbs    " 195 "
+                zeroJumpAbs
+                notZeroJumpAbs
+                eqJumpAbs
+                notEqJumpAbs    " 199 "
               ).
 
     lnos := #(  false          " 0  "
@@ -576,14 +625,26 @@
                 false
                 false
                 false
-                true       " 180 "
+                true         " 180 "
                 true
                 true
                 true
                 true
-                true   " 185 "
+                true         " 185 "
                 true
                 true
+                false
+                false
+                false         " 190 "
+                false
+                false
+                false
+                false
+                false         " 195 "
+                false
+                false
+                false
+                false         " 199 "
               ).
 
     extras := #(nil             " 0  "
@@ -774,6 +835,18 @@
                 literal         " 185 "
                 literal
                 literal
+                nil
+                nil
+                absOffset       " 190 "
+                absOffset
+                absOffset
+                absOffset
+                absOffset
+                absOffsetLevel
+                absOffset
+                absOffset
+                absOffset
+                absOffset       " 199 "
              ).
 
     extra := extras at:(aByte + 1).