JavaByteCodeDisassembler.st
branchdevelopment
changeset 2711 a00302fe5083
parent 2429 ebece4dcaab9
child 2731 13f5be2bf83b
equal deleted inserted replaced
2710:78c4f4a03914 2711:a00302fe5083
    51      as of 1.9.2010
    51      as of 1.9.2010
    52 
    52 
    53 "
    53 "
    54 ! !
    54 ! !
    55 
    55 
    56 
       
    57 !JavaByteCodeDisassembler class methodsFor:'initialization'!
    56 !JavaByteCodeDisassembler class methodsFor:'initialization'!
    58 
    57 
    59 initialize
    58 initialize
    60     super initialize.
    59     super initialize.
    61     Verbose := false.
    60     Verbose := false.
    64 
    63 
    65     "Modified: / 22-03-2011 / 17:07:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
    64     "Modified: / 22-03-2011 / 17:07:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
    66     "Modified: / 22-03-2011 / 20:53:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    65     "Modified: / 22-03-2011 / 20:53:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    67 ! !
    66 ! !
    68 
    67 
    69 
       
    70 !JavaByteCodeDisassembler class methodsFor:'instance creation'!
    68 !JavaByteCodeDisassembler class methodsFor:'instance creation'!
    71 
    69 
    72 new
    70 new
    73     "return an initialized instance"
    71     "return an initialized instance"
    74 
    72 
    75     ^ self basicNew initialize.
    73     ^ self basicNew initialize.
    76 ! !
    74 ! !
    77 
    75 
    78 
       
    79 !JavaByteCodeDisassembler class methodsFor:'disassembling'!
    76 !JavaByteCodeDisassembler class methodsFor:'disassembling'!
    80 
    77 
    81 diassemble:aMethod 
    78 diassemble:aMethod 
    82     ^ self new diassemble:aMethod.
    79     ^ self new diassemble:aMethod.
    83 
    80 
    87 diassemble:aMethod to: aStream 
    84 diassemble:aMethod to: aStream 
    88     ^ self new diassemble:aMethod to: aStream
    85     ^ self new diassemble:aMethod to: aStream
    89 
    86 
    90     "Created: / 22-03-2011 / 21:13:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    87     "Created: / 22-03-2011 / 21:13:06 / Jan Vrany <jan.vrany@fit.cvut.cz>"
    91 ! !
    88 ! !
    92 
       
    93 
    89 
    94 !JavaByteCodeDisassembler methodsFor:'disassembling'!
    90 !JavaByteCodeDisassembler methodsFor:'disassembling'!
    95 
    91 
    96 diassemble:aJavaMethod 
    92 diassemble:aJavaMethod 
    97     self diassemble:aJavaMethod to:Transcript.
    93     self diassemble:aJavaMethod to:Transcript.
   116 
   112 
   117     "Created: / 17-03-2011 / 22:21:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   113     "Created: / 17-03-2011 / 22:21:49 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   118     "Modified: / 22-03-2011 / 15:59:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   114     "Modified: / 22-03-2011 / 15:59:50 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   119 ! !
   115 ! !
   120 
   116 
   121 
       
   122 !JavaByteCodeDisassembler methodsFor:'helpers - constants'!
   117 !JavaByteCodeDisassembler methodsFor:'helpers - constants'!
   123 
   118 
   124 address
   119 address
   125 ^ 'address'.
   120 ^ 'address'.
   126 
   121 
   244 whatever
   239 whatever
   245     ^ '..'
   240     ^ '..'
   246 
   241 
   247     "Created: / 20-03-2011 / 18:31:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   242     "Created: / 20-03-2011 / 18:31:56 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   248 ! !
   243 ! !
   249 
       
   250 
   244 
   251 !JavaByteCodeDisassembler methodsFor:'helpers - instruction groups'!
   245 !JavaByteCodeDisassembler methodsFor:'helpers - instruction groups'!
   252 
   246 
   253 arrayValueLoader    
   247 arrayValueLoader    
   254 self 
   248 self 
   391     self returnIfFinished.
   385     self returnIfFinished.
   392 
   386 
   393     "Created: / 20-03-2011 / 20:48:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   387     "Created: / 20-03-2011 / 20:48:07 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   394     "Modified: / 21-03-2011 / 14:55:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   388     "Modified: / 21-03-2011 / 14:55:06 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   395 ! !
   389 ! !
   396 
       
   397 
   390 
   398 !JavaByteCodeDisassembler methodsFor:'helpers - printing'!
   391 !JavaByteCodeDisassembler methodsFor:'helpers - printing'!
   399 
   392 
   400 prettyPrintArgs: argsString 
   393 prettyPrintArgs: argsString 
   401     ^argsString printString
   394     ^argsString printString
   610 
   603 
   611     "Modified: / 22-03-2011 / 17:00:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   604     "Modified: / 22-03-2011 / 17:00:33 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
   612     "Created: / 22-03-2011 / 20:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   605     "Created: / 22-03-2011 / 20:53:29 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   613 ! !
   606 ! !
   614 
   607 
   615 
       
   616 !JavaByteCodeDisassembler methodsFor:'initialization'!
   608 !JavaByteCodeDisassembler methodsFor:'initialization'!
   617 
   609 
   618 initialize
   610 initialize
   619     "Invoked when a new instance is created."
   611     "Invoked when a new instance is created."
   620 
   612 
   626 
   618 
   627     "/ super initialize.   -- commented since inherited method does nothing
   619     "/ super initialize.   -- commented since inherited method does nothing
   628 
   620 
   629     "Modified: / 22-03-2011 / 20:53:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   621     "Modified: / 22-03-2011 / 20:53:50 / Jan Vrany <jan.vrany@fit.cvut.cz>"
   630 ! !
   622 ! !
   631 
       
   632 
   623 
   633 !JavaByteCodeDisassembler methodsFor:'instructions'!
   624 !JavaByteCodeDisassembler methodsFor:'instructions'!
   634 
   625 
   635 aaload
   626 aaload
   636     self 
   627     self 
  1828              after: self whatever.
  1819              after: self whatever.
  1829 
  1820 
  1830     "Modified: / 20-03-2011 / 21:48:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
  1821     "Modified: / 20-03-2011 / 21:48:20 / Marcel Hlopko <hlopkmar@fel.cvut.cz>"
  1831 ! !
  1822 ! !
  1832 
  1823 
  1833 
       
  1834 !JavaByteCodeDisassembler methodsFor:'processing loop'!
  1824 !JavaByteCodeDisassembler methodsFor:'processing loop'!
  1835 
  1825 
  1836 handleAbstractMethod
  1826 handleAbstractMethod
  1837 ^nil.
  1827 ^nil.
  1838 
  1828 
  1855     ^super switch: opcode
  1845     ^super switch: opcode
  1856 
  1846 
  1857     "Created: / 22-03-2011 / 20:57:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1847     "Created: / 22-03-2011 / 20:57:42 / Jan Vrany <jan.vrany@fit.cvut.cz>"
  1858 ! !
  1848 ! !
  1859 
  1849 
  1860 
       
  1861 !JavaByteCodeDisassembler class methodsFor:'documentation'!
  1850 !JavaByteCodeDisassembler class methodsFor:'documentation'!
  1862 
  1851 
  1863 version_CVS
  1852 version_CVS
  1864     ^ '$Header: /cvs/stx/stx/libjava/JavaByteCodeDisassembler.st,v 1.5 2013-02-25 11:15:31 vrany Exp $'
  1853     ^ '$Header$'
  1865 !
  1854 !
  1866 
  1855 
  1867 version_HG
  1856 version_HG
  1868 
  1857 
  1869     ^ '$Changeset: <not expanded> $'
  1858     ^ '$Changeset: <not expanded> $'