equal
deleted
inserted
replaced
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> $' |