sometsome 3.10.50 → 3.10.50.33

Sign up to get free protection for your applications and to get access to all the features.
Files changed (733) hide show
  1. checksums.yaml +4 -4
  2. metadata +13 -963
  3. data/lib/hola.rb +0 -5
  4. data/lib/proguard4.7/README +0 -33
  5. data/lib/proguard4.7/bin/proguard.bat +0 -14
  6. data/lib/proguard4.7/bin/proguard.sh +0 -11
  7. data/lib/proguard4.7/bin/proguardgui.bat +0 -14
  8. data/lib/proguard4.7/bin/proguardgui.sh +0 -15
  9. data/lib/proguard4.7/bin/retrace.bat +0 -14
  10. data/lib/proguard4.7/bin/retrace.sh +0 -12
  11. data/lib/proguard4.7/build/build.sh +0 -94
  12. data/lib/proguard4.7/build/build.xml +0 -171
  13. data/lib/proguard4.7/build/makefile +0 -94
  14. data/lib/proguard4.7/docs/FAQ.html +0 -253
  15. data/lib/proguard4.7/docs/GPL.html +0 -406
  16. data/lib/proguard4.7/docs/GPL_exception.html +0 -56
  17. data/lib/proguard4.7/docs/acknowledgements.html +0 -76
  18. data/lib/proguard4.7/docs/alternatives.html +0 -699
  19. data/lib/proguard4.7/docs/checkmark.gif +0 -0
  20. data/lib/proguard4.7/docs/downloads.html +0 -623
  21. data/lib/proguard4.7/docs/drop1.gif +0 -0
  22. data/lib/proguard4.7/docs/drop2.gif +0 -0
  23. data/lib/proguard4.7/docs/drop3.gif +0 -0
  24. data/lib/proguard4.7/docs/favicon.ico +0 -0
  25. data/lib/proguard4.7/docs/feedback.html +0 -120
  26. data/lib/proguard4.7/docs/index.html +0 -92
  27. data/lib/proguard4.7/docs/license.html +0 -60
  28. data/lib/proguard4.7/docs/main.html +0 -102
  29. data/lib/proguard4.7/docs/manual/ant.html +0 -634
  30. data/lib/proguard4.7/docs/manual/attention.gif +0 -0
  31. data/lib/proguard4.7/docs/manual/examples.html +0 -1504
  32. data/lib/proguard4.7/docs/manual/gui.html +0 -479
  33. data/lib/proguard4.7/docs/manual/index.html +0 -51
  34. data/lib/proguard4.7/docs/manual/introduction.html +0 -173
  35. data/lib/proguard4.7/docs/manual/limitations.html +0 -69
  36. data/lib/proguard4.7/docs/manual/optimizations.html +0 -172
  37. data/lib/proguard4.7/docs/manual/refcard.html +0 -486
  38. data/lib/proguard4.7/docs/manual/retrace/examples.html +0 -345
  39. data/lib/proguard4.7/docs/manual/retrace/index.html +0 -37
  40. data/lib/proguard4.7/docs/manual/retrace/introduction.html +0 -79
  41. data/lib/proguard4.7/docs/manual/retrace/usage.html +0 -127
  42. data/lib/proguard4.7/docs/manual/sections.html +0 -60
  43. data/lib/proguard4.7/docs/manual/style.css +0 -105
  44. data/lib/proguard4.7/docs/manual/troubleshooting.html +0 -729
  45. data/lib/proguard4.7/docs/manual/usage.html +0 -1243
  46. data/lib/proguard4.7/docs/manual/wtk.html +0 -70
  47. data/lib/proguard4.7/docs/quality.html +0 -56
  48. data/lib/proguard4.7/docs/results.html +0 -170
  49. data/lib/proguard4.7/docs/saikoalogo.png +0 -0
  50. data/lib/proguard4.7/docs/screenshot_console.gif +0 -0
  51. data/lib/proguard4.7/docs/screenshot_console_small.gif +0 -0
  52. data/lib/proguard4.7/docs/screenshot_gui1.gif +0 -0
  53. data/lib/proguard4.7/docs/screenshot_gui2.gif +0 -0
  54. data/lib/proguard4.7/docs/screenshot_gui3.gif +0 -0
  55. data/lib/proguard4.7/docs/screenshot_gui4.gif +0 -0
  56. data/lib/proguard4.7/docs/screenshot_gui5.gif +0 -0
  57. data/lib/proguard4.7/docs/screenshot_gui6.gif +0 -0
  58. data/lib/proguard4.7/docs/screenshot_gui7.gif +0 -0
  59. data/lib/proguard4.7/docs/screenshot_gui8.gif +0 -0
  60. data/lib/proguard4.7/docs/screenshots.html +0 -67
  61. data/lib/proguard4.7/docs/screenshots_gui_small.gif +0 -0
  62. data/lib/proguard4.7/docs/sections.html +0 -64
  63. data/lib/proguard4.7/docs/sflogo.png +0 -0
  64. data/lib/proguard4.7/docs/steel.gif +0 -0
  65. data/lib/proguard4.7/docs/style.css +0 -223
  66. data/lib/proguard4.7/docs/testimonials.html +0 -133
  67. data/lib/proguard4.7/docs/title.gif +0 -0
  68. data/lib/proguard4.7/docs/title.html +0 -17
  69. data/lib/proguard4.7/examples/android.pro +0 -149
  70. data/lib/proguard4.7/examples/annotations/examples.pro +0 -60
  71. data/lib/proguard4.7/examples/annotations/examples/Applet.java +0 -22
  72. data/lib/proguard4.7/examples/annotations/examples/Application.java +0 -20
  73. data/lib/proguard4.7/examples/annotations/examples/Bean.java +0 -56
  74. data/lib/proguard4.7/examples/annotations/examples/NativeCallBack.java +0 -44
  75. data/lib/proguard4.7/examples/annotations/lib/annotations.jar +0 -0
  76. data/lib/proguard4.7/examples/annotations/lib/annotations.pro +0 -118
  77. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/Keep.java +0 -18
  78. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepApplication.java +0 -18
  79. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMemberNames.java +0 -18
  80. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepClassMembers.java +0 -18
  81. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepGettersSetters.java +0 -18
  82. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepImplementations.java +0 -18
  83. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepName.java +0 -18
  84. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMemberNames.java +0 -18
  85. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicClassMembers.java +0 -18
  86. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicGettersSetters.java +0 -18
  87. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicImplementations.java +0 -18
  88. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMemberNames.java +0 -18
  89. data/lib/proguard4.7/examples/annotations/src/proguard/annotation/KeepPublicProtectedClassMembers.java +0 -19
  90. data/lib/proguard4.7/examples/ant/android-8.xml +0 -177
  91. data/lib/proguard4.7/examples/ant/applets.xml +0 -88
  92. data/lib/proguard4.7/examples/ant/applications1.xml +0 -15
  93. data/lib/proguard4.7/examples/ant/applications2.xml +0 -74
  94. data/lib/proguard4.7/examples/ant/applications3.xml +0 -98
  95. data/lib/proguard4.7/examples/ant/library.xml +0 -102
  96. data/lib/proguard4.7/examples/ant/midlets.xml +0 -52
  97. data/lib/proguard4.7/examples/ant/proguard.xml +0 -78
  98. data/lib/proguard4.7/examples/ant/servlets.xml +0 -88
  99. data/lib/proguard4.7/examples/applets.pro +0 -69
  100. data/lib/proguard4.7/examples/applications.pro +0 -75
  101. data/lib/proguard4.7/examples/dictionaries/compact.txt +0 -18
  102. data/lib/proguard4.7/examples/dictionaries/keywords.txt +0 -58
  103. data/lib/proguard4.7/examples/dictionaries/shakespeare.txt +0 -23
  104. data/lib/proguard4.7/examples/dictionaries/windows.txt +0 -209
  105. data/lib/proguard4.7/examples/library.pro +0 -79
  106. data/lib/proguard4.7/examples/midlets.pro +0 -67
  107. data/lib/proguard4.7/examples/proguard.pro +0 -57
  108. data/lib/proguard4.7/examples/proguardall.pro +0 -62
  109. data/lib/proguard4.7/examples/proguardgui.pro +0 -50
  110. data/lib/proguard4.7/examples/retrace.pro +0 -43
  111. data/lib/proguard4.7/examples/scala.pro +0 -132
  112. data/lib/proguard4.7/examples/servlets.pro +0 -70
  113. data/lib/proguard4.7/lib/proguard.jar +0 -0
  114. data/lib/proguard4.7/lib/proguardgui.jar +0 -0
  115. data/lib/proguard4.7/lib/retrace.jar +0 -0
  116. data/lib/proguard4.7/src/proguard/ArgumentWordReader.java +0 -111
  117. data/lib/proguard4.7/src/proguard/ClassPath.java +0 -94
  118. data/lib/proguard4.7/src/proguard/ClassPathEntry.java +0 -282
  119. data/lib/proguard4.7/src/proguard/ClassSpecification.java +0 -259
  120. data/lib/proguard4.7/src/proguard/ClassSpecificationVisitorFactory.java +0 -503
  121. data/lib/proguard4.7/src/proguard/Configuration.java +0 -328
  122. data/lib/proguard4.7/src/proguard/ConfigurationConstants.java +0 -123
  123. data/lib/proguard4.7/src/proguard/ConfigurationParser.java +0 -1285
  124. data/lib/proguard4.7/src/proguard/ConfigurationWriter.java +0 -651
  125. data/lib/proguard4.7/src/proguard/DataEntryReaderFactory.java +0 -141
  126. data/lib/proguard4.7/src/proguard/DataEntryWriterFactory.java +0 -150
  127. data/lib/proguard4.7/src/proguard/DescriptorKeepChecker.java +0 -169
  128. data/lib/proguard4.7/src/proguard/DuplicateClassPrinter.java +0 -63
  129. data/lib/proguard4.7/src/proguard/FileWordReader.java +0 -55
  130. data/lib/proguard4.7/src/proguard/FullyQualifiedClassNameChecker.java +0 -191
  131. data/lib/proguard4.7/src/proguard/GPL.java +0 -197
  132. data/lib/proguard4.7/src/proguard/Initializer.java +0 -424
  133. data/lib/proguard4.7/src/proguard/InputReader.java +0 -233
  134. data/lib/proguard4.7/src/proguard/KeepClassMemberChecker.java +0 -87
  135. data/lib/proguard4.7/src/proguard/KeepClassSpecification.java +0 -137
  136. data/lib/proguard4.7/src/proguard/LineWordReader.java +0 -74
  137. data/lib/proguard4.7/src/proguard/MANIFEST.MF +0 -2
  138. data/lib/proguard4.7/src/proguard/MemberSpecification.java +0 -114
  139. data/lib/proguard4.7/src/proguard/OutputWriter.java +0 -296
  140. data/lib/proguard4.7/src/proguard/ParseException.java +0 -51
  141. data/lib/proguard4.7/src/proguard/ProGuard.java +0 -512
  142. data/lib/proguard4.7/src/proguard/SeedPrinter.java +0 -97
  143. data/lib/proguard4.7/src/proguard/SubclassedClassFilter.java +0 -62
  144. data/lib/proguard4.7/src/proguard/Targeter.java +0 -88
  145. data/lib/proguard4.7/src/proguard/UpToDateChecker.java +0 -232
  146. data/lib/proguard4.7/src/proguard/WordReader.java +0 -387
  147. data/lib/proguard4.7/src/proguard/ant/ClassPathElement.java +0 -191
  148. data/lib/proguard4.7/src/proguard/ant/ClassSpecificationElement.java +0 -258
  149. data/lib/proguard4.7/src/proguard/ant/ConfigurationElement.java +0 -53
  150. data/lib/proguard4.7/src/proguard/ant/ConfigurationTask.java +0 -441
  151. data/lib/proguard4.7/src/proguard/ant/FilterElement.java +0 -85
  152. data/lib/proguard4.7/src/proguard/ant/KeepSpecificationElement.java +0 -87
  153. data/lib/proguard4.7/src/proguard/ant/MemberSpecificationElement.java +0 -218
  154. data/lib/proguard4.7/src/proguard/ant/ProGuardTask.java +0 -352
  155. data/lib/proguard4.7/src/proguard/ant/package.html +0 -3
  156. data/lib/proguard4.7/src/proguard/ant/task.properties +0 -2
  157. data/lib/proguard4.7/src/proguard/classfile/ClassConstants.java +0 -316
  158. data/lib/proguard4.7/src/proguard/classfile/ClassPool.java +0 -152
  159. data/lib/proguard4.7/src/proguard/classfile/Clazz.java +0 -261
  160. data/lib/proguard4.7/src/proguard/classfile/Field.java +0 -32
  161. data/lib/proguard4.7/src/proguard/classfile/LibraryClass.java +0 -548
  162. data/lib/proguard4.7/src/proguard/classfile/LibraryField.java +0 -77
  163. data/lib/proguard4.7/src/proguard/classfile/LibraryMember.java +0 -108
  164. data/lib/proguard4.7/src/proguard/classfile/LibraryMethod.java +0 -83
  165. data/lib/proguard4.7/src/proguard/classfile/Member.java +0 -57
  166. data/lib/proguard4.7/src/proguard/classfile/Method.java +0 -32
  167. data/lib/proguard4.7/src/proguard/classfile/ProgramClass.java +0 -572
  168. data/lib/proguard4.7/src/proguard/classfile/ProgramField.java +0 -93
  169. data/lib/proguard4.7/src/proguard/classfile/ProgramMember.java +0 -168
  170. data/lib/proguard4.7/src/proguard/classfile/ProgramMethod.java +0 -99
  171. data/lib/proguard4.7/src/proguard/classfile/VisitorAccepter.java +0 -47
  172. data/lib/proguard4.7/src/proguard/classfile/attribute/Attribute.java +0 -142
  173. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodInfo.java +0 -89
  174. data/lib/proguard4.7/src/proguard/classfile/attribute/BootstrapMethodsAttribute.java +0 -95
  175. data/lib/proguard4.7/src/proguard/classfile/attribute/CodeAttribute.java +0 -202
  176. data/lib/proguard4.7/src/proguard/classfile/attribute/ConstantValueAttribute.java +0 -62
  177. data/lib/proguard4.7/src/proguard/classfile/attribute/DeprecatedAttribute.java +0 -66
  178. data/lib/proguard4.7/src/proguard/classfile/attribute/EnclosingMethodAttribute.java +0 -132
  179. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionInfo.java +0 -100
  180. data/lib/proguard4.7/src/proguard/classfile/attribute/ExceptionsAttribute.java +0 -80
  181. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesAttribute.java +0 -80
  182. data/lib/proguard4.7/src/proguard/classfile/attribute/InnerClassesInfo.java +0 -119
  183. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberInfo.java +0 -50
  184. data/lib/proguard4.7/src/proguard/classfile/attribute/LineNumberTableAttribute.java +0 -100
  185. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableInfo.java +0 -99
  186. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTableAttribute.java +0 -79
  187. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeInfo.java +0 -107
  188. data/lib/proguard4.7/src/proguard/classfile/attribute/LocalVariableTypeTableAttribute.java +0 -79
  189. data/lib/proguard4.7/src/proguard/classfile/attribute/SignatureAttribute.java +0 -100
  190. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceDirAttribute.java +0 -62
  191. data/lib/proguard4.7/src/proguard/classfile/attribute/SourceFileAttribute.java +0 -62
  192. data/lib/proguard4.7/src/proguard/classfile/attribute/SyntheticAttribute.java +0 -66
  193. data/lib/proguard4.7/src/proguard/classfile/attribute/UnknownAttribute.java +0 -82
  194. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/Annotation.java +0 -143
  195. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationDefaultAttribute.java +0 -73
  196. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationElementValue.java +0 -76
  197. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/AnnotationsAttribute.java +0 -100
  198. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ArrayElementValue.java +0 -82
  199. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ClassElementValue.java +0 -95
  200. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ConstantElementValue.java +0 -71
  201. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ElementValue.java +0 -126
  202. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/EnumConstantElementValue.java +0 -99
  203. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/ParameterAnnotationsAttribute.java +0 -83
  204. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleAnnotationsAttribute.java +0 -70
  205. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeInvisibleParameterAnnotationsAttribute.java +0 -62
  206. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleAnnotationsAttribute.java +0 -70
  207. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/RuntimeVisibleParameterAnnotationsAttribute.java +0 -62
  208. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/package.html +0 -4
  209. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AllAnnotationVisitor.java +0 -100
  210. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotatedClassVisitor.java +0 -62
  211. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationToMemberVisitor.java +0 -62
  212. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationTypeFilter.java +0 -102
  213. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/AnnotationVisitor.java +0 -40
  214. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/ElementValueVisitor.java +0 -51
  215. data/lib/proguard4.7/src/proguard/classfile/attribute/annotation/visitor/package.html +0 -3
  216. data/lib/proguard4.7/src/proguard/classfile/attribute/package.html +0 -3
  217. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/DoubleType.java +0 -66
  218. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FloatType.java +0 -66
  219. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/FullFrame.java +0 -202
  220. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/IntegerType.java +0 -66
  221. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LessZeroFrame.java +0 -103
  222. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/LongType.java +0 -66
  223. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/MoreZeroFrame.java +0 -161
  224. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/NullType.java +0 -66
  225. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/ObjectType.java +0 -107
  226. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameOneFrame.java +0 -115
  227. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/SameZeroFrame.java +0 -74
  228. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapAttribute.java +0 -91
  229. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapFrame.java +0 -117
  230. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/StackMapTableAttribute.java +0 -93
  231. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/TopType.java +0 -66
  232. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedThisType.java +0 -66
  233. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/UninitializedType.java +0 -106
  234. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationType.java +0 -103
  235. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/VerificationTypeFactory.java +0 -112
  236. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/StackMapFrameVisitor.java +0 -40
  237. data/lib/proguard4.7/src/proguard/classfile/attribute/preverification/visitor/VerificationTypeVisitor.java +0 -65
  238. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllAttributeVisitor.java +0 -117
  239. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllBootstrapMethodInfoVisitor.java +0 -55
  240. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllExceptionInfoVisitor.java +0 -55
  241. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AllInnerClassesInfoVisitor.java +0 -55
  242. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeNameFilter.java +0 -368
  243. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/AttributeVisitor.java +0 -90
  244. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/BootstrapMethodInfoVisitor.java +0 -40
  245. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/ExceptionInfoVisitor.java +0 -37
  246. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/InnerClassesInfoVisitor.java +0 -38
  247. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LineNumberInfoVisitor.java +0 -38
  248. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableInfoVisitor.java +0 -38
  249. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/LocalVariableTypeInfoVisitor.java +0 -38
  250. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/MultiAttributeVisitor.java +0 -365
  251. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/NonEmptyAttributeFilter.java +0 -293
  252. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/RequiredAttributeFilter.java +0 -360
  253. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/StackSizeComputer.java +0 -378
  254. data/lib/proguard4.7/src/proguard/classfile/attribute/visitor/package.html +0 -3
  255. data/lib/proguard4.7/src/proguard/classfile/constant/ClassConstant.java +0 -105
  256. data/lib/proguard4.7/src/proguard/classfile/constant/Constant.java +0 -68
  257. data/lib/proguard4.7/src/proguard/classfile/constant/DoubleConstant.java +0 -82
  258. data/lib/proguard4.7/src/proguard/classfile/constant/FieldrefConstant.java +0 -71
  259. data/lib/proguard4.7/src/proguard/classfile/constant/FloatConstant.java +0 -82
  260. data/lib/proguard4.7/src/proguard/classfile/constant/IntegerConstant.java +0 -82
  261. data/lib/proguard4.7/src/proguard/classfile/constant/InterfaceMethodrefConstant.java +0 -71
  262. data/lib/proguard4.7/src/proguard/classfile/constant/InvokeDynamicConstant.java +0 -148
  263. data/lib/proguard4.7/src/proguard/classfile/constant/LongConstant.java +0 -82
  264. data/lib/proguard4.7/src/proguard/classfile/constant/MethodHandleConstant.java +0 -124
  265. data/lib/proguard4.7/src/proguard/classfile/constant/MethodTypeConstant.java +0 -93
  266. data/lib/proguard4.7/src/proguard/classfile/constant/MethodrefConstant.java +0 -71
  267. data/lib/proguard4.7/src/proguard/classfile/constant/NameAndTypeConstant.java +0 -119
  268. data/lib/proguard4.7/src/proguard/classfile/constant/RefConstant.java +0 -130
  269. data/lib/proguard4.7/src/proguard/classfile/constant/StringConstant.java +0 -135
  270. data/lib/proguard4.7/src/proguard/classfile/constant/Utf8Constant.java +0 -285
  271. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/AllConstantVisitor.java +0 -53
  272. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/BootstrapMethodHandleTraveler.java +0 -100
  273. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantTagFilter.java +0 -86
  274. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ConstantVisitor.java +0 -49
  275. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/ExceptClassConstantFilter.java +0 -69
  276. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/MethodrefTraveler.java +0 -60
  277. data/lib/proguard4.7/src/proguard/classfile/constant/visitor/package.html +0 -3
  278. data/lib/proguard4.7/src/proguard/classfile/editor/AccessFixer.java +0 -180
  279. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationAdder.java +0 -153
  280. data/lib/proguard4.7/src/proguard/classfile/editor/AnnotationsAttributeEditor.java +0 -67
  281. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeAdder.java +0 -457
  282. data/lib/proguard4.7/src/proguard/classfile/editor/AttributeSorter.java +0 -89
  283. data/lib/proguard4.7/src/proguard/classfile/editor/AttributesEditor.java +0 -269
  284. data/lib/proguard4.7/src/proguard/classfile/editor/BridgeMethodFixer.java +0 -117
  285. data/lib/proguard4.7/src/proguard/classfile/editor/ClassEditor.java +0 -255
  286. data/lib/proguard4.7/src/proguard/classfile/editor/ClassElementSorter.java +0 -52
  287. data/lib/proguard4.7/src/proguard/classfile/editor/ClassMemberSorter.java +0 -69
  288. data/lib/proguard4.7/src/proguard/classfile/editor/ClassReferenceFixer.java +0 -546
  289. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeComposer.java +0 -843
  290. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditor.java +0 -1104
  291. data/lib/proguard4.7/src/proguard/classfile/editor/CodeAttributeEditorResetter.java +0 -60
  292. data/lib/proguard4.7/src/proguard/classfile/editor/ComparableConstant.java +0 -249
  293. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantAdder.java +0 -239
  294. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolEditor.java +0 -782
  295. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolRemapper.java +0 -662
  296. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolShrinker.java +0 -578
  297. data/lib/proguard4.7/src/proguard/classfile/editor/ConstantPoolSorter.java +0 -123
  298. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValueAdder.java +0 -217
  299. data/lib/proguard4.7/src/proguard/classfile/editor/ElementValuesEditor.java +0 -238
  300. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionAdder.java +0 -65
  301. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionInfoAdder.java +0 -67
  302. data/lib/proguard4.7/src/proguard/classfile/editor/ExceptionsAttributeEditor.java +0 -68
  303. data/lib/proguard4.7/src/proguard/classfile/editor/InnerClassesAccessFixer.java +0 -83
  304. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionAdder.java +0 -76
  305. data/lib/proguard4.7/src/proguard/classfile/editor/InstructionWriter.java +0 -278
  306. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceAdder.java +0 -62
  307. data/lib/proguard4.7/src/proguard/classfile/editor/InterfaceSorter.java +0 -152
  308. data/lib/proguard4.7/src/proguard/classfile/editor/InterfacesEditor.java +0 -122
  309. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberInfoAdder.java +0 -59
  310. data/lib/proguard4.7/src/proguard/classfile/editor/LineNumberTableAttributeEditor.java +0 -67
  311. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableInfoAdder.java +0 -67
  312. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTableAttributeEditor.java +0 -67
  313. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeInfoAdder.java +0 -68
  314. data/lib/proguard4.7/src/proguard/classfile/editor/LocalVariableTypeTableAttributeEditor.java +0 -68
  315. data/lib/proguard4.7/src/proguard/classfile/editor/MemberAdder.java +0 -288
  316. data/lib/proguard4.7/src/proguard/classfile/editor/MemberReferenceFixer.java +0 -447
  317. data/lib/proguard4.7/src/proguard/classfile/editor/MethodInvocationFixer.java +0 -243
  318. data/lib/proguard4.7/src/proguard/classfile/editor/NameAndTypeShrinker.java +0 -188
  319. data/lib/proguard4.7/src/proguard/classfile/editor/NamedAttributeDeleter.java +0 -54
  320. data/lib/proguard4.7/src/proguard/classfile/editor/ParameterAnnotationsAttributeEditor.java +0 -71
  321. data/lib/proguard4.7/src/proguard/classfile/editor/StackSizeUpdater.java +0 -54
  322. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassAdder.java +0 -59
  323. data/lib/proguard4.7/src/proguard/classfile/editor/SubclassToAdder.java +0 -60
  324. data/lib/proguard4.7/src/proguard/classfile/editor/Utf8Shrinker.java +0 -455
  325. data/lib/proguard4.7/src/proguard/classfile/editor/VariableCleaner.java +0 -267
  326. data/lib/proguard4.7/src/proguard/classfile/editor/VariableEditor.java +0 -130
  327. data/lib/proguard4.7/src/proguard/classfile/editor/VariableRemapper.java +0 -156
  328. data/lib/proguard4.7/src/proguard/classfile/editor/VariableSizeUpdater.java +0 -105
  329. data/lib/proguard4.7/src/proguard/classfile/editor/package.html +0 -3
  330. data/lib/proguard4.7/src/proguard/classfile/instruction/BranchInstruction.java +0 -180
  331. data/lib/proguard4.7/src/proguard/classfile/instruction/ConstantInstruction.java +0 -309
  332. data/lib/proguard4.7/src/proguard/classfile/instruction/Instruction.java +0 -920
  333. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionConstants.java +0 -449
  334. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionFactory.java +0 -300
  335. data/lib/proguard4.7/src/proguard/classfile/instruction/InstructionUtil.java +0 -67
  336. data/lib/proguard4.7/src/proguard/classfile/instruction/LookUpSwitchInstruction.java +0 -135
  337. data/lib/proguard4.7/src/proguard/classfile/instruction/SimpleInstruction.java +0 -255
  338. data/lib/proguard4.7/src/proguard/classfile/instruction/SwitchInstruction.java +0 -83
  339. data/lib/proguard4.7/src/proguard/classfile/instruction/TableSwitchInstruction.java +0 -139
  340. data/lib/proguard4.7/src/proguard/classfile/instruction/VariableInstruction.java +0 -372
  341. data/lib/proguard4.7/src/proguard/classfile/instruction/package.html +0 -9
  342. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/AllInstructionVisitor.java +0 -56
  343. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionCounter.java +0 -59
  344. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/InstructionVisitor.java +0 -42
  345. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/MultiInstructionVisitor.java +0 -131
  346. data/lib/proguard4.7/src/proguard/classfile/instruction/visitor/package.html +0 -3
  347. data/lib/proguard4.7/src/proguard/classfile/io/LibraryClassReader.java +0 -383
  348. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassReader.java +0 -919
  349. data/lib/proguard4.7/src/proguard/classfile/io/ProgramClassWriter.java +0 -735
  350. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataInput.java +0 -223
  351. data/lib/proguard4.7/src/proguard/classfile/io/RuntimeDataOutput.java +0 -224
  352. data/lib/proguard4.7/src/proguard/classfile/io/package.html +0 -3
  353. data/lib/proguard4.7/src/proguard/classfile/package.html +0 -15
  354. data/lib/proguard4.7/src/proguard/classfile/util/AccessUtil.java +0 -105
  355. data/lib/proguard4.7/src/proguard/classfile/util/ClassReferenceInitializer.java +0 -559
  356. data/lib/proguard4.7/src/proguard/classfile/util/ClassSubHierarchyInitializer.java +0 -77
  357. data/lib/proguard4.7/src/proguard/classfile/util/ClassSuperHierarchyInitializer.java +0 -163
  358. data/lib/proguard4.7/src/proguard/classfile/util/ClassUtil.java +0 -1227
  359. data/lib/proguard4.7/src/proguard/classfile/util/DescriptorClassEnumeration.java +0 -236
  360. data/lib/proguard4.7/src/proguard/classfile/util/DynamicClassReferenceInitializer.java +0 -485
  361. data/lib/proguard4.7/src/proguard/classfile/util/DynamicMemberReferenceInitializer.java +0 -944
  362. data/lib/proguard4.7/src/proguard/classfile/util/ExternalTypeEnumeration.java +0 -106
  363. data/lib/proguard4.7/src/proguard/classfile/util/InstructionSequenceMatcher.java +0 -754
  364. data/lib/proguard4.7/src/proguard/classfile/util/InternalTypeEnumeration.java +0 -204
  365. data/lib/proguard4.7/src/proguard/classfile/util/MemberFinder.java +0 -197
  366. data/lib/proguard4.7/src/proguard/classfile/util/MethodLinker.java +0 -160
  367. data/lib/proguard4.7/src/proguard/classfile/util/SimplifiedVisitor.java +0 -834
  368. data/lib/proguard4.7/src/proguard/classfile/util/StringReferenceInitializer.java +0 -90
  369. data/lib/proguard4.7/src/proguard/classfile/util/StringSharer.java +0 -172
  370. data/lib/proguard4.7/src/proguard/classfile/util/WarningPrinter.java +0 -136
  371. data/lib/proguard4.7/src/proguard/classfile/util/package.html +0 -3
  372. data/lib/proguard4.7/src/proguard/classfile/visitor/AllClassVisitor.java +0 -47
  373. data/lib/proguard4.7/src/proguard/classfile/visitor/AllFieldVisitor.java +0 -55
  374. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMemberVisitor.java +0 -57
  375. data/lib/proguard4.7/src/proguard/classfile/visitor/AllMethodVisitor.java +0 -55
  376. data/lib/proguard4.7/src/proguard/classfile/visitor/BottomClassFilter.java +0 -69
  377. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassAccessFilter.java +0 -88
  378. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCleaner.java +0 -275
  379. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCollector.java +0 -58
  380. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassCounter.java +0 -56
  381. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassHierarchyTraveler.java +0 -91
  382. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassNameFilter.java +0 -112
  383. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolFiller.java +0 -55
  384. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPoolVisitor.java +0 -37
  385. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPresenceFilter.java +0 -93
  386. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassPrinter.java +0 -1011
  387. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionFilter.java +0 -85
  388. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVersionSetter.java +0 -83
  389. data/lib/proguard4.7/src/proguard/classfile/visitor/ClassVisitor.java +0 -36
  390. data/lib/proguard4.7/src/proguard/classfile/visitor/ConcreteClassDownTraveler.java +0 -100
  391. data/lib/proguard4.7/src/proguard/classfile/visitor/DotClassClassVisitor.java +0 -89
  392. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassFilter.java +0 -69
  393. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptClassesFilter.java +0 -90
  394. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionCounter.java +0 -52
  395. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionExcludedOffsetFilter.java +0 -64
  396. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerConstantVisitor.java +0 -62
  397. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionHandlerFilter.java +0 -70
  398. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionOffsetFilter.java +0 -64
  399. data/lib/proguard4.7/src/proguard/classfile/visitor/ExceptionRangeFilter.java +0 -68
  400. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassConstantFilter.java +0 -69
  401. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementedClassFilter.java +0 -71
  402. data/lib/proguard4.7/src/proguard/classfile/visitor/ImplementingClassConstantFilter.java +0 -70
  403. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryClassFilter.java +0 -60
  404. data/lib/proguard4.7/src/proguard/classfile/visitor/LibraryMemberFilter.java +0 -73
  405. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberAccessFilter.java +0 -122
  406. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberClassAccessFilter.java +0 -106
  407. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCollector.java +0 -59
  408. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberCounter.java +0 -72
  409. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberDescriptorFilter.java +0 -113
  410. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberNameFilter.java +0 -113
  411. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberToClassVisitor.java +0 -90
  412. data/lib/proguard4.7/src/proguard/classfile/visitor/MemberVisitor.java +0 -40
  413. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationFilter.java +0 -70
  414. data/lib/proguard4.7/src/proguard/classfile/visitor/MethodImplementationTraveler.java +0 -128
  415. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassPoolVisitor.java +0 -88
  416. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiClassVisitor.java +0 -97
  417. data/lib/proguard4.7/src/proguard/classfile/visitor/MultiMemberVisitor.java +0 -113
  418. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedClassVisitor.java +0 -49
  419. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedFieldVisitor.java +0 -61
  420. data/lib/proguard4.7/src/proguard/classfile/visitor/NamedMethodVisitor.java +0 -61
  421. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramClassFilter.java +0 -60
  422. data/lib/proguard4.7/src/proguard/classfile/visitor/ProgramMemberFilter.java +0 -73
  423. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedClassVisitor.java +0 -255
  424. data/lib/proguard4.7/src/proguard/classfile/visitor/ReferencedMemberVisitor.java +0 -73
  425. data/lib/proguard4.7/src/proguard/classfile/visitor/SimilarMemberVisitor.java +0 -125
  426. data/lib/proguard4.7/src/proguard/classfile/visitor/SimpleClassPrinter.java +0 -167
  427. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassFilter.java +0 -91
  428. data/lib/proguard4.7/src/proguard/classfile/visitor/SubclassTraveler.java +0 -60
  429. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableClassVisitor.java +0 -78
  430. data/lib/proguard4.7/src/proguard/classfile/visitor/VariableMemberVisitor.java +0 -96
  431. data/lib/proguard4.7/src/proguard/classfile/visitor/package.html +0 -40
  432. data/lib/proguard4.7/src/proguard/evaluation/BasicBranchUnit.java +0 -126
  433. data/lib/proguard4.7/src/proguard/evaluation/BasicInvocationUnit.java +0 -425
  434. data/lib/proguard4.7/src/proguard/evaluation/BranchUnit.java +0 -63
  435. data/lib/proguard4.7/src/proguard/evaluation/ClassConstantValueFactory.java +0 -53
  436. data/lib/proguard4.7/src/proguard/evaluation/ConstantValueFactory.java +0 -113
  437. data/lib/proguard4.7/src/proguard/evaluation/InvocationUnit.java +0 -62
  438. data/lib/proguard4.7/src/proguard/evaluation/Processor.java +0 -908
  439. data/lib/proguard4.7/src/proguard/evaluation/Stack.java +0 -560
  440. data/lib/proguard4.7/src/proguard/evaluation/TracedStack.java +0 -342
  441. data/lib/proguard4.7/src/proguard/evaluation/TracedVariables.java +0 -199
  442. data/lib/proguard4.7/src/proguard/evaluation/Variables.java +0 -347
  443. data/lib/proguard4.7/src/proguard/evaluation/value/Category1Value.java +0 -41
  444. data/lib/proguard4.7/src/proguard/evaluation/value/Category2Value.java +0 -41
  445. data/lib/proguard4.7/src/proguard/evaluation/value/ComparisonValue.java +0 -69
  446. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeDoubleValue.java +0 -81
  447. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeFloatValue.java +0 -81
  448. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeIntegerValue.java +0 -87
  449. data/lib/proguard4.7/src/proguard/evaluation/value/CompositeLongValue.java +0 -87
  450. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedByteValue.java +0 -64
  451. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedCharacterValue.java +0 -64
  452. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedDoubleValue.java +0 -64
  453. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedFloatValue.java +0 -64
  454. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedIntegerValue.java +0 -64
  455. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedLongValue.java +0 -64
  456. data/lib/proguard4.7/src/proguard/evaluation/value/ConvertedShortValue.java +0 -64
  457. data/lib/proguard4.7/src/proguard/evaluation/value/DoubleValue.java +0 -359
  458. data/lib/proguard4.7/src/proguard/evaluation/value/FloatValue.java +0 -359
  459. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedDoubleValue.java +0 -67
  460. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedFloatValue.java +0 -67
  461. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedIntegerValue.java +0 -67
  462. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedLongValue.java +0 -67
  463. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedReferenceValue.java +0 -102
  464. data/lib/proguard4.7/src/proguard/evaluation/value/IdentifiedValueFactory.java +0 -75
  465. data/lib/proguard4.7/src/proguard/evaluation/value/InstructionOffsetValue.java +0 -307
  466. data/lib/proguard4.7/src/proguard/evaluation/value/IntegerValue.java +0 -1002
  467. data/lib/proguard4.7/src/proguard/evaluation/value/LongValue.java +0 -554
  468. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedDoubleValue.java +0 -71
  469. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedFloatValue.java +0 -71
  470. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedIntegerValue.java +0 -71
  471. data/lib/proguard4.7/src/proguard/evaluation/value/NegatedLongValue.java +0 -71
  472. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularDoubleValue.java +0 -216
  473. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularFloatValue.java +0 -216
  474. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularIntegerValue.java +0 -383
  475. data/lib/proguard4.7/src/proguard/evaluation/value/ParticularLongValue.java +0 -271
  476. data/lib/proguard4.7/src/proguard/evaluation/value/ReferenceValue.java +0 -540
  477. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificDoubleValue.java +0 -186
  478. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificFloatValue.java +0 -186
  479. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificIntegerValue.java +0 -354
  480. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificLongValue.java +0 -259
  481. data/lib/proguard4.7/src/proguard/evaluation/value/SpecificValueFactory.java +0 -97
  482. data/lib/proguard4.7/src/proguard/evaluation/value/TopValue.java +0 -79
  483. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownDoubleValue.java +0 -125
  484. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownFloatValue.java +0 -125
  485. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownIntegerValue.java +0 -216
  486. data/lib/proguard4.7/src/proguard/evaluation/value/UnknownLongValue.java +0 -160
  487. data/lib/proguard4.7/src/proguard/evaluation/value/Value.java +0 -169
  488. data/lib/proguard4.7/src/proguard/evaluation/value/ValueFactory.java +0 -193
  489. data/lib/proguard4.7/src/proguard/evaluation/value/package.html +0 -3
  490. data/lib/proguard4.7/src/proguard/gui/ClassPathPanel.java +0 -441
  491. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationDialog.java +0 -546
  492. data/lib/proguard4.7/src/proguard/gui/ClassSpecificationsPanel.java +0 -231
  493. data/lib/proguard4.7/src/proguard/gui/ExtensionFileFilter.java +0 -78
  494. data/lib/proguard4.7/src/proguard/gui/FilterBuilder.java +0 -208
  495. data/lib/proguard4.7/src/proguard/gui/FilterDialog.java +0 -320
  496. data/lib/proguard4.7/src/proguard/gui/GUIResources.java +0 -56
  497. data/lib/proguard4.7/src/proguard/gui/GUIResources.properties +0 -643
  498. data/lib/proguard4.7/src/proguard/gui/KeepSpecificationsPanel.java +0 -81
  499. data/lib/proguard4.7/src/proguard/gui/ListPanel.java +0 -341
  500. data/lib/proguard4.7/src/proguard/gui/MANIFEST.MF +0 -3
  501. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationDialog.java +0 -509
  502. data/lib/proguard4.7/src/proguard/gui/MemberSpecificationsPanel.java +0 -304
  503. data/lib/proguard4.7/src/proguard/gui/MessageDialogRunnable.java +0 -90
  504. data/lib/proguard4.7/src/proguard/gui/OptimizationsDialog.java +0 -251
  505. data/lib/proguard4.7/src/proguard/gui/ProGuardGUI.java +0 -1777
  506. data/lib/proguard4.7/src/proguard/gui/ProGuardRunnable.java +0 -154
  507. data/lib/proguard4.7/src/proguard/gui/ReTraceRunnable.java +0 -149
  508. data/lib/proguard4.7/src/proguard/gui/SwingUtil.java +0 -82
  509. data/lib/proguard4.7/src/proguard/gui/TabbedPane.java +0 -229
  510. data/lib/proguard4.7/src/proguard/gui/TextAreaOutputStream.java +0 -81
  511. data/lib/proguard4.7/src/proguard/gui/arrow.gif +0 -0
  512. data/lib/proguard4.7/src/proguard/gui/boilerplate.pro +0 -410
  513. data/lib/proguard4.7/src/proguard/gui/default.pro +0 -318
  514. data/lib/proguard4.7/src/proguard/gui/package.html +0 -3
  515. data/lib/proguard4.7/src/proguard/gui/splash/BufferedSprite.java +0 -145
  516. data/lib/proguard4.7/src/proguard/gui/splash/CircleSprite.java +0 -74
  517. data/lib/proguard4.7/src/proguard/gui/splash/ClipSprite.java +0 -85
  518. data/lib/proguard4.7/src/proguard/gui/splash/ColorSprite.java +0 -65
  519. data/lib/proguard4.7/src/proguard/gui/splash/CompositeSprite.java +0 -56
  520. data/lib/proguard4.7/src/proguard/gui/splash/ConstantColor.java +0 -51
  521. data/lib/proguard4.7/src/proguard/gui/splash/ConstantDouble.java +0 -49
  522. data/lib/proguard4.7/src/proguard/gui/splash/ConstantFont.java +0 -46
  523. data/lib/proguard4.7/src/proguard/gui/splash/ConstantInt.java +0 -49
  524. data/lib/proguard4.7/src/proguard/gui/splash/ConstantString.java +0 -49
  525. data/lib/proguard4.7/src/proguard/gui/splash/ConstantTiming.java +0 -57
  526. data/lib/proguard4.7/src/proguard/gui/splash/FontSprite.java +0 -65
  527. data/lib/proguard4.7/src/proguard/gui/splash/ImageSprite.java +0 -76
  528. data/lib/proguard4.7/src/proguard/gui/splash/LinearColor.java +0 -72
  529. data/lib/proguard4.7/src/proguard/gui/splash/LinearDouble.java +0 -55
  530. data/lib/proguard4.7/src/proguard/gui/splash/LinearInt.java +0 -55
  531. data/lib/proguard4.7/src/proguard/gui/splash/LinearTiming.java +0 -55
  532. data/lib/proguard4.7/src/proguard/gui/splash/OverrideGraphics2D.java +0 -598
  533. data/lib/proguard4.7/src/proguard/gui/splash/RectangleSprite.java +0 -114
  534. data/lib/proguard4.7/src/proguard/gui/splash/SawToothTiming.java +0 -53
  535. data/lib/proguard4.7/src/proguard/gui/splash/ShadowedSprite.java +0 -109
  536. data/lib/proguard4.7/src/proguard/gui/splash/SineTiming.java +0 -53
  537. data/lib/proguard4.7/src/proguard/gui/splash/SmoothTiming.java +0 -66
  538. data/lib/proguard4.7/src/proguard/gui/splash/SplashPanel.java +0 -235
  539. data/lib/proguard4.7/src/proguard/gui/splash/Sprite.java +0 -41
  540. data/lib/proguard4.7/src/proguard/gui/splash/TextSprite.java +0 -89
  541. data/lib/proguard4.7/src/proguard/gui/splash/TimeSwitchSprite.java +0 -75
  542. data/lib/proguard4.7/src/proguard/gui/splash/Timing.java +0 -34
  543. data/lib/proguard4.7/src/proguard/gui/splash/TypeWriterString.java +0 -71
  544. data/lib/proguard4.7/src/proguard/gui/splash/VariableColor.java +0 -36
  545. data/lib/proguard4.7/src/proguard/gui/splash/VariableDouble.java +0 -34
  546. data/lib/proguard4.7/src/proguard/gui/splash/VariableFont.java +0 -36
  547. data/lib/proguard4.7/src/proguard/gui/splash/VariableInt.java +0 -34
  548. data/lib/proguard4.7/src/proguard/gui/splash/VariableSizeFont.java +0 -65
  549. data/lib/proguard4.7/src/proguard/gui/splash/VariableString.java +0 -34
  550. data/lib/proguard4.7/src/proguard/gui/splash/package.html +0 -4
  551. data/lib/proguard4.7/src/proguard/gui/vtitle.png +0 -0
  552. data/lib/proguard4.7/src/proguard/io/CascadingDataEntryWriter.java +0 -94
  553. data/lib/proguard4.7/src/proguard/io/ClassFilter.java +0 -59
  554. data/lib/proguard4.7/src/proguard/io/ClassReader.java +0 -115
  555. data/lib/proguard4.7/src/proguard/io/ClassRewriter.java +0 -80
  556. data/lib/proguard4.7/src/proguard/io/DataEntry.java +0 -62
  557. data/lib/proguard4.7/src/proguard/io/DataEntryClassWriter.java +0 -85
  558. data/lib/proguard4.7/src/proguard/io/DataEntryCopier.java +0 -247
  559. data/lib/proguard4.7/src/proguard/io/DataEntryDirectoryFilter.java +0 -40
  560. data/lib/proguard4.7/src/proguard/io/DataEntryFilter.java +0 -38
  561. data/lib/proguard4.7/src/proguard/io/DataEntryNameFilter.java +0 -54
  562. data/lib/proguard4.7/src/proguard/io/DataEntryObfuscator.java +0 -150
  563. data/lib/proguard4.7/src/proguard/io/DataEntryParentFilter.java +0 -51
  564. data/lib/proguard4.7/src/proguard/io/DataEntryPump.java +0 -43
  565. data/lib/proguard4.7/src/proguard/io/DataEntryReader.java +0 -38
  566. data/lib/proguard4.7/src/proguard/io/DataEntryRenamer.java +0 -104
  567. data/lib/proguard4.7/src/proguard/io/DataEntryRewriter.java +0 -148
  568. data/lib/proguard4.7/src/proguard/io/DataEntryWriter.java +0 -73
  569. data/lib/proguard4.7/src/proguard/io/DirectoryFilter.java +0 -58
  570. data/lib/proguard4.7/src/proguard/io/DirectoryPump.java +0 -78
  571. data/lib/proguard4.7/src/proguard/io/DirectoryWriter.java +0 -165
  572. data/lib/proguard4.7/src/proguard/io/FileDataEntry.java +0 -96
  573. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryReader.java +0 -90
  574. data/lib/proguard4.7/src/proguard/io/FilteredDataEntryWriter.java +0 -125
  575. data/lib/proguard4.7/src/proguard/io/Finisher.java +0 -37
  576. data/lib/proguard4.7/src/proguard/io/JarReader.java +0 -75
  577. data/lib/proguard4.7/src/proguard/io/JarWriter.java +0 -235
  578. data/lib/proguard4.7/src/proguard/io/ManifestRewriter.java +0 -216
  579. data/lib/proguard4.7/src/proguard/io/NameFilter.java +0 -83
  580. data/lib/proguard4.7/src/proguard/io/ParentDataEntryWriter.java +0 -75
  581. data/lib/proguard4.7/src/proguard/io/RenamedDataEntry.java +0 -83
  582. data/lib/proguard4.7/src/proguard/io/ZipDataEntry.java +0 -98
  583. data/lib/proguard4.7/src/proguard/io/package.html +0 -4
  584. data/lib/proguard4.7/src/proguard/obfuscate/AttributeShrinker.java +0 -120
  585. data/lib/proguard4.7/src/proguard/obfuscate/AttributeUsageMarker.java +0 -71
  586. data/lib/proguard4.7/src/proguard/obfuscate/ClassObfuscator.java +0 -533
  587. data/lib/proguard4.7/src/proguard/obfuscate/ClassRenamer.java +0 -109
  588. data/lib/proguard4.7/src/proguard/obfuscate/DictionaryNameFactory.java +0 -189
  589. data/lib/proguard4.7/src/proguard/obfuscate/MapCleaner.java +0 -57
  590. data/lib/proguard4.7/src/proguard/obfuscate/MappingKeeper.java +0 -177
  591. data/lib/proguard4.7/src/proguard/obfuscate/MappingPrinter.java +0 -147
  592. data/lib/proguard4.7/src/proguard/obfuscate/MappingProcessor.java +0 -79
  593. data/lib/proguard4.7/src/proguard/obfuscate/MappingReader.java +0 -199
  594. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCleaner.java +0 -60
  595. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameCollector.java +0 -106
  596. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameConflictFixer.java +0 -159
  597. data/lib/proguard4.7/src/proguard/obfuscate/MemberNameFilter.java +0 -120
  598. data/lib/proguard4.7/src/proguard/obfuscate/MemberObfuscator.java +0 -230
  599. data/lib/proguard4.7/src/proguard/obfuscate/MemberSpecialNameFilter.java +0 -101
  600. data/lib/proguard4.7/src/proguard/obfuscate/MultiMappingProcessor.java +0 -96
  601. data/lib/proguard4.7/src/proguard/obfuscate/NameFactory.java +0 -34
  602. data/lib/proguard4.7/src/proguard/obfuscate/NameFactoryResetter.java +0 -59
  603. data/lib/proguard4.7/src/proguard/obfuscate/NameMarker.java +0 -166
  604. data/lib/proguard4.7/src/proguard/obfuscate/NumericNameFactory.java +0 -49
  605. data/lib/proguard4.7/src/proguard/obfuscate/Obfuscator.java +0 -445
  606. data/lib/proguard4.7/src/proguard/obfuscate/ParameterNameMarker.java +0 -128
  607. data/lib/proguard4.7/src/proguard/obfuscate/SimpleNameFactory.java +0 -156
  608. data/lib/proguard4.7/src/proguard/obfuscate/SourceFileRenamer.java +0 -84
  609. data/lib/proguard4.7/src/proguard/obfuscate/SpecialNameFactory.java +0 -83
  610. data/lib/proguard4.7/src/proguard/obfuscate/package.html +0 -3
  611. data/lib/proguard4.7/src/proguard/optimize/BootstrapMethodArgumentShrinker.java +0 -103
  612. data/lib/proguard4.7/src/proguard/optimize/ChangedCodePrinter.java +0 -297
  613. data/lib/proguard4.7/src/proguard/optimize/ConstantMemberFilter.java +0 -77
  614. data/lib/proguard4.7/src/proguard/optimize/ConstantParameterFilter.java +0 -79
  615. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerFixer.java +0 -215
  616. data/lib/proguard4.7/src/proguard/optimize/DuplicateInitializerInvocationFixer.java +0 -161
  617. data/lib/proguard4.7/src/proguard/optimize/KeepMarker.java +0 -95
  618. data/lib/proguard4.7/src/proguard/optimize/KeptClassFilter.java +0 -69
  619. data/lib/proguard4.7/src/proguard/optimize/KeptMemberFilter.java +0 -88
  620. data/lib/proguard4.7/src/proguard/optimize/MemberDescriptorSpecializer.java +0 -138
  621. data/lib/proguard4.7/src/proguard/optimize/MethodDescriptorShrinker.java +0 -317
  622. data/lib/proguard4.7/src/proguard/optimize/MethodStaticizer.java +0 -87
  623. data/lib/proguard4.7/src/proguard/optimize/OptimizationInfoMemberFilter.java +0 -94
  624. data/lib/proguard4.7/src/proguard/optimize/Optimizer.java +0 -963
  625. data/lib/proguard4.7/src/proguard/optimize/ParameterShrinker.java +0 -146
  626. data/lib/proguard4.7/src/proguard/optimize/TailRecursionSimplifier.java +0 -356
  627. data/lib/proguard4.7/src/proguard/optimize/WriteOnlyFieldFilter.java +0 -65
  628. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationShrinker.java +0 -2082
  629. data/lib/proguard4.7/src/proguard/optimize/evaluation/EvaluationSimplifier.java +0 -973
  630. data/lib/proguard4.7/src/proguard/optimize/evaluation/LivenessAnalyzer.java +0 -526
  631. data/lib/proguard4.7/src/proguard/optimize/evaluation/LoadingInvocationUnit.java +0 -195
  632. data/lib/proguard4.7/src/proguard/optimize/evaluation/PartialEvaluator.java +0 -1282
  633. data/lib/proguard4.7/src/proguard/optimize/evaluation/StoringInvocationUnit.java +0 -207
  634. data/lib/proguard4.7/src/proguard/optimize/evaluation/TracedBranchUnit.java +0 -59
  635. data/lib/proguard4.7/src/proguard/optimize/evaluation/VariableOptimizer.java +0 -345
  636. data/lib/proguard4.7/src/proguard/optimize/evaluation/package.html +0 -4
  637. data/lib/proguard4.7/src/proguard/optimize/info/AccessMethodMarker.java +0 -202
  638. data/lib/proguard4.7/src/proguard/optimize/info/BackwardBranchMarker.java +0 -90
  639. data/lib/proguard4.7/src/proguard/optimize/info/CatchExceptionMarker.java +0 -69
  640. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassFilter.java +0 -63
  641. data/lib/proguard4.7/src/proguard/optimize/info/CaughtClassMarker.java +0 -64
  642. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfo.java +0 -165
  643. data/lib/proguard4.7/src/proguard/optimize/info/ClassOptimizationInfoSetter.java +0 -47
  644. data/lib/proguard4.7/src/proguard/optimize/info/DotClassFilter.java +0 -63
  645. data/lib/proguard4.7/src/proguard/optimize/info/DotClassMarker.java +0 -96
  646. data/lib/proguard4.7/src/proguard/optimize/info/ExceptionInstructionChecker.java +0 -193
  647. data/lib/proguard4.7/src/proguard/optimize/info/FieldOptimizationInfo.java +0 -204
  648. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassFilter.java +0 -63
  649. data/lib/proguard4.7/src/proguard/optimize/info/InstanceofClassMarker.java +0 -93
  650. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassFilter.java +0 -62
  651. data/lib/proguard4.7/src/proguard/optimize/info/InstantiationClassMarker.java +0 -93
  652. data/lib/proguard4.7/src/proguard/optimize/info/MemberOptimizationInfoSetter.java +0 -59
  653. data/lib/proguard4.7/src/proguard/optimize/info/MethodInvocationMarker.java +0 -107
  654. data/lib/proguard4.7/src/proguard/optimize/info/MethodOptimizationInfo.java +0 -302
  655. data/lib/proguard4.7/src/proguard/optimize/info/NoSideEffectMethodMarker.java +0 -91
  656. data/lib/proguard4.7/src/proguard/optimize/info/NonPrivateMemberMarker.java +0 -171
  657. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberContainingClassMarker.java +0 -85
  658. data/lib/proguard4.7/src/proguard/optimize/info/PackageVisibleMemberInvokingClassMarker.java +0 -129
  659. data/lib/proguard4.7/src/proguard/optimize/info/ParameterUsageMarker.java +0 -285
  660. data/lib/proguard4.7/src/proguard/optimize/info/ReadWriteFieldMarker.java +0 -163
  661. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectInstructionChecker.java +0 -245
  662. data/lib/proguard4.7/src/proguard/optimize/info/SideEffectMethodMarker.java +0 -175
  663. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassFilter.java +0 -62
  664. data/lib/proguard4.7/src/proguard/optimize/info/StaticInitializerContainingClassMarker.java +0 -65
  665. data/lib/proguard4.7/src/proguard/optimize/info/SuperInvocationMarker.java +0 -93
  666. data/lib/proguard4.7/src/proguard/optimize/info/VariableUsageMarker.java +0 -96
  667. data/lib/proguard4.7/src/proguard/optimize/info/package.html +0 -4
  668. data/lib/proguard4.7/src/proguard/optimize/package.html +0 -4
  669. data/lib/proguard4.7/src/proguard/optimize/peephole/BranchTargetFinder.java +0 -687
  670. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassFinalizer.java +0 -84
  671. data/lib/proguard4.7/src/proguard/optimize/peephole/ClassMerger.java +0 -576
  672. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoCommonCodeReplacer.java +0 -266
  673. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoGotoReplacer.java +0 -115
  674. data/lib/proguard4.7/src/proguard/optimize/peephole/GotoReturnReplacer.java +0 -115
  675. data/lib/proguard4.7/src/proguard/optimize/peephole/HorizontalClassMerger.java +0 -90
  676. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceConstants.java +0 -4424
  677. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequenceReplacer.java +0 -420
  678. data/lib/proguard4.7/src/proguard/optimize/peephole/InstructionSequencesReplacer.java +0 -138
  679. data/lib/proguard4.7/src/proguard/optimize/peephole/MemberPrivatizer.java +0 -103
  680. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodFinalizer.java +0 -93
  681. data/lib/proguard4.7/src/proguard/optimize/peephole/MethodInliner.java +0 -597
  682. data/lib/proguard4.7/src/proguard/optimize/peephole/NopRemover.java +0 -89
  683. data/lib/proguard4.7/src/proguard/optimize/peephole/PeepholeOptimizer.java +0 -103
  684. data/lib/proguard4.7/src/proguard/optimize/peephole/ReachableCodeMarker.java +0 -262
  685. data/lib/proguard4.7/src/proguard/optimize/peephole/RetargetedInnerClassAttributeRemover.java +0 -170
  686. data/lib/proguard4.7/src/proguard/optimize/peephole/TargetClassChanger.java +0 -455
  687. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableCodeRemover.java +0 -143
  688. data/lib/proguard4.7/src/proguard/optimize/peephole/UnreachableExceptionRemover.java +0 -163
  689. data/lib/proguard4.7/src/proguard/optimize/peephole/VariableShrinker.java +0 -129
  690. data/lib/proguard4.7/src/proguard/optimize/peephole/VerticalClassMerger.java +0 -88
  691. data/lib/proguard4.7/src/proguard/optimize/peephole/package.html +0 -3
  692. data/lib/proguard4.7/src/proguard/package.html +0 -5
  693. data/lib/proguard4.7/src/proguard/preverify/CodePreverifier.java +0 -611
  694. data/lib/proguard4.7/src/proguard/preverify/CodeSubroutineInliner.java +0 -406
  695. data/lib/proguard4.7/src/proguard/preverify/Preverifier.java +0 -73
  696. data/lib/proguard4.7/src/proguard/preverify/SubroutineInliner.java +0 -73
  697. data/lib/proguard4.7/src/proguard/retrace/MANIFEST.MF +0 -3
  698. data/lib/proguard4.7/src/proguard/retrace/ReTrace.java +0 -749
  699. data/lib/proguard4.7/src/proguard/retrace/package.html +0 -4
  700. data/lib/proguard4.7/src/proguard/shrink/AnnotationUsageMarker.java +0 -333
  701. data/lib/proguard4.7/src/proguard/shrink/ClassShrinker.java +0 -458
  702. data/lib/proguard4.7/src/proguard/shrink/InnerUsageMarker.java +0 -174
  703. data/lib/proguard4.7/src/proguard/shrink/InterfaceUsageMarker.java +0 -152
  704. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMark.java +0 -183
  705. data/lib/proguard4.7/src/proguard/shrink/ShortestUsageMarker.java +0 -277
  706. data/lib/proguard4.7/src/proguard/shrink/ShortestUsagePrinter.java +0 -210
  707. data/lib/proguard4.7/src/proguard/shrink/Shrinker.java +0 -181
  708. data/lib/proguard4.7/src/proguard/shrink/UsageMarker.java +0 -1036
  709. data/lib/proguard4.7/src/proguard/shrink/UsagePrinter.java +0 -177
  710. data/lib/proguard4.7/src/proguard/shrink/UsedClassFilter.java +0 -74
  711. data/lib/proguard4.7/src/proguard/shrink/UsedMemberFilter.java +0 -93
  712. data/lib/proguard4.7/src/proguard/shrink/package.html +0 -3
  713. data/lib/proguard4.7/src/proguard/util/AndMatcher.java +0 -49
  714. data/lib/proguard4.7/src/proguard/util/ClassNameParser.java +0 -216
  715. data/lib/proguard4.7/src/proguard/util/ConstantMatcher.java +0 -48
  716. data/lib/proguard4.7/src/proguard/util/EmptyStringMatcher.java +0 -36
  717. data/lib/proguard4.7/src/proguard/util/ExtensionMatcher.java +0 -63
  718. data/lib/proguard4.7/src/proguard/util/FileNameParser.java +0 -121
  719. data/lib/proguard4.7/src/proguard/util/FixedStringMatcher.java +0 -56
  720. data/lib/proguard4.7/src/proguard/util/ListMatcher.java +0 -69
  721. data/lib/proguard4.7/src/proguard/util/ListParser.java +0 -137
  722. data/lib/proguard4.7/src/proguard/util/ListUtil.java +0 -180
  723. data/lib/proguard4.7/src/proguard/util/NameParser.java +0 -106
  724. data/lib/proguard4.7/src/proguard/util/NotMatcher.java +0 -46
  725. data/lib/proguard4.7/src/proguard/util/OrMatcher.java +0 -49
  726. data/lib/proguard4.7/src/proguard/util/SettableMatcher.java +0 -46
  727. data/lib/proguard4.7/src/proguard/util/StringMatcher.java +0 -38
  728. data/lib/proguard4.7/src/proguard/util/StringParser.java +0 -35
  729. data/lib/proguard4.7/src/proguard/util/VariableStringMatcher.java +0 -126
  730. data/lib/proguard4.7/src/proguard/util/package.html +0 -3
  731. data/lib/proguard4.7/src/proguard/wtk/ProGuardObfuscator.java +0 -141
  732. data/lib/proguard4.7/src/proguard/wtk/default.pro +0 -114
  733. data/lib/proguard4.7/src/proguard/wtk/package.html +0 -3
@@ -1,90 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.optimize.peephole;
22
-
23
- import proguard.classfile.*;
24
- import proguard.classfile.util.SimplifiedVisitor;
25
- import proguard.classfile.visitor.*;
26
-
27
- /**
28
- * This ClassVisitor inlines siblings in the program classes that it visits,
29
- * whenever possible.
30
- *
31
- * @see ClassMerger
32
- * @author Eric Lafortune
33
- */
34
- public class HorizontalClassMerger
35
- extends SimplifiedVisitor
36
- implements ClassVisitor
37
- {
38
- private final boolean allowAccessModification;
39
- private final boolean mergeInterfacesAggressively;
40
- private final ClassVisitor extraClassVisitor;
41
-
42
-
43
- /**
44
- * Creates a new HorizontalClassMerger.
45
- * @param allowAccessModification specifies whether the access modifiers
46
- * of classes can be changed in order to
47
- * merge them.
48
- * @param mergeInterfacesAggressively specifies whether interfaces may
49
- * be merged aggressively.
50
- */
51
- public HorizontalClassMerger(boolean allowAccessModification,
52
- boolean mergeInterfacesAggressively)
53
- {
54
- this(allowAccessModification, mergeInterfacesAggressively, null);
55
- }
56
-
57
-
58
- /**
59
- * Creates a new VerticalClassMerger.
60
- * @param allowAccessModification specifies whether the access modifiers
61
- * of classes can be changed in order to
62
- * merge them.
63
- * @param mergeInterfacesAggressively specifies whether interfaces may
64
- * be merged aggressively.
65
- * @param extraClassVisitor an optional extra visitor for all
66
- * merged classes.
67
- */
68
- public HorizontalClassMerger(boolean allowAccessModification,
69
- boolean mergeInterfacesAggressively,
70
- ClassVisitor extraClassVisitor)
71
- {
72
- this.allowAccessModification = allowAccessModification;
73
- this.mergeInterfacesAggressively = mergeInterfacesAggressively;
74
- this.extraClassVisitor = extraClassVisitor;
75
- }
76
-
77
-
78
- // Implementations for ClassVisitor.
79
-
80
- public void visitProgramClass(ProgramClass programClass)
81
- {
82
- programClass.superClassConstantAccept(new ReferencedClassVisitor(
83
- new SubclassTraveler(
84
- new ProgramClassFilter(
85
- new ClassMerger(programClass,
86
- allowAccessModification,
87
- mergeInterfacesAggressively,
88
- extraClassVisitor)))));
89
- }
90
- }
@@ -1,4424 +0,0 @@
1
- /*
2
- * ProGuard -- shrinking, optimization, obfuscation, and preverification
3
- * of Java bytecode.
4
- *
5
- * Copyright (c) 2002-2011 Eric Lafortune (eric@graphics.cornell.edu)
6
- *
7
- * This program is free software; you can redistribute it and/or modify it
8
- * under the terms of the GNU General Public License as published by the Free
9
- * Software Foundation; either version 2 of the License, or (at your option)
10
- * any later version.
11
- *
12
- * This program is distributed in the hope that it will be useful, but WITHOUT
13
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
14
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
15
- * more details.
16
- *
17
- * You should have received a copy of the GNU General Public License along
18
- * with this program; if not, write to the Free Software Foundation, Inc.,
19
- * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
20
- */
21
- package proguard.optimize.peephole;
22
-
23
- import proguard.classfile.*;
24
- import proguard.classfile.constant.*;
25
- import proguard.classfile.instruction.*;
26
- import proguard.classfile.visitor.ClassPrinter;
27
-
28
- /**
29
- * This class contains a set of instruction sequences and their suggested
30
- * replacements.
31
- *
32
- * @see InstructionSequencesReplacer
33
- * @see InstructionSequenceReplacer
34
- * @author Eric Lafortune
35
- */
36
- public class InstructionSequenceConstants
37
- {
38
- private static final int X = InstructionSequenceReplacer.X;
39
- private static final int Y = InstructionSequenceReplacer.Y;
40
- private static final int Z = InstructionSequenceReplacer.Z;
41
-
42
- private static final int A = InstructionSequenceReplacer.A;
43
- private static final int B = InstructionSequenceReplacer.B;
44
- private static final int C = InstructionSequenceReplacer.C;
45
- private static final int D = InstructionSequenceReplacer.D;
46
-
47
- private static final int STRING_A_LENGTH = InstructionSequenceReplacer.STRING_A_LENGTH;
48
- private static final int BOOLEAN_A_STRING = InstructionSequenceReplacer.BOOLEAN_A_STRING;
49
- private static final int CHAR_A_STRING = InstructionSequenceReplacer.CHAR_A_STRING;
50
- private static final int INT_A_STRING = InstructionSequenceReplacer.INT_A_STRING;
51
- private static final int LONG_A_STRING = InstructionSequenceReplacer.LONG_A_STRING;
52
- private static final int FLOAT_A_STRING = InstructionSequenceReplacer.FLOAT_A_STRING;
53
- private static final int DOUBLE_A_STRING = InstructionSequenceReplacer.DOUBLE_A_STRING;
54
- private static final int STRING_A_STRING = InstructionSequenceReplacer.STRING_A_STRING;
55
- private static final int BOOLEAN_B_STRING = InstructionSequenceReplacer.BOOLEAN_B_STRING;
56
- private static final int CHAR_B_STRING = InstructionSequenceReplacer.CHAR_B_STRING;
57
- private static final int INT_B_STRING = InstructionSequenceReplacer.INT_B_STRING;
58
- private static final int LONG_B_STRING = InstructionSequenceReplacer.LONG_B_STRING;
59
- private static final int FLOAT_B_STRING = InstructionSequenceReplacer.FLOAT_B_STRING;
60
- private static final int DOUBLE_B_STRING = InstructionSequenceReplacer.DOUBLE_B_STRING;
61
- private static final int STRING_B_STRING = InstructionSequenceReplacer.STRING_B_STRING;
62
-
63
- private static final int I_32768 = 0;
64
- private static final int I_65536 = 1;
65
- private static final int I_16777216 = 2;
66
-
67
- // private static final int I_0x000000ff
68
- private static final int I_0x0000ff00 = 3;
69
- private static final int I_0x00ff0000 = 4;
70
- private static final int I_0xff000000 = 5;
71
- private static final int I_0x0000ffff = 6;
72
- private static final int I_0xffff0000 = 7;
73
-
74
- private static final int L_M1 = 8;
75
- private static final int L_2 = 9;
76
- private static final int L_4 = 10;
77
- private static final int L_8 = 11;
78
- private static final int L_16 = 12;
79
- private static final int L_32 = 13;
80
- private static final int L_64 = 14;
81
- private static final int L_128 = 15;
82
- private static final int L_256 = 16;
83
- private static final int L_512 = 17;
84
- private static final int L_1024 = 18;
85
- private static final int L_2048 = 19;
86
- private static final int L_4096 = 20;
87
- private static final int L_8192 = 21;
88
- private static final int L_16384 = 22;
89
- private static final int L_32768 = 23;
90
- private static final int L_65536 = 24;
91
- private static final int L_16777216 = 25;
92
- private static final int L_4294967296 = 26;
93
-
94
- private static final int L_0x00000000ffffffff = 27;
95
- private static final int L_0xffffffff00000000 = 28;
96
-
97
- private static final int F_M1 = 29;
98
-
99
- private static final int D_M1 = 30;
100
-
101
- private static final int STRING_EMPTY = 31;
102
-
103
- private static final int FIELD_I = 32;
104
- private static final int FIELD_L = 33;
105
- private static final int FIELD_F = 34;
106
- private static final int FIELD_D = 35;
107
-
108
- private static final int METHOD_STRING_EQUALS = 36;
109
- private static final int METHOD_STRING_LENGTH = 37;
110
- private static final int METHOD_STRINGBUFFER_INIT = 38;
111
- private static final int METHOD_STRINGBUFFER_INIT_STRING = 39;
112
- private static final int METHOD_STRINGBUFFER_APPEND_BOOLEAN = 40;
113
- private static final int METHOD_STRINGBUFFER_APPEND_CHAR = 41;
114
- private static final int METHOD_STRINGBUFFER_APPEND_INTEGER = 42;
115
- private static final int METHOD_STRINGBUFFER_APPEND_LONG = 43;
116
- private static final int METHOD_STRINGBUFFER_APPEND_FLOAT = 44;
117
- private static final int METHOD_STRINGBUFFER_APPEND_DOUBLE = 45;
118
- private static final int METHOD_STRINGBUFFER_APPEND_STRING = 46;
119
- private static final int METHOD_STRINGBUFFER_LENGTH = 47;
120
- private static final int METHOD_STRINGBUFFER_TOSTRING = 48;
121
- private static final int METHOD_STRINGBUILDER_INIT = 49;
122
- private static final int METHOD_STRINGBUILDER_INIT_STRING = 50;
123
- private static final int METHOD_STRINGBUILDER_APPEND_BOOLEAN = 51;
124
- private static final int METHOD_STRINGBUILDER_APPEND_CHAR = 52;
125
- private static final int METHOD_STRINGBUILDER_APPEND_INTEGER = 53;
126
- private static final int METHOD_STRINGBUILDER_APPEND_LONG = 54;
127
- private static final int METHOD_STRINGBUILDER_APPEND_FLOAT = 55;
128
- private static final int METHOD_STRINGBUILDER_APPEND_DOUBLE = 56;
129
- private static final int METHOD_STRINGBUILDER_APPEND_STRING = 57;
130
- private static final int METHOD_STRINGBUILDER_LENGTH = 58;
131
- private static final int METHOD_STRINGBUILDER_TOSTRING = 59;
132
-
133
- private static final int CLASS_STRING = 60;
134
- private static final int CLASS_STRINGBUFFER = 61;
135
- private static final int CLASS_STRINGBUILDER = 62;
136
-
137
- private static final int NAME_AND_TYPE_I = 63;
138
- private static final int NAME_AND_TYPE_L = 64;
139
- private static final int NAME_AND_TYPE_F = 65;
140
- private static final int NAME_AND_TYPE_D = 66;
141
-
142
- private static final int NAME_AND_TYPE_EQUALS = 67;
143
- private static final int NAME_AND_TYPE_LENGTH = 68;
144
- private static final int NAME_AND_TYPE_INIT = 69;
145
- private static final int NAME_AND_TYPE_INIT_STRING = 70;
146
- private static final int NAME_AND_TYPE_APPEND_Z_STRINGBUFFER = 71;
147
- private static final int NAME_AND_TYPE_APPEND_C_STRINGBUFFER = 72;
148
- private static final int NAME_AND_TYPE_APPEND_I_STRINGBUFFER = 73;
149
- private static final int NAME_AND_TYPE_APPEND_J_STRINGBUFFER = 74;
150
- private static final int NAME_AND_TYPE_APPEND_F_STRINGBUFFER = 75;
151
- private static final int NAME_AND_TYPE_APPEND_D_STRINGBUFFER = 76;
152
- private static final int NAME_AND_TYPE_APPEND_STRING_STRINGBUFFER = 77;
153
- private static final int NAME_AND_TYPE_APPEND_Z_STRINGBUILDER = 78;
154
- private static final int NAME_AND_TYPE_APPEND_C_STRINGBUILDER = 79;
155
- private static final int NAME_AND_TYPE_APPEND_I_STRINGBUILDER = 80;
156
- private static final int NAME_AND_TYPE_APPEND_J_STRINGBUILDER = 81;
157
- private static final int NAME_AND_TYPE_APPEND_F_STRINGBUILDER = 82;
158
- private static final int NAME_AND_TYPE_APPEND_D_STRINGBUILDER = 83;
159
- private static final int NAME_AND_TYPE_APPEND_STRING_STRINGBUILDER = 84;
160
- private static final int NAME_AND_TYPE_TOSTRING = 85;
161
-
162
- private static final int UTF8_EMPTY = 86;
163
- private static final int UTF8_I = 87;
164
- private static final int UTF8_L = 88;
165
- private static final int UTF8_F = 89;
166
- private static final int UTF8_D = 90;
167
- private static final int UTF8_STRING = 91;
168
- private static final int UTF8_STRINGBUFFER = 92;
169
- private static final int UTF8_STRINGBUILDER = 93;
170
- private static final int UTF8_EQUALS = 94;
171
- private static final int UTF8_OBJECT_Z = 95;
172
- private static final int UTF8_LENGTH = 96;
173
- private static final int UTF8__I = 97;
174
- private static final int UTF8_INIT = 98;
175
- private static final int UTF8__VOID = 99;
176
- private static final int UTF8_STRING_VOID = 100;
177
- private static final int UTF8_TOSTRING = 101;
178
- private static final int UTF8__STRING = 102;
179
- private static final int UTF8_APPEND = 103;
180
- private static final int UTF8_Z_STRINGBUFFER = 104;
181
- private static final int UTF8_C_STRINGBUFFER = 105;
182
- private static final int UTF8_I_STRINGBUFFER = 106;
183
- private static final int UTF8_J_STRINGBUFFER = 107;
184
- private static final int UTF8_F_STRINGBUFFER = 108;
185
- private static final int UTF8_D_STRINGBUFFER = 109;
186
- private static final int UTF8_STRING_STRINGBUFFER = 110;
187
- private static final int UTF8_Z_STRINGBUILDER = 111;
188
- private static final int UTF8_C_STRINGBUILDER = 112;
189
- private static final int UTF8_I_STRINGBUILDER = 113;
190
- private static final int UTF8_J_STRINGBUILDER = 114;
191
- private static final int UTF8_F_STRINGBUILDER = 115;
192
- private static final int UTF8_D_STRINGBUILDER = 116;
193
- private static final int UTF8_STRING_STRINGBUILDER = 117;
194
-
195
- private static final int SENTINEL = 118;
196
-
197
-
198
- public static final Constant[] CONSTANTS = new Constant[]
199
- {
200
- new IntegerConstant(32768),
201
- new IntegerConstant(65536),
202
- new IntegerConstant(16777216),
203
-
204
- new IntegerConstant(0x0000ff00),
205
- new IntegerConstant(0x00ff0000),
206
- new IntegerConstant(0xff000000),
207
- new IntegerConstant(0x0000ffff),
208
- new IntegerConstant(0xffff0000),
209
-
210
- new LongConstant(-1L),
211
- new LongConstant(2L),
212
- new LongConstant(4L),
213
- new LongConstant(8L),
214
- new LongConstant(16L),
215
- new LongConstant(32L),
216
- new LongConstant(64L),
217
- new LongConstant(128L),
218
- new LongConstant(256L),
219
- new LongConstant(512L),
220
- new LongConstant(1024L),
221
- new LongConstant(2048L),
222
- new LongConstant(4096L),
223
- new LongConstant(8192L),
224
- new LongConstant(16384L),
225
- new LongConstant(32768L),
226
- new LongConstant(65536L),
227
- new LongConstant(16777216L),
228
- new LongConstant(4294967296L),
229
-
230
- new LongConstant(0x00000000ffffffffL),
231
- new LongConstant(0xffffffff00000000L),
232
-
233
- new FloatConstant(-1f),
234
-
235
- new DoubleConstant(-1d),
236
-
237
- new StringConstant(UTF8_EMPTY, null, null),
238
-
239
- new FieldrefConstant(X, NAME_AND_TYPE_I, null, null),
240
- new FieldrefConstant(X, NAME_AND_TYPE_L, null, null),
241
- new FieldrefConstant(X, NAME_AND_TYPE_F, null, null),
242
- new FieldrefConstant(X, NAME_AND_TYPE_D, null, null),
243
-
244
- new MethodrefConstant(CLASS_STRING, NAME_AND_TYPE_EQUALS, null, null),
245
- new MethodrefConstant(CLASS_STRING, NAME_AND_TYPE_LENGTH, null, null),
246
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_INIT, null, null),
247
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_INIT_STRING, null, null),
248
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_Z_STRINGBUFFER, null, null),
249
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_C_STRINGBUFFER, null, null),
250
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_I_STRINGBUFFER, null, null),
251
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_J_STRINGBUFFER, null, null),
252
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_F_STRINGBUFFER, null, null),
253
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_D_STRINGBUFFER, null, null),
254
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_APPEND_STRING_STRINGBUFFER, null, null),
255
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_LENGTH, null, null),
256
- new MethodrefConstant(CLASS_STRINGBUFFER, NAME_AND_TYPE_TOSTRING, null, null),
257
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_INIT, null, null),
258
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_INIT_STRING, null, null),
259
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_Z_STRINGBUILDER, null, null),
260
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_C_STRINGBUILDER, null, null),
261
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_I_STRINGBUILDER, null, null),
262
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_J_STRINGBUILDER, null, null),
263
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_F_STRINGBUILDER, null, null),
264
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_D_STRINGBUILDER, null, null),
265
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_APPEND_STRING_STRINGBUILDER, null, null),
266
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_LENGTH, null, null),
267
- new MethodrefConstant(CLASS_STRINGBUILDER, NAME_AND_TYPE_TOSTRING, null, null),
268
-
269
- new ClassConstant(UTF8_STRING, null),
270
- new ClassConstant(UTF8_STRINGBUFFER, null),
271
- new ClassConstant(UTF8_STRINGBUILDER, null),
272
-
273
- new NameAndTypeConstant(Y, UTF8_I),
274
- new NameAndTypeConstant(Y, UTF8_L),
275
- new NameAndTypeConstant(Y, UTF8_F),
276
- new NameAndTypeConstant(Y, UTF8_D),
277
- new NameAndTypeConstant(UTF8_EQUALS, UTF8_OBJECT_Z),
278
- new NameAndTypeConstant(UTF8_LENGTH, UTF8__I),
279
- new NameAndTypeConstant(UTF8_INIT, UTF8__VOID),
280
- new NameAndTypeConstant(UTF8_INIT, UTF8_STRING_VOID),
281
- new NameAndTypeConstant(UTF8_APPEND, UTF8_Z_STRINGBUFFER),
282
- new NameAndTypeConstant(UTF8_APPEND, UTF8_C_STRINGBUFFER),
283
- new NameAndTypeConstant(UTF8_APPEND, UTF8_I_STRINGBUFFER),
284
- new NameAndTypeConstant(UTF8_APPEND, UTF8_J_STRINGBUFFER),
285
- new NameAndTypeConstant(UTF8_APPEND, UTF8_F_STRINGBUFFER),
286
- new NameAndTypeConstant(UTF8_APPEND, UTF8_D_STRINGBUFFER),
287
- new NameAndTypeConstant(UTF8_APPEND, UTF8_STRING_STRINGBUFFER),
288
- new NameAndTypeConstant(UTF8_APPEND, UTF8_Z_STRINGBUILDER),
289
- new NameAndTypeConstant(UTF8_APPEND, UTF8_C_STRINGBUILDER),
290
- new NameAndTypeConstant(UTF8_APPEND, UTF8_I_STRINGBUILDER),
291
- new NameAndTypeConstant(UTF8_APPEND, UTF8_J_STRINGBUILDER),
292
- new NameAndTypeConstant(UTF8_APPEND, UTF8_F_STRINGBUILDER),
293
- new NameAndTypeConstant(UTF8_APPEND, UTF8_D_STRINGBUILDER),
294
- new NameAndTypeConstant(UTF8_APPEND, UTF8_STRING_STRINGBUILDER),
295
- new NameAndTypeConstant(UTF8_TOSTRING, UTF8__STRING),
296
-
297
- new Utf8Constant(""),
298
- new Utf8Constant("I"),
299
- new Utf8Constant("J"),
300
- new Utf8Constant("F"),
301
- new Utf8Constant("D"),
302
- new Utf8Constant(ClassConstants.INTERNAL_NAME_JAVA_LANG_STRING),
303
- new Utf8Constant(ClassConstants.INTERNAL_NAME_JAVA_LANG_STRING_BUFFER),
304
- new Utf8Constant(ClassConstants.INTERNAL_NAME_JAVA_LANG_STRING_BUILDER),
305
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_NAME_EQUALS),
306
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_EQUALS),
307
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_NAME_LENGTH),
308
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_LENGTH),
309
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_NAME_INIT),
310
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_INIT),
311
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_STRING_VOID),
312
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_NAME_TOSTRING),
313
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_TOSTRING),
314
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_NAME_APPEND),
315
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_BOOLEAN_STRING_BUFFER),
316
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_CHAR_STRING_BUFFER),
317
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_INT_STRING_BUFFER),
318
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_LONG_STRING_BUFFER),
319
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_FLOAT_STRING_BUFFER),
320
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_DOUBLE_STRING_BUFFER),
321
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_STRING_STRING_BUFFER),
322
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_BOOLEAN_STRING_BUILDER),
323
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_CHAR_STRING_BUILDER),
324
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_INT_STRING_BUILDER),
325
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_LONG_STRING_BUILDER),
326
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_FLOAT_STRING_BUILDER),
327
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_DOUBLE_STRING_BUILDER),
328
- new Utf8Constant(ClassConstants.INTERNAL_METHOD_TYPE_STRING_STRING_BUILDER),
329
- };
330
-
331
- public static final Instruction[][][] VARIABLE = new Instruction[][][]
332
- {
333
- { // nop = nothing
334
- {
335
- new SimpleInstruction(InstructionConstants.OP_NOP),
336
- },{
337
- // Nothing.
338
- },
339
- },
340
- { // iload/pop = nothing
341
- {
342
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
343
- new SimpleInstruction(InstructionConstants.OP_POP),
344
- },{
345
- // Nothing.
346
- },
347
- },
348
- { // lload/pop2 = nothing
349
- {
350
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
351
- new SimpleInstruction(InstructionConstants.OP_POP2),
352
- },{
353
- // Nothing.
354
- },
355
- },
356
- { // fload/pop = nothing
357
- {
358
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
359
- new SimpleInstruction(InstructionConstants.OP_POP),
360
- },{
361
- // Nothing.
362
- },
363
- },
364
- { // dload/pop2 = nothing
365
- {
366
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
367
- new SimpleInstruction(InstructionConstants.OP_POP2),
368
- },{
369
- // Nothing.
370
- },
371
- },
372
- { // aload/pop = nothing
373
- {
374
- new VariableInstruction(InstructionConstants.OP_ALOAD, X),
375
- new SimpleInstruction(InstructionConstants.OP_POP),
376
- },{
377
- // Nothing.
378
- },
379
- },
380
- { // i = i = nothing
381
- {
382
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
383
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
384
- },{
385
- // Nothing.
386
- },
387
- },
388
- { // l = l = nothing
389
- {
390
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
391
- new VariableInstruction(InstructionConstants.OP_LSTORE, X),
392
- },{
393
- // Nothing.
394
- },
395
- },
396
- { // f = f = nothing
397
- {
398
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
399
- new VariableInstruction(InstructionConstants.OP_FSTORE, X),
400
- },{
401
- // Nothing.
402
- },
403
- },
404
- { // d = d = nothing
405
- {
406
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
407
- new VariableInstruction(InstructionConstants.OP_DSTORE, X),
408
- },{
409
- // Nothing.
410
- },
411
- },
412
- { // a = a = nothing
413
- {
414
- new VariableInstruction(InstructionConstants.OP_ALOAD, X),
415
- new VariableInstruction(InstructionConstants.OP_ASTORE, X),
416
- },{
417
- // Nothing.
418
- },
419
- },
420
- { // istore/istore = pop/istore
421
- {
422
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
423
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
424
- },{
425
- new SimpleInstruction(InstructionConstants.OP_POP),
426
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
427
- },
428
- },
429
- { // lstore/lstore = pop2/lstore
430
- {
431
- new VariableInstruction(InstructionConstants.OP_LSTORE, X),
432
- new VariableInstruction(InstructionConstants.OP_LSTORE, X),
433
- },{
434
- new SimpleInstruction(InstructionConstants.OP_POP2),
435
- new VariableInstruction(InstructionConstants.OP_LSTORE, X),
436
- },
437
- },
438
- { // fstore/fstore = pop/fstore
439
- {
440
- new VariableInstruction(InstructionConstants.OP_FSTORE, X),
441
- new VariableInstruction(InstructionConstants.OP_FSTORE, X),
442
- },{
443
- new SimpleInstruction(InstructionConstants.OP_POP),
444
- new VariableInstruction(InstructionConstants.OP_FSTORE, X),
445
- },
446
- },
447
- { // dstore/dstore = pop2/dstore
448
- {
449
- new VariableInstruction(InstructionConstants.OP_DSTORE, X),
450
- new VariableInstruction(InstructionConstants.OP_DSTORE, X),
451
- },{
452
- new SimpleInstruction(InstructionConstants.OP_POP2),
453
- new VariableInstruction(InstructionConstants.OP_DSTORE, X),
454
- },
455
- },
456
- { // astore/astore = pop/astore
457
- {
458
- new VariableInstruction(InstructionConstants.OP_ASTORE, X),
459
- new VariableInstruction(InstructionConstants.OP_ASTORE, X),
460
- },{
461
- new SimpleInstruction(InstructionConstants.OP_POP),
462
- new VariableInstruction(InstructionConstants.OP_ASTORE, X),
463
- },
464
- },
465
- { // istore/iload = dup/istore
466
- {
467
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
468
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
469
- },{
470
- new SimpleInstruction(InstructionConstants.OP_DUP),
471
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
472
- },
473
- },
474
- { // lstore/lload = dup2/lstore
475
- {
476
- new VariableInstruction(InstructionConstants.OP_LSTORE, X),
477
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
478
- },{
479
- new SimpleInstruction(InstructionConstants.OP_DUP2),
480
- new VariableInstruction(InstructionConstants.OP_LSTORE, X),
481
- },
482
- },
483
- { // fstore/fload = dup/fstore
484
- {
485
- new VariableInstruction(InstructionConstants.OP_FSTORE, X),
486
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
487
- },{
488
- new SimpleInstruction(InstructionConstants.OP_DUP),
489
- new VariableInstruction(InstructionConstants.OP_FSTORE, X),
490
- },
491
- },
492
- { // dstore/dload = dup2/dstore
493
- {
494
- new VariableInstruction(InstructionConstants.OP_DSTORE, X),
495
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
496
- },{
497
- new SimpleInstruction(InstructionConstants.OP_DUP2),
498
- new VariableInstruction(InstructionConstants.OP_DSTORE, X),
499
- },
500
- },
501
- { // astore/aload = dup/astore
502
- {
503
- new VariableInstruction(InstructionConstants.OP_ASTORE, X),
504
- new VariableInstruction(InstructionConstants.OP_ALOAD, X),
505
- },{
506
- new SimpleInstruction(InstructionConstants.OP_DUP),
507
- new VariableInstruction(InstructionConstants.OP_ASTORE, X),
508
- },
509
- },
510
- };
511
-
512
- public static final Instruction[][][] ARITHMETIC = new Instruction[][][]
513
- {
514
- { // c + i = i + c
515
- {
516
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
517
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
518
- new SimpleInstruction(InstructionConstants.OP_IADD),
519
- },{
520
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
521
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
522
- new SimpleInstruction(InstructionConstants.OP_IADD),
523
- },
524
- },
525
- { // b + i = i + b
526
- {
527
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
528
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
529
- new SimpleInstruction(InstructionConstants.OP_IADD),
530
- },{
531
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
532
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
533
- new SimpleInstruction(InstructionConstants.OP_IADD),
534
- },
535
- },
536
- { // s + i = i + s
537
- {
538
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
539
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
540
- new SimpleInstruction(InstructionConstants.OP_IADD),
541
- },{
542
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
543
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
544
- new SimpleInstruction(InstructionConstants.OP_IADD),
545
- },
546
- },
547
- { // c + i = i + c
548
- {
549
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
550
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
551
- new SimpleInstruction(InstructionConstants.OP_IADD),
552
- },{
553
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
554
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
555
- new SimpleInstruction(InstructionConstants.OP_IADD),
556
- },
557
- },
558
- { // c * i = i * c
559
- {
560
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
561
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
562
- new SimpleInstruction(InstructionConstants.OP_IMUL),
563
- },{
564
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
565
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
566
- new SimpleInstruction(InstructionConstants.OP_IMUL),
567
- },
568
- },
569
- { // b * i = i * b
570
- {
571
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
572
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
573
- new SimpleInstruction(InstructionConstants.OP_IMUL),
574
- },{
575
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
576
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
577
- new SimpleInstruction(InstructionConstants.OP_IMUL),
578
- },
579
- },
580
- { // s * i = i * s
581
- {
582
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
583
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
584
- new SimpleInstruction(InstructionConstants.OP_IMUL),
585
- },{
586
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
587
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
588
- new SimpleInstruction(InstructionConstants.OP_IMUL),
589
- },
590
- },
591
- { // c * i = i * c
592
- {
593
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
594
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
595
- new SimpleInstruction(InstructionConstants.OP_IMUL),
596
- },{
597
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
598
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
599
- new SimpleInstruction(InstructionConstants.OP_IMUL),
600
- },
601
- },
602
- { // c + l = l + c
603
- {
604
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
605
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
606
- new SimpleInstruction(InstructionConstants.OP_LADD),
607
- },{
608
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
609
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
610
- new SimpleInstruction(InstructionConstants.OP_LADD),
611
- },
612
- },
613
- { // c + l = l + c
614
- {
615
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
616
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
617
- new SimpleInstruction(InstructionConstants.OP_LADD),
618
- },{
619
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
620
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
621
- new SimpleInstruction(InstructionConstants.OP_LADD),
622
- },
623
- },
624
- { // c * l = l * c
625
- {
626
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
627
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
628
- new SimpleInstruction(InstructionConstants.OP_LMUL),
629
- },{
630
- new VariableInstruction(InstructionConstants.OP_LLOAD, X),
631
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
632
- new SimpleInstruction(InstructionConstants.OP_LMUL),
633
- },
634
- },
635
- { // c + f = f + c
636
- {
637
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
638
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
639
- new SimpleInstruction(InstructionConstants.OP_FADD),
640
- },{
641
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
642
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
643
- new SimpleInstruction(InstructionConstants.OP_FADD),
644
- },
645
- },
646
- { // c + f = f + c
647
- {
648
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
649
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
650
- new SimpleInstruction(InstructionConstants.OP_FADD),
651
- },{
652
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
653
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
654
- new SimpleInstruction(InstructionConstants.OP_FADD),
655
- },
656
- },
657
- { // c * f = f * c
658
- {
659
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
660
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
661
- new SimpleInstruction(InstructionConstants.OP_FMUL),
662
- },{
663
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
664
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
665
- new SimpleInstruction(InstructionConstants.OP_FMUL),
666
- },
667
- },
668
- { // c * f = f * c
669
- {
670
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
671
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
672
- new SimpleInstruction(InstructionConstants.OP_LMUL),
673
- },{
674
- new VariableInstruction(InstructionConstants.OP_FLOAD, X),
675
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
676
- new SimpleInstruction(InstructionConstants.OP_LMUL),
677
- },
678
- },
679
- { // c + d = d + c
680
- {
681
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
682
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
683
- new SimpleInstruction(InstructionConstants.OP_DADD),
684
- },{
685
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
686
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
687
- new SimpleInstruction(InstructionConstants.OP_DADD),
688
- },
689
- },
690
- { // c + d = d + c
691
- {
692
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
693
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
694
- new SimpleInstruction(InstructionConstants.OP_DADD),
695
- },{
696
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
697
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
698
- new SimpleInstruction(InstructionConstants.OP_DADD),
699
- },
700
- },
701
- { // c * d = d * c
702
- {
703
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
704
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
705
- new SimpleInstruction(InstructionConstants.OP_DMUL),
706
- },{
707
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
708
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
709
- new SimpleInstruction(InstructionConstants.OP_DMUL),
710
- },
711
- },
712
- { // c * d = d * c
713
- {
714
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
715
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
716
- new SimpleInstruction(InstructionConstants.OP_DMUL),
717
- },{
718
- new VariableInstruction(InstructionConstants.OP_DLOAD, X),
719
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
720
- new SimpleInstruction(InstructionConstants.OP_DMUL),
721
- },
722
- },
723
- { // i = i + c = i += c
724
- {
725
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
726
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
727
- new SimpleInstruction(InstructionConstants.OP_IADD),
728
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
729
- },{
730
- new VariableInstruction(InstructionConstants.OP_IINC, X, A),
731
- },
732
- },
733
- { // i = i + b = i += b
734
- {
735
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
736
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
737
- new SimpleInstruction(InstructionConstants.OP_IADD),
738
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
739
- },{
740
- new VariableInstruction(InstructionConstants.OP_IINC, X, A),
741
- },
742
- },
743
- { // i = i + s = i += s
744
- {
745
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
746
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
747
- new SimpleInstruction(InstructionConstants.OP_IADD),
748
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
749
- },{
750
- new VariableInstruction(InstructionConstants.OP_IINC, X, A),
751
- },
752
- },
753
- { // i = i - -1 = i++
754
- {
755
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
756
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
757
- new SimpleInstruction(InstructionConstants.OP_ISUB),
758
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
759
- },{
760
- new VariableInstruction(InstructionConstants.OP_IINC, X, 1),
761
- },
762
- },
763
- { // i = i - 1 = i--
764
- {
765
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
766
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
767
- new SimpleInstruction(InstructionConstants.OP_ISUB),
768
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
769
- },{
770
- new VariableInstruction(InstructionConstants.OP_IINC, X, -1),
771
- },
772
- },
773
- { // i = i - 2 = i -= 2
774
- {
775
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
776
- new SimpleInstruction(InstructionConstants.OP_ICONST_2),
777
- new SimpleInstruction(InstructionConstants.OP_ISUB),
778
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
779
- },{
780
- new VariableInstruction(InstructionConstants.OP_IINC, X, -2),
781
- },
782
- },
783
- { // i = i - 3 = i -= 3
784
- {
785
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
786
- new SimpleInstruction(InstructionConstants.OP_ICONST_3),
787
- new SimpleInstruction(InstructionConstants.OP_ISUB),
788
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
789
- },{
790
- new VariableInstruction(InstructionConstants.OP_IINC, X, -3),
791
- },
792
- },
793
- { // i = i - 4 = i -= 4
794
- {
795
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
796
- new SimpleInstruction(InstructionConstants.OP_ICONST_4),
797
- new SimpleInstruction(InstructionConstants.OP_ISUB),
798
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
799
- },{
800
- new VariableInstruction(InstructionConstants.OP_IINC, X, -4),
801
- },
802
- },
803
- { // i = i - 5 = i -= 5
804
- {
805
- new VariableInstruction(InstructionConstants.OP_ILOAD, X),
806
- new SimpleInstruction(InstructionConstants.OP_ICONST_5),
807
- new SimpleInstruction(InstructionConstants.OP_ISUB),
808
- new VariableInstruction(InstructionConstants.OP_ISTORE, X),
809
- },{
810
- new VariableInstruction(InstructionConstants.OP_IINC, X, -5),
811
- },
812
- },
813
- { // ... + 0 = ...
814
- {
815
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
816
- new SimpleInstruction(InstructionConstants.OP_IADD),
817
- },{
818
- // Nothing.
819
- },
820
- },
821
- { // ... + 0L = ...
822
- {
823
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
824
- new SimpleInstruction(InstructionConstants.OP_LADD),
825
- },{
826
- // Nothing.
827
- },
828
- },
829
- // Not valid for -0.0.
830
- // { // ... + 0f = ...
831
- // {
832
- // new SimpleInstruction(InstructionConstants.OP_FCONST_0),
833
- // new SimpleInstruction(InstructionConstants.OP_FADD),
834
- // },{
835
- // // Nothing.
836
- // },
837
- // },
838
- // { // ... + 0d = ...
839
- // {
840
- // new SimpleInstruction(InstructionConstants.OP_DCONST_0),
841
- // new SimpleInstruction(InstructionConstants.OP_DADD),
842
- // },{
843
- // // Nothing.
844
- // },
845
- // },
846
- { // ... - 0 = ...
847
- {
848
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
849
- new SimpleInstruction(InstructionConstants.OP_ISUB),
850
- },{
851
- // Nothing.
852
- },
853
- },
854
- { // ... - 0L = ...
855
- {
856
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
857
- new SimpleInstruction(InstructionConstants.OP_LSUB),
858
- },{
859
- // Nothing.
860
- },
861
- },
862
- { // ... - 0f = ...
863
- {
864
- new SimpleInstruction(InstructionConstants.OP_FCONST_0),
865
- new SimpleInstruction(InstructionConstants.OP_FSUB),
866
- },{
867
- // Nothing.
868
- },
869
- },
870
- { // ... - 0d = ...
871
- {
872
- new SimpleInstruction(InstructionConstants.OP_DCONST_0),
873
- new SimpleInstruction(InstructionConstants.OP_DSUB),
874
- },{
875
- // Nothing.
876
- },
877
- },
878
- { // ... * -1 = -...
879
- {
880
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
881
- new SimpleInstruction(InstructionConstants.OP_IMUL),
882
- },{
883
- new SimpleInstruction(InstructionConstants.OP_INEG),
884
- },
885
- },
886
- { // ... * 0 = 0
887
- {
888
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
889
- new SimpleInstruction(InstructionConstants.OP_IMUL),
890
- },{
891
- new SimpleInstruction(InstructionConstants.OP_POP),
892
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
893
- },
894
- },
895
- { // ... * 1 = ...
896
- {
897
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
898
- new SimpleInstruction(InstructionConstants.OP_IMUL),
899
- },{
900
- // Nothing.
901
- },
902
- },
903
- { // ... * 2 = ... << 1
904
- {
905
- new SimpleInstruction(InstructionConstants.OP_ICONST_2),
906
- new SimpleInstruction(InstructionConstants.OP_IMUL),
907
- },{
908
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
909
- new SimpleInstruction(InstructionConstants.OP_ISHL),
910
- },
911
- },
912
- { // ... * 4 = ... << 2
913
- {
914
- new SimpleInstruction(InstructionConstants.OP_ICONST_4),
915
- new SimpleInstruction(InstructionConstants.OP_IMUL),
916
- },{
917
- new SimpleInstruction(InstructionConstants.OP_ICONST_2),
918
- new SimpleInstruction(InstructionConstants.OP_ISHL),
919
- },
920
- },
921
- { // ... * 8 = ... << 3
922
- {
923
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
924
- new SimpleInstruction(InstructionConstants.OP_IMUL),
925
- },{
926
- new SimpleInstruction(InstructionConstants.OP_ICONST_3),
927
- new SimpleInstruction(InstructionConstants.OP_ISHL),
928
- },
929
- },
930
- { // ... * 16 = ... << 4
931
- {
932
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
933
- new SimpleInstruction(InstructionConstants.OP_IMUL),
934
- },{
935
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
936
- new SimpleInstruction(InstructionConstants.OP_ISHL),
937
- },
938
- },
939
- { // ... * 32 = ... << 5
940
- {
941
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
942
- new SimpleInstruction(InstructionConstants.OP_IMUL),
943
- },{
944
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
945
- new SimpleInstruction(InstructionConstants.OP_ISHL),
946
- },
947
- },
948
- { // ... * 64 = ... << 6
949
- {
950
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 64),
951
- new SimpleInstruction(InstructionConstants.OP_IMUL),
952
- },{
953
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
954
- new SimpleInstruction(InstructionConstants.OP_ISHL),
955
- },
956
- },
957
- { // ... * 128 = ... << 7
958
- {
959
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 128),
960
- new SimpleInstruction(InstructionConstants.OP_IMUL),
961
- },{
962
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
963
- new SimpleInstruction(InstructionConstants.OP_ISHL),
964
- },
965
- },
966
- { // ... * 256 = ... << 8
967
- {
968
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 256),
969
- new SimpleInstruction(InstructionConstants.OP_IMUL),
970
- },{
971
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
972
- new SimpleInstruction(InstructionConstants.OP_ISHL),
973
- },
974
- },
975
- { // ... * 512 = ... << 9
976
- {
977
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 512),
978
- new SimpleInstruction(InstructionConstants.OP_IMUL),
979
- },{
980
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
981
- new SimpleInstruction(InstructionConstants.OP_ISHL),
982
- },
983
- },
984
- { // ... * 1024 = ... << 10
985
- {
986
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 1024),
987
- new SimpleInstruction(InstructionConstants.OP_IMUL),
988
- },{
989
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
990
- new SimpleInstruction(InstructionConstants.OP_ISHL),
991
- },
992
- },
993
- { // ... * 2048 = ... << 11
994
- {
995
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 2048),
996
- new SimpleInstruction(InstructionConstants.OP_IMUL),
997
- },{
998
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
999
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1000
- },
1001
- },
1002
- { // ... * 4096 = ... << 12
1003
- {
1004
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 4096),
1005
- new SimpleInstruction(InstructionConstants.OP_IMUL),
1006
- },{
1007
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1008
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1009
- },
1010
- },
1011
- { // ... * 8192 = ... << 13
1012
- {
1013
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 8192),
1014
- new SimpleInstruction(InstructionConstants.OP_IMUL),
1015
- },{
1016
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1017
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1018
- },
1019
- },
1020
- { // ... * 16384 = ... << 14
1021
- {
1022
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 16384),
1023
- new SimpleInstruction(InstructionConstants.OP_IMUL),
1024
- },{
1025
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1026
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1027
- },
1028
- },
1029
- { // ... * 32768 = ... << 15
1030
- {
1031
- new ConstantInstruction(InstructionConstants.OP_LDC, I_32768),
1032
- new SimpleInstruction(InstructionConstants.OP_IMUL),
1033
- },{
1034
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1035
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1036
- },
1037
- },
1038
- { // ... * 65536 = ... << 16
1039
- {
1040
- new ConstantInstruction(InstructionConstants.OP_LDC, I_65536),
1041
- new SimpleInstruction(InstructionConstants.OP_IMUL),
1042
- },{
1043
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1044
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1045
- },
1046
- },
1047
- { // ... * 16777216 = ... << 24
1048
- {
1049
- new ConstantInstruction(InstructionConstants.OP_LDC, I_16777216),
1050
- new SimpleInstruction(InstructionConstants.OP_IMUL),
1051
- },{
1052
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1053
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1054
- },
1055
- },
1056
- { // ... * -1L = -...
1057
- {
1058
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
1059
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1060
- },{
1061
- new SimpleInstruction(InstructionConstants.OP_LNEG),
1062
- },
1063
- },
1064
- { // ... * 0L = 0L
1065
- {
1066
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1067
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1068
- },{
1069
- new SimpleInstruction(InstructionConstants.OP_POP2),
1070
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1071
- },
1072
- },
1073
- { // ... * 1L = ...
1074
- {
1075
- new SimpleInstruction(InstructionConstants.OP_LCONST_1),
1076
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1077
- },{
1078
- // Nothing.
1079
- },
1080
- },
1081
- { // ... * 2L = ... << 1
1082
- {
1083
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2),
1084
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1085
- },{
1086
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1087
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1088
- },
1089
- },
1090
- { // ... * 4L = ... << 2
1091
- {
1092
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4),
1093
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1094
- },{
1095
- new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1096
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1097
- },
1098
- },
1099
- { // ... * 8L = ... << 3
1100
- {
1101
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8),
1102
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1103
- },{
1104
- new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1105
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1106
- },
1107
- },
1108
- { // ... * 16L = ... << 4
1109
- {
1110
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16),
1111
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1112
- },{
1113
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
1114
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1115
- },
1116
- },
1117
- { // ... * 32L = ... << 5
1118
- {
1119
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32),
1120
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1121
- },{
1122
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1123
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1124
- },
1125
- },
1126
- { // ... * 64L = ... << 6
1127
- {
1128
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_64),
1129
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1130
- },{
1131
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1132
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1133
- },
1134
- },
1135
- { // ... * 128L = ... << 7
1136
- {
1137
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_128),
1138
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1139
- },{
1140
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1141
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1142
- },
1143
- },
1144
- { // ... * 256L = ... << 8
1145
- {
1146
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_256),
1147
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1148
- },{
1149
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1150
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1151
- },
1152
- },
1153
- { // ... * 512L = ... << 9
1154
- {
1155
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_512),
1156
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1157
- },{
1158
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1159
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1160
- },
1161
- },
1162
- { // ... * 1024L = ... << 10
1163
- {
1164
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_1024),
1165
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1166
- },{
1167
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1168
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1169
- },
1170
- },
1171
- { // ... * 2048L = ... << 11
1172
- {
1173
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2048),
1174
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1175
- },{
1176
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1177
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1178
- },
1179
- },
1180
- { // ... * 4096L = ... << 12
1181
- {
1182
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4096),
1183
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1184
- },{
1185
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1186
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1187
- },
1188
- },
1189
- { // ... * 8192L = ... << 13
1190
- {
1191
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8192),
1192
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1193
- },{
1194
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1195
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1196
- },
1197
- },
1198
- { // ... * 16384L = ... << 14
1199
- {
1200
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16384),
1201
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1202
- },{
1203
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1204
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1205
- },
1206
- },
1207
- { // ... * 32768L = ... << 15
1208
- {
1209
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32768),
1210
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1211
- },{
1212
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1213
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1214
- },
1215
- },
1216
- { // ... * 65536LL = ... << 16
1217
- {
1218
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_65536),
1219
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1220
- },{
1221
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1222
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1223
- },
1224
- },
1225
- { // ... * 16777216L = ... << 24
1226
- {
1227
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16777216),
1228
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1229
- },{
1230
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1231
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1232
- },
1233
- },
1234
- { // ... * 4294967296L = ... << 32
1235
- {
1236
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4294967296),
1237
- new SimpleInstruction(InstructionConstants.OP_LMUL),
1238
- },{
1239
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1240
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1241
- },
1242
- },
1243
- { // ... * -1f = -...
1244
- {
1245
- new ConstantInstruction(InstructionConstants.OP_LDC, F_M1),
1246
- new SimpleInstruction(InstructionConstants.OP_FMUL),
1247
- },{
1248
- new SimpleInstruction(InstructionConstants.OP_FNEG),
1249
- },
1250
- },
1251
- // Not valid for -0.0 and for NaN.
1252
- // { // ... * 0f = 0f
1253
- // {
1254
- // new SimpleInstruction(InstructionConstants.OP_FCONST_0),
1255
- // new SimpleInstruction(InstructionConstants.OP_FMUL),
1256
- // },{
1257
- // new SimpleInstruction(InstructionConstants.OP_POP),
1258
- // new SimpleInstruction(InstructionConstants.OP_FCONST_0),
1259
- // },
1260
- // },
1261
- { // ... * 1f = ...
1262
- {
1263
- new SimpleInstruction(InstructionConstants.OP_FCONST_1),
1264
- new SimpleInstruction(InstructionConstants.OP_FMUL),
1265
- },{
1266
- // Nothing.
1267
- },
1268
- },
1269
- { // ... * -1d = -...
1270
- {
1271
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, D_M1),
1272
- new SimpleInstruction(InstructionConstants.OP_DMUL),
1273
- },{
1274
- new SimpleInstruction(InstructionConstants.OP_DNEG),
1275
- },
1276
- },
1277
- // Not valid for -0.0 and for NaN.
1278
- // { // ... * 0d = 0d
1279
- // {
1280
- // new SimpleInstruction(InstructionConstants.OP_DCONST_0),
1281
- // new SimpleInstruction(InstructionConstants.OP_DMUL),
1282
- // },{
1283
- // new SimpleInstruction(InstructionConstants.OP_POP2),
1284
- // new SimpleInstruction(InstructionConstants.OP_DCONST_0),
1285
- // },
1286
- // },
1287
- { // ... * 1d = ...
1288
- {
1289
- new SimpleInstruction(InstructionConstants.OP_DCONST_1),
1290
- new SimpleInstruction(InstructionConstants.OP_DMUL),
1291
- },{
1292
- // Nothing.
1293
- },
1294
- },
1295
- { // ... / -1 = -...
1296
- {
1297
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
1298
- new SimpleInstruction(InstructionConstants.OP_IDIV),
1299
- },{
1300
- new SimpleInstruction(InstructionConstants.OP_INEG),
1301
- },
1302
- },
1303
- { // ... / 1 = ...
1304
- {
1305
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1306
- new SimpleInstruction(InstructionConstants.OP_IDIV),
1307
- },{
1308
- // Nothing.
1309
- },
1310
- },
1311
- // Not valid for negative values.
1312
- // { // ... / 2 = ... >> 1
1313
- // {
1314
- // new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1315
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1316
- // },{
1317
- // new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1318
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1319
- // },
1320
- // },
1321
- // { // ... / 4 = ... >> 2
1322
- // {
1323
- // new SimpleInstruction(InstructionConstants.OP_ICONST_4),
1324
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1325
- // },{
1326
- // new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1327
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1328
- // },
1329
- // },
1330
- // { // ... / 8 = ... >> 3
1331
- // {
1332
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1333
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1334
- // },{
1335
- // new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1336
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1337
- // },
1338
- // },
1339
- // { // ... / 16 = ... >> 4
1340
- // {
1341
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1342
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1343
- // },{
1344
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
1345
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1346
- // },
1347
- // },
1348
- // { // ... / 32 = ... >> 5
1349
- // {
1350
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1351
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1352
- // },{
1353
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1354
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1355
- // },
1356
- // },
1357
- // { // ... / 64 = ... >> 6
1358
- // {
1359
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 64),
1360
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1361
- // },{
1362
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1363
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1364
- // },
1365
- // },
1366
- // { // ... / 128 = ... >> 7
1367
- // {
1368
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 128),
1369
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1370
- // },{
1371
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1372
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1373
- // },
1374
- // },
1375
- // { // ... / 256 = ... >> 8
1376
- // {
1377
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 256),
1378
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1379
- // },{
1380
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1381
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1382
- // },
1383
- // },
1384
- // { // ... / 512 = ... >> 9
1385
- // {
1386
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 512),
1387
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1388
- // },{
1389
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1390
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1391
- // },
1392
- // },
1393
- // { // ... / 1024 = ... >> 10
1394
- // {
1395
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 1024),
1396
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1397
- // },{
1398
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1399
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1400
- // },
1401
- // },
1402
- // { // ... / 2048 = ... >> 11
1403
- // {
1404
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 2048),
1405
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1406
- // },{
1407
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1408
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1409
- // },
1410
- // },
1411
- // { // ... / 4096 = ... >> 12
1412
- // {
1413
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 4096),
1414
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1415
- // },{
1416
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1417
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1418
- // },
1419
- // },
1420
- // { // ... / 8192 = ... >> 13
1421
- // {
1422
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 8192),
1423
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1424
- // },{
1425
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1426
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1427
- // },
1428
- // },
1429
- // { // ... / 16384 = ... >> 14
1430
- // {
1431
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 16384),
1432
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1433
- // },{
1434
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1435
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1436
- // },
1437
- // },
1438
- // { // ... / 32768 = ... >> 15
1439
- // {
1440
- // new ConstantInstruction(InstructionConstants.OP_LDC, I_32768),
1441
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1442
- // },{
1443
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1444
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1445
- // },
1446
- // },
1447
- // { // ... / 65536 = ... >> 16
1448
- // {
1449
- // new ConstantInstruction(InstructionConstants.OP_LDC, I_65536),
1450
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1451
- // },{
1452
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1453
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1454
- // },
1455
- // },
1456
- // { // ... / 16777216 = ... >> 24
1457
- // {
1458
- // new ConstantInstruction(InstructionConstants.OP_LDC, I_16777216),
1459
- // new SimpleInstruction(InstructionConstants.OP_IDIV),
1460
- // },{
1461
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1462
- // new SimpleInstruction(InstructionConstants.OP_ISHR),
1463
- // },
1464
- // },
1465
- { // ... / -1L = -...
1466
- {
1467
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
1468
- new SimpleInstruction(InstructionConstants.OP_LDIV),
1469
- },{
1470
- new SimpleInstruction(InstructionConstants.OP_LNEG),
1471
- },
1472
- },
1473
- { // ... / 1L = ...
1474
- {
1475
- new SimpleInstruction(InstructionConstants.OP_LCONST_1),
1476
- new SimpleInstruction(InstructionConstants.OP_LDIV),
1477
- },{
1478
- // Nothing.
1479
- },
1480
- },
1481
- // Not valid for negative values.
1482
- // { // ... / 2L = ... >> 1
1483
- // {
1484
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2),
1485
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1486
- // },{
1487
- // new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1488
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1489
- // },
1490
- // },
1491
- // { // ... / 4L = ... >> 2
1492
- // {
1493
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4),
1494
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1495
- // },{
1496
- // new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1497
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1498
- // },
1499
- // },
1500
- // { // ... / 8L = ... >> 3
1501
- // {
1502
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8),
1503
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1504
- // },{
1505
- // new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1506
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1507
- // },
1508
- // },
1509
- // { // ... / 16L = ... >> 4
1510
- // {
1511
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16),
1512
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1513
- // },{
1514
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 4),
1515
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1516
- // },
1517
- // },
1518
- // { // ... / 32L = ... >> 5
1519
- // {
1520
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32),
1521
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1522
- // },{
1523
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 5),
1524
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1525
- // },
1526
- // },
1527
- // { // ... / 64L = ... >> 6
1528
- // {
1529
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_64),
1530
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1531
- // },{
1532
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 6),
1533
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1534
- // },
1535
- // },
1536
- // { // ... / 128L = ... >> 7
1537
- // {
1538
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_128),
1539
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1540
- // },{
1541
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 7),
1542
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1543
- // },
1544
- // },
1545
- // { // ... / 256L = ... >> 8
1546
- // {
1547
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_256),
1548
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1549
- // },{
1550
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1551
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1552
- // },
1553
- // },
1554
- // { // ... / 512L = ... >> 9
1555
- // {
1556
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_512),
1557
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1558
- // },{
1559
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 9),
1560
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1561
- // },
1562
- // },
1563
- // { // ... / 1024L = ... >> 10
1564
- // {
1565
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_1024),
1566
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1567
- // },{
1568
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 10),
1569
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1570
- // },
1571
- // },
1572
- // { // ... / 2048L = ... >> 11
1573
- // {
1574
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_2048),
1575
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1576
- // },{
1577
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 11),
1578
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1579
- // },
1580
- // },
1581
- // { // ... / 4096L = ... >> 12
1582
- // {
1583
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4096),
1584
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1585
- // },{
1586
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 12),
1587
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1588
- // },
1589
- // },
1590
- // { // ... / 8192L = ... >> 13
1591
- // {
1592
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_8192),
1593
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1594
- // },{
1595
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 13),
1596
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1597
- // },
1598
- // },
1599
- // { // ... / 16384L = ... >> 14
1600
- // {
1601
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16384),
1602
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1603
- // },{
1604
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 14),
1605
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1606
- // },
1607
- // },
1608
- // { // ... / 32768L = ... >> 15
1609
- // {
1610
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_32768),
1611
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1612
- // },{
1613
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 15),
1614
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1615
- // },
1616
- // },
1617
- // { // ... / 65536LL = ... >> 16
1618
- // {
1619
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_65536),
1620
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1621
- // },{
1622
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1623
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1624
- // },
1625
- // },
1626
- // { // ... / 16777216L = ... >> 24
1627
- // {
1628
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_16777216),
1629
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1630
- // },{
1631
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
1632
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1633
- // },
1634
- // },
1635
- // { // ... / 4294967296L = ... >> 32
1636
- // {
1637
- // new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_4294967296),
1638
- // new SimpleInstruction(InstructionConstants.OP_LDIV),
1639
- // },{
1640
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1641
- // new SimpleInstruction(InstructionConstants.OP_LSHR),
1642
- // },
1643
- // },
1644
- { // ... / -1f = -...
1645
- {
1646
- new ConstantInstruction(InstructionConstants.OP_LDC, F_M1),
1647
- new SimpleInstruction(InstructionConstants.OP_FDIV),
1648
- },{
1649
- new SimpleInstruction(InstructionConstants.OP_FNEG),
1650
- },
1651
- },
1652
- { // ... / 1f = ...
1653
- {
1654
- new SimpleInstruction(InstructionConstants.OP_FCONST_1),
1655
- new SimpleInstruction(InstructionConstants.OP_FDIV),
1656
- },{
1657
- // Nothing.
1658
- },
1659
- },
1660
- { // ... / -1d = -...
1661
- {
1662
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, D_M1),
1663
- new SimpleInstruction(InstructionConstants.OP_DDIV),
1664
- },{
1665
- new SimpleInstruction(InstructionConstants.OP_DNEG),
1666
- },
1667
- },
1668
- { // ... / 1d = ...
1669
- {
1670
- new SimpleInstruction(InstructionConstants.OP_DCONST_1),
1671
- new SimpleInstruction(InstructionConstants.OP_DDIV),
1672
- },{
1673
- // Nothing.
1674
- },
1675
- },
1676
- { // ... % 1 = 0
1677
- {
1678
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1679
- new SimpleInstruction(InstructionConstants.OP_IREM),
1680
- },{
1681
- new SimpleInstruction(InstructionConstants.OP_POP),
1682
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1683
- },
1684
- },
1685
- // Not valid for negative values.
1686
- // { // ... % 2 = ... & 0x1
1687
- // {
1688
- // new SimpleInstruction(InstructionConstants.OP_ICONST_2),
1689
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1690
- // },{
1691
- // new SimpleInstruction(InstructionConstants.OP_ICONST_1),
1692
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1693
- // },
1694
- // },
1695
- // { // ... % 4 = ... & 0x3
1696
- // {
1697
- // new SimpleInstruction(InstructionConstants.OP_ICONST_4),
1698
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1699
- // },{
1700
- // new SimpleInstruction(InstructionConstants.OP_ICONST_3),
1701
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1702
- // },
1703
- // },
1704
- // { // ... % 8 = ... & 0x07
1705
- // {
1706
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
1707
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1708
- // },{
1709
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x07),
1710
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1711
- // },
1712
- // },
1713
- // { // ... % 16 = ... & 0x0f
1714
- // {
1715
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
1716
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1717
- // },{
1718
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x0f),
1719
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1720
- // },
1721
- // },
1722
- // { // ... % 32 = ... & 0x1f
1723
- // {
1724
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
1725
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1726
- // },{
1727
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x1f),
1728
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1729
- // },
1730
- // },
1731
- // { // ... % 64 = ... & 0x3f
1732
- // {
1733
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 64),
1734
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1735
- // },{
1736
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x3f),
1737
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1738
- // },
1739
- // },
1740
- // { // ... % 128 = ... & 0x7f
1741
- // {
1742
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 128),
1743
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1744
- // },{
1745
- // new SimpleInstruction(InstructionConstants.OP_BIPUSH, 0x7f),
1746
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1747
- // },
1748
- // },
1749
- // { // ... % 256 = ... & 0x00ff
1750
- // {
1751
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 256),
1752
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1753
- // },{
1754
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x00ff),
1755
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1756
- // },
1757
- // },
1758
- // { // ... % 512 = ... & 0x01ff
1759
- // {
1760
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 512),
1761
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1762
- // },{
1763
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x01ff),
1764
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1765
- // },
1766
- // },
1767
- // { // ... % 1024 = ... & 0x03ff
1768
- // {
1769
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 1024),
1770
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1771
- // },{
1772
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x03ff),
1773
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1774
- // },
1775
- // },
1776
- // { // ... % 2048 = ... & 0x07ff
1777
- // {
1778
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 2048),
1779
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1780
- // },{
1781
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x07ff),
1782
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1783
- // },
1784
- // },
1785
- // { // ... % 4096 = ... & 0x0fff
1786
- // {
1787
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 4096),
1788
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1789
- // },{
1790
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x0fff),
1791
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1792
- // },
1793
- // },
1794
- // { // ... % 8192 = ... & 0x1fff
1795
- // {
1796
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 8192),
1797
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1798
- // },{
1799
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x1fff),
1800
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1801
- // },
1802
- // },
1803
- // { // ... % 16384 = ... & 0x3fff
1804
- // {
1805
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 16384),
1806
- // new SimpleInstruction(InstructionConstants.OP_IREM),
1807
- // },{
1808
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0x3fff),
1809
- // new SimpleInstruction(InstructionConstants.OP_IAND),
1810
- // },
1811
- // },
1812
- { // ... % 1L = 0L
1813
- {
1814
- new SimpleInstruction(InstructionConstants.OP_LCONST_1),
1815
- new SimpleInstruction(InstructionConstants.OP_LREM),
1816
- },{
1817
- new SimpleInstruction(InstructionConstants.OP_POP2),
1818
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1819
- },
1820
- },
1821
- // { // ... % 1f = 0f
1822
- // {
1823
- // new SimpleInstruction(InstructionConstants.OP_FCONST_1),
1824
- // new SimpleInstruction(InstructionConstants.OP_FREM),
1825
- // },{
1826
- // new SimpleInstruction(InstructionConstants.OP_POP),
1827
- // new SimpleInstruction(InstructionConstants.OP_FCONST_0),
1828
- // },
1829
- // },
1830
- // { // ... % 1d = 0d
1831
- // {
1832
- // new SimpleInstruction(InstructionConstants.OP_DCONST_1),
1833
- // new SimpleInstruction(InstructionConstants.OP_DREM),
1834
- // },{
1835
- // new SimpleInstruction(InstructionConstants.OP_POP2),
1836
- // new SimpleInstruction(InstructionConstants.OP_DCONST_0),
1837
- // },
1838
- // },
1839
- { // -(-...) = ...
1840
- {
1841
- new SimpleInstruction(InstructionConstants.OP_INEG),
1842
- new SimpleInstruction(InstructionConstants.OP_INEG),
1843
- },{
1844
- // Nothing.
1845
- },
1846
- },
1847
- { // -(-...) = ...
1848
- {
1849
- new SimpleInstruction(InstructionConstants.OP_LNEG),
1850
- new SimpleInstruction(InstructionConstants.OP_LNEG),
1851
- },{
1852
- // Nothing.
1853
- },
1854
- },
1855
- { // -(-...) = ...
1856
- {
1857
- new SimpleInstruction(InstructionConstants.OP_FNEG),
1858
- new SimpleInstruction(InstructionConstants.OP_FNEG),
1859
- },{
1860
- // Nothing.
1861
- },
1862
- },
1863
- { // -(-...) = ...
1864
- {
1865
- new SimpleInstruction(InstructionConstants.OP_DNEG),
1866
- new SimpleInstruction(InstructionConstants.OP_DNEG),
1867
- },{
1868
- // Nothing.
1869
- },
1870
- },
1871
- { // +(-...) = -...
1872
- {
1873
- new SimpleInstruction(InstructionConstants.OP_INEG),
1874
- new SimpleInstruction(InstructionConstants.OP_IADD),
1875
- },{
1876
- new SimpleInstruction(InstructionConstants.OP_ISUB),
1877
- },
1878
- },
1879
- { // +(-...) = -...
1880
- {
1881
- new SimpleInstruction(InstructionConstants.OP_LNEG),
1882
- new SimpleInstruction(InstructionConstants.OP_LADD),
1883
- },{
1884
- new SimpleInstruction(InstructionConstants.OP_LSUB),
1885
- },
1886
- },
1887
- { // +(-...) = -...
1888
- {
1889
- new SimpleInstruction(InstructionConstants.OP_FNEG),
1890
- new SimpleInstruction(InstructionConstants.OP_FADD),
1891
- },{
1892
- new SimpleInstruction(InstructionConstants.OP_FSUB),
1893
- },
1894
- },
1895
- { // +(-...) = -...
1896
- {
1897
- new SimpleInstruction(InstructionConstants.OP_DNEG),
1898
- new SimpleInstruction(InstructionConstants.OP_DADD),
1899
- },{
1900
- new SimpleInstruction(InstructionConstants.OP_DSUB),
1901
- },
1902
- },
1903
- { // ... << 0 = ...
1904
- {
1905
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1906
- new SimpleInstruction(InstructionConstants.OP_ISHL),
1907
- },{
1908
- // Nothing.
1909
- },
1910
- },
1911
- { // ... << 0 = ...
1912
- {
1913
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1914
- new SimpleInstruction(InstructionConstants.OP_LSHL),
1915
- },{
1916
- // Nothing.
1917
- },
1918
- },
1919
- { // ... >> 0 = ...
1920
- {
1921
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1922
- new SimpleInstruction(InstructionConstants.OP_ISHR),
1923
- },{
1924
- // Nothing.
1925
- },
1926
- },
1927
- { // ... >> 0 = ...
1928
- {
1929
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1930
- new SimpleInstruction(InstructionConstants.OP_LSHR),
1931
- },{
1932
- // Nothing.
1933
- },
1934
- },
1935
- { // ... >>> 0 = ...
1936
- {
1937
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1938
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
1939
- },{
1940
- // Nothing.
1941
- },
1942
- },
1943
- { // ... >>> 0 = ...
1944
- {
1945
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1946
- new SimpleInstruction(InstructionConstants.OP_LUSHR),
1947
- },{
1948
- // Nothing.
1949
- },
1950
- },
1951
- { // ... & -1 = ...
1952
- {
1953
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
1954
- new SimpleInstruction(InstructionConstants.OP_IAND),
1955
- },{
1956
- // Nothing.
1957
- },
1958
- },
1959
- { // ... & 0 = 0
1960
- {
1961
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1962
- new SimpleInstruction(InstructionConstants.OP_IAND),
1963
- },{
1964
- new SimpleInstruction(InstructionConstants.OP_POP),
1965
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1966
- },
1967
- },
1968
- { // ... & -1L = ...
1969
- {
1970
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
1971
- new SimpleInstruction(InstructionConstants.OP_LAND),
1972
- },{
1973
- // Nothing.
1974
- },
1975
- },
1976
- { // ... & 0L = 0L
1977
- {
1978
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1979
- new SimpleInstruction(InstructionConstants.OP_LAND),
1980
- },{
1981
- new SimpleInstruction(InstructionConstants.OP_POP2),
1982
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
1983
- },
1984
- },
1985
- { // ... | -1 = -1
1986
- {
1987
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
1988
- new SimpleInstruction(InstructionConstants.OP_IOR),
1989
- },{
1990
- new SimpleInstruction(InstructionConstants.OP_POP),
1991
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
1992
- },
1993
- },
1994
- { // ... | 0 = ...
1995
- {
1996
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
1997
- new SimpleInstruction(InstructionConstants.OP_IOR),
1998
- },{
1999
- // Nothing.
2000
- },
2001
- },
2002
- { // ... | -1L = -1L
2003
- {
2004
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
2005
- new SimpleInstruction(InstructionConstants.OP_LAND),
2006
- },{
2007
- new SimpleInstruction(InstructionConstants.OP_POP2),
2008
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_M1),
2009
- },
2010
- },
2011
- { // ... | 0L = ...
2012
- {
2013
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
2014
- new SimpleInstruction(InstructionConstants.OP_LOR),
2015
- },{
2016
- // Nothing.
2017
- },
2018
- },
2019
- { // ... ^ 0 = ...
2020
- {
2021
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2022
- new SimpleInstruction(InstructionConstants.OP_IXOR),
2023
- },{
2024
- // Nothing.
2025
- },
2026
- },
2027
- { // ... ^ 0L = ...
2028
- {
2029
- new SimpleInstruction(InstructionConstants.OP_LCONST_0),
2030
- new SimpleInstruction(InstructionConstants.OP_LXOR),
2031
- },{
2032
- // Nothing.
2033
- },
2034
- },
2035
- { // (... & 0x0000ff00) >> 8 = (... >> 8) & 0xff
2036
- {
2037
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ff00),
2038
- new SimpleInstruction(InstructionConstants.OP_IAND),
2039
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2040
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2041
- },{
2042
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2043
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2044
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2045
- new SimpleInstruction(InstructionConstants.OP_IAND),
2046
- },
2047
- },
2048
- { // (... & 0x0000ff00) >>> 8 = (... >>> 8) & 0xff
2049
- {
2050
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ff00),
2051
- new SimpleInstruction(InstructionConstants.OP_IAND),
2052
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2053
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2054
- },{
2055
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 8),
2056
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2057
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2058
- new SimpleInstruction(InstructionConstants.OP_IAND),
2059
- },
2060
- },
2061
- { // (... & 0x00ff0000) >> 16 = (... >> 16) & 0xff
2062
- {
2063
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0x00ff0000),
2064
- new SimpleInstruction(InstructionConstants.OP_IAND),
2065
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2066
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2067
- },{
2068
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2069
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2070
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2071
- new SimpleInstruction(InstructionConstants.OP_IAND),
2072
- },
2073
- },
2074
- { // (... & 0x00ff0000) >>> 16 = (... >>> 16) & 0xff
2075
- {
2076
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0x00ff0000),
2077
- new SimpleInstruction(InstructionConstants.OP_IAND),
2078
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2079
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2080
- },{
2081
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2082
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2083
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2084
- new SimpleInstruction(InstructionConstants.OP_IAND),
2085
- },
2086
- },
2087
- { // (... & 0xff000000) >> 24 = ... >> 24
2088
- {
2089
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0xff000000),
2090
- new SimpleInstruction(InstructionConstants.OP_IAND),
2091
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2092
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2093
- },{
2094
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2095
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2096
- },
2097
- },
2098
- { // (... & 0xffff0000) >> 16 = ... >> 16
2099
- {
2100
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0xffff0000),
2101
- new SimpleInstruction(InstructionConstants.OP_IAND),
2102
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2103
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2104
- },{
2105
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2106
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2107
- },
2108
- },
2109
- { // (... & 0xffff0000) >>> 16 = ... >>> 16
2110
- {
2111
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0xffff0000),
2112
- new SimpleInstruction(InstructionConstants.OP_IAND),
2113
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2114
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2115
- },{
2116
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2117
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2118
- },
2119
- },
2120
- { // (... >> 24) & 0xff = ... >>> 24
2121
- {
2122
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2123
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2124
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2125
- new SimpleInstruction(InstructionConstants.OP_IAND),
2126
- },{
2127
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2128
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2129
- },
2130
- },
2131
- { // (... >>> 24) & 0xff = ... >>> 24
2132
- {
2133
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2134
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2135
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2136
- new SimpleInstruction(InstructionConstants.OP_IAND),
2137
- },{
2138
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2139
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2140
- },
2141
- },
2142
- { // (byte)(... & 0x000000ff) = (byte)...
2143
- {
2144
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, 0xff),
2145
- new SimpleInstruction(InstructionConstants.OP_IAND),
2146
- new SimpleInstruction(InstructionConstants.OP_I2B),
2147
- },{
2148
- new SimpleInstruction(InstructionConstants.OP_I2B),
2149
- },
2150
- },
2151
- { // (char)(... & 0x0000ffff) = (char)...
2152
- {
2153
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ffff),
2154
- new SimpleInstruction(InstructionConstants.OP_IAND),
2155
- new SimpleInstruction(InstructionConstants.OP_I2C),
2156
- },{
2157
- new SimpleInstruction(InstructionConstants.OP_I2C),
2158
- },
2159
- },
2160
- { // (short)(... & 0x0000ffff) = (short)...
2161
- {
2162
- new ConstantInstruction(InstructionConstants.OP_LDC, I_0x0000ffff),
2163
- new SimpleInstruction(InstructionConstants.OP_IAND),
2164
- new SimpleInstruction(InstructionConstants.OP_I2S),
2165
- },{
2166
- new SimpleInstruction(InstructionConstants.OP_I2S),
2167
- },
2168
- },
2169
- { // (byte)(... >> 24) = ... >> 24
2170
- {
2171
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2172
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2173
- new SimpleInstruction(InstructionConstants.OP_I2B),
2174
- },{
2175
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2176
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2177
- },
2178
- },
2179
- { // (byte)(... >>> 24) = ... >> 24
2180
- {
2181
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2182
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2183
- new SimpleInstruction(InstructionConstants.OP_I2B),
2184
- },{
2185
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2186
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2187
- },
2188
- },
2189
- { // (char)(... >> 16) = ... >>> 16
2190
- {
2191
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2192
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2193
- new SimpleInstruction(InstructionConstants.OP_I2C),
2194
- },{
2195
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2196
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2197
- },
2198
- },
2199
- { // (char)(... >>> 16) = ... >>> 16
2200
- {
2201
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2202
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2203
- new SimpleInstruction(InstructionConstants.OP_I2C),
2204
- },{
2205
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2206
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2207
- },
2208
- },
2209
- { // (short)(... >> 16) = ... >> 16
2210
- {
2211
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2212
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2213
- new SimpleInstruction(InstructionConstants.OP_I2S),
2214
- },{
2215
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2216
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2217
- },
2218
- },
2219
- { // (short)(... >>> 16) = ... >> 16
2220
- {
2221
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2222
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2223
- new SimpleInstruction(InstructionConstants.OP_I2S),
2224
- },{
2225
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2226
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2227
- },
2228
- },
2229
- { // ... << 24 >> 24 = (byte)...
2230
- {
2231
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2232
- new SimpleInstruction(InstructionConstants.OP_ISHL),
2233
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 24),
2234
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2235
- },{
2236
- new SimpleInstruction(InstructionConstants.OP_I2B),
2237
- },
2238
- },
2239
- { // ... << 16 >>> 16 = (char)...
2240
- {
2241
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2242
- new SimpleInstruction(InstructionConstants.OP_ISHL),
2243
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2244
- new SimpleInstruction(InstructionConstants.OP_IUSHR),
2245
- },{
2246
- new SimpleInstruction(InstructionConstants.OP_I2C),
2247
- },
2248
- },
2249
- { // ... << 16 >> 16 = (short)...
2250
- {
2251
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2252
- new SimpleInstruction(InstructionConstants.OP_ISHL),
2253
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 16),
2254
- new SimpleInstruction(InstructionConstants.OP_ISHR),
2255
- },{
2256
- new SimpleInstruction(InstructionConstants.OP_I2S),
2257
- },
2258
- },
2259
- { // ... << 32 >> 32 = (long)(int)...
2260
- {
2261
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2262
- new SimpleInstruction(InstructionConstants.OP_LSHL),
2263
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2264
- new SimpleInstruction(InstructionConstants.OP_LSHR),
2265
- },{
2266
- new SimpleInstruction(InstructionConstants.OP_L2I),
2267
- new SimpleInstruction(InstructionConstants.OP_I2L),
2268
- },
2269
- },
2270
- { // (int)(... & 0x00000000ffffffffL) = (int)...
2271
- {
2272
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_0x00000000ffffffff),
2273
- new SimpleInstruction(InstructionConstants.OP_LAND),
2274
- new SimpleInstruction(InstructionConstants.OP_L2I),
2275
- },{
2276
- new SimpleInstruction(InstructionConstants.OP_L2I),
2277
- },
2278
- },
2279
- { // (... & 0xffffffff00000000L) >> 32 = ... >> 32
2280
- {
2281
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_0xffffffff00000000),
2282
- new SimpleInstruction(InstructionConstants.OP_LAND),
2283
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2284
- new SimpleInstruction(InstructionConstants.OP_LSHR),
2285
- },{
2286
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2287
- new SimpleInstruction(InstructionConstants.OP_LSHR),
2288
- },
2289
- },
2290
- { // (... & 0xffffffff00000000L) >>> 32 = ... >>> 32
2291
- {
2292
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, L_0xffffffff00000000),
2293
- new SimpleInstruction(InstructionConstants.OP_LAND),
2294
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2295
- new SimpleInstruction(InstructionConstants.OP_LUSHR),
2296
- },{
2297
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, 32),
2298
- new SimpleInstruction(InstructionConstants.OP_LUSHR),
2299
- },
2300
- },
2301
- { // ... += 0 = nothing
2302
- {
2303
- new VariableInstruction(InstructionConstants.OP_IINC, X, 0),
2304
- },{
2305
- // Nothing.
2306
- },
2307
- },
2308
- };
2309
-
2310
- public static final Instruction[][][] FIELD = new Instruction[][][]
2311
- {
2312
- { // getfield/putfield = nothing
2313
- {
2314
- new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2315
- new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2316
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Y),
2317
- new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2318
- },{
2319
- // Nothing.
2320
- },
2321
- },
2322
- // { // putfield_L/putfield_L = pop2_x1/putfield
2323
- // {
2324
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2325
- // // ...
2326
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2327
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2328
- // // ...
2329
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2330
- // },{
2331
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2332
- // // ...
2333
- // new SimpleInstruction(InstructionConstants.OP_POP2),
2334
- // // ...
2335
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2336
- // },
2337
- // },
2338
- // { // putfield_D/putfield_D = pop2_x1/putfield
2339
- // {
2340
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2341
- // // ...
2342
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2343
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2344
- // // ...
2345
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2346
- // },{
2347
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2348
- // // ...
2349
- // new SimpleInstruction(InstructionConstants.OP_POP2),
2350
- // // ...
2351
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2352
- // },
2353
- // },
2354
- // { // putfield/putfield = pop_x1/putfield
2355
- // {
2356
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2357
- // // ...
2358
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2359
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2360
- // // ...
2361
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2362
- // },{
2363
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2364
- // // ...
2365
- // new SimpleInstruction(InstructionConstants.OP_POP),
2366
- // // ...
2367
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2368
- // },
2369
- // },
2370
- // { // putfield_L/getfield_L = dup2_x1/putfield
2371
- // {
2372
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2373
- // // ...
2374
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2375
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2376
- // new ConstantInstruction(InstructionConstants.OP_GETFIELD, FIELD_L),
2377
- // },{
2378
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2379
- // // ...
2380
- // new SimpleInstruction(InstructionConstants.OP_DUP2_X1),
2381
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_L),
2382
- // },
2383
- // },
2384
- // { // putfield_D/getfield_D = dup2_x1/putfield
2385
- // {
2386
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2387
- // // ...
2388
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2389
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2390
- // new ConstantInstruction(InstructionConstants.OP_GETFIELD, FIELD_D),
2391
- // },{
2392
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2393
- // // ...
2394
- // new SimpleInstruction(InstructionConstants.OP_DUP2_X1),
2395
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, FIELD_D),
2396
- // },
2397
- // },
2398
- // { // putfield/getfield = dup_x1/putfield
2399
- // {
2400
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2401
- // // ...
2402
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2403
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2404
- // new ConstantInstruction(InstructionConstants.OP_GETFIELD, Y),
2405
- // },{
2406
- // new VariableInstruction(InstructionConstants.OP_ALOAD, X),
2407
- // // ...
2408
- // new SimpleInstruction(InstructionConstants.OP_DUP_X1),
2409
- // new ConstantInstruction(InstructionConstants.OP_PUTFIELD, Y),
2410
- // },
2411
- // },
2412
- { // getstatic/putstatic = nothing
2413
- {
2414
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, X),
2415
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2416
- },{
2417
- // Nothing.
2418
- },
2419
- },
2420
- { // putstatic_L/putstatic_L = pop2/putstatic
2421
- {
2422
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2423
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2424
- },{
2425
- new SimpleInstruction(InstructionConstants.OP_POP2),
2426
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2427
- },
2428
- },
2429
- { // putstatic_D/putstatic_D = pop2/putstatic
2430
- {
2431
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2432
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2433
- },{
2434
- new SimpleInstruction(InstructionConstants.OP_POP2),
2435
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2436
- },
2437
- },
2438
- { // putstatic/putstatic = pop/putstatic
2439
- {
2440
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2441
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2442
- },{
2443
- new SimpleInstruction(InstructionConstants.OP_POP),
2444
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2445
- },
2446
- },
2447
- { // putstatic_L/getstatic_L = dup2/putstatic
2448
- {
2449
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2450
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, FIELD_L),
2451
- },{
2452
- new SimpleInstruction(InstructionConstants.OP_DUP2),
2453
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_L),
2454
- },
2455
- },
2456
- { // putstatic_D/getstatic_D = dup2/putstatic
2457
- {
2458
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2459
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, FIELD_D),
2460
- },{
2461
- new SimpleInstruction(InstructionConstants.OP_DUP2),
2462
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, FIELD_D),
2463
- },
2464
- },
2465
- { // putstatic/getstatic = dup/putstatic
2466
- {
2467
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2468
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, X),
2469
- },{
2470
- new SimpleInstruction(InstructionConstants.OP_DUP),
2471
- new ConstantInstruction(InstructionConstants.OP_PUTSTATIC, X),
2472
- },
2473
- },
2474
- };
2475
-
2476
- public static final Instruction[][][] CAST = new Instruction[][][]
2477
- {
2478
- { // (byte)(byte)... = (byte)...
2479
- {
2480
- new SimpleInstruction(InstructionConstants.OP_I2B),
2481
- new SimpleInstruction(InstructionConstants.OP_I2B),
2482
- },{
2483
- new SimpleInstruction(InstructionConstants.OP_I2B),
2484
- },
2485
- },
2486
- { // (byte)(char)... = (byte)...
2487
- {
2488
- new SimpleInstruction(InstructionConstants.OP_I2C),
2489
- new SimpleInstruction(InstructionConstants.OP_I2B),
2490
- },{
2491
- new SimpleInstruction(InstructionConstants.OP_I2B),
2492
- },
2493
- },
2494
- { // (byte)(short)... = (byte)...
2495
- {
2496
- new SimpleInstruction(InstructionConstants.OP_I2S),
2497
- new SimpleInstruction(InstructionConstants.OP_I2B),
2498
- },{
2499
- new SimpleInstruction(InstructionConstants.OP_I2B),
2500
- },
2501
- },
2502
- { // (char)(char)... = (char)...
2503
- {
2504
- new SimpleInstruction(InstructionConstants.OP_I2C),
2505
- new SimpleInstruction(InstructionConstants.OP_I2C),
2506
- },{
2507
- new SimpleInstruction(InstructionConstants.OP_I2C),
2508
- },
2509
- },
2510
- { // (char)(short)... = (char)...
2511
- {
2512
- new SimpleInstruction(InstructionConstants.OP_I2S),
2513
- new SimpleInstruction(InstructionConstants.OP_I2C),
2514
- },{
2515
- new SimpleInstruction(InstructionConstants.OP_I2C),
2516
- },
2517
- },
2518
- { // (short)(byte)... = (byte)...
2519
- {
2520
- new SimpleInstruction(InstructionConstants.OP_I2B),
2521
- new SimpleInstruction(InstructionConstants.OP_I2S),
2522
- },{
2523
- new SimpleInstruction(InstructionConstants.OP_I2B),
2524
- },
2525
- },
2526
- { // (short)(char)... = (short)...
2527
- {
2528
- new SimpleInstruction(InstructionConstants.OP_I2C),
2529
- new SimpleInstruction(InstructionConstants.OP_I2S),
2530
- },{
2531
- new SimpleInstruction(InstructionConstants.OP_I2S),
2532
- },
2533
- },
2534
- { // (short)(short)... = (short)...
2535
- {
2536
- new SimpleInstruction(InstructionConstants.OP_I2S),
2537
- new SimpleInstruction(InstructionConstants.OP_I2S),
2538
- },{
2539
- new SimpleInstruction(InstructionConstants.OP_I2S),
2540
- },
2541
- },
2542
- { // (int)(long)... = ...
2543
- {
2544
- new SimpleInstruction(InstructionConstants.OP_I2L),
2545
- new SimpleInstruction(InstructionConstants.OP_L2I),
2546
- },{
2547
- // Nothing.
2548
- },
2549
- },
2550
- { // (X)(X)... = (X)...
2551
- {
2552
- new ConstantInstruction(InstructionConstants.OP_CHECKCAST, X),
2553
- new ConstantInstruction(InstructionConstants.OP_CHECKCAST, X),
2554
- },{
2555
- new ConstantInstruction(InstructionConstants.OP_CHECKCAST, X),
2556
- },
2557
- },
2558
- // Not handled correctly in all cases by VMs prior to Java 6...
2559
- // { // (byte)bytes[...] = bytes[...]
2560
- // {
2561
- // new SimpleInstruction(InstructionConstants.OP_BALOAD),
2562
- // new SimpleInstruction(InstructionConstants.OP_I2B),
2563
- // },{
2564
- // new SimpleInstruction(InstructionConstants.OP_BALOAD),
2565
- // },
2566
- // },
2567
- // { // (short)bytes[...] = bytes[...]
2568
- // {
2569
- // new SimpleInstruction(InstructionConstants.OP_BALOAD),
2570
- // new SimpleInstruction(InstructionConstants.OP_I2S),
2571
- // },{
2572
- // new SimpleInstruction(InstructionConstants.OP_BALOAD),
2573
- // },
2574
- // },
2575
- // { // (char)chars[...] = chars[...]
2576
- // {
2577
- // new SimpleInstruction(InstructionConstants.OP_CALOAD),
2578
- // new SimpleInstruction(InstructionConstants.OP_I2C),
2579
- // },{
2580
- // new SimpleInstruction(InstructionConstants.OP_CALOAD),
2581
- // },
2582
- // },
2583
- // { // (short)shorts[...] = shorts[...]
2584
- // {
2585
- // new SimpleInstruction(InstructionConstants.OP_SALOAD),
2586
- // new SimpleInstruction(InstructionConstants.OP_I2S),
2587
- // },{
2588
- // new SimpleInstruction(InstructionConstants.OP_SALOAD),
2589
- // },
2590
- // },
2591
- // { // bytes[...] = (byte)... = bytes[...] = ...
2592
- // {
2593
- // new SimpleInstruction(InstructionConstants.OP_I2B),
2594
- // new SimpleInstruction(InstructionConstants.OP_BASTORE),
2595
- // },{
2596
- // new SimpleInstruction(InstructionConstants.OP_BASTORE),
2597
- // },
2598
- // },
2599
- // { // chars[...] = (char)... = chars[...] = ...
2600
- // {
2601
- // new SimpleInstruction(InstructionConstants.OP_I2C),
2602
- // new SimpleInstruction(InstructionConstants.OP_CASTORE),
2603
- // },{
2604
- // new SimpleInstruction(InstructionConstants.OP_CASTORE),
2605
- // },
2606
- // },
2607
- // { // shorts[...] = (short)... = shorts[...] = ...
2608
- // {
2609
- // new SimpleInstruction(InstructionConstants.OP_I2S),
2610
- // new SimpleInstruction(InstructionConstants.OP_SASTORE),
2611
- // },{
2612
- // new SimpleInstruction(InstructionConstants.OP_SASTORE),
2613
- // },
2614
- // },
2615
- };
2616
-
2617
- public static final Instruction[][][] BRANCH = new Instruction[][][]
2618
- {
2619
- { // goto +3 = nothing
2620
- {
2621
- new BranchInstruction(InstructionConstants.OP_GOTO, 3),
2622
- },{
2623
- // Nothing.
2624
- },
2625
- },
2626
- { // ifeq +3 = pop
2627
- {
2628
- new BranchInstruction(InstructionConstants.OP_IFEQ, 3),
2629
- },{
2630
- new SimpleInstruction(InstructionConstants.OP_POP),
2631
- },
2632
- },
2633
- { // ifne +3 = pop
2634
- {
2635
- new BranchInstruction(InstructionConstants.OP_IFNE, 3),
2636
- },{
2637
- new SimpleInstruction(InstructionConstants.OP_POP),
2638
- },
2639
- },
2640
- { // iflt +3 = pop
2641
- {
2642
- new BranchInstruction(InstructionConstants.OP_IFLT, 3),
2643
- },{
2644
- new SimpleInstruction(InstructionConstants.OP_POP),
2645
- },
2646
- },
2647
- { // ifge +3 = pop
2648
- {
2649
- new BranchInstruction(InstructionConstants.OP_IFGE, 3),
2650
- },{
2651
- new SimpleInstruction(InstructionConstants.OP_POP),
2652
- },
2653
- },
2654
- { // ifgt +3 = pop
2655
- {
2656
- new BranchInstruction(InstructionConstants.OP_IFGT, 3),
2657
- },{
2658
- new SimpleInstruction(InstructionConstants.OP_POP),
2659
- },
2660
- },
2661
- { // ifle +3 = pop
2662
- {
2663
- new BranchInstruction(InstructionConstants.OP_IFLE, 3),
2664
- },{
2665
- new SimpleInstruction(InstructionConstants.OP_POP),
2666
- },
2667
- },
2668
- { // ificmpeq +3 = pop2
2669
- {
2670
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, 3),
2671
- },{
2672
- new SimpleInstruction(InstructionConstants.OP_POP2),
2673
- },
2674
- },
2675
- { // ificmpne +3 = pop2
2676
- {
2677
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, 3),
2678
- },{
2679
- new SimpleInstruction(InstructionConstants.OP_POP2),
2680
- },
2681
- },
2682
- { // ificmplt +3 = pop2
2683
- {
2684
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, 3),
2685
- },{
2686
- new SimpleInstruction(InstructionConstants.OP_POP2),
2687
- },
2688
- },
2689
- { // ificmpge +3 = pop2
2690
- {
2691
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, 3),
2692
- },{
2693
- new SimpleInstruction(InstructionConstants.OP_POP2),
2694
- },
2695
- },
2696
- { // ificmpgt +3 = pop2
2697
- {
2698
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, 3),
2699
- },{
2700
- new SimpleInstruction(InstructionConstants.OP_POP2),
2701
- },
2702
- },
2703
- { // ificmple +3 = pop2
2704
- {
2705
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, 3),
2706
- },{
2707
- new SimpleInstruction(InstructionConstants.OP_POP2),
2708
- },
2709
- },
2710
- { // ifacmpeq +3 = pop2
2711
- {
2712
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, 3),
2713
- },{
2714
- new SimpleInstruction(InstructionConstants.OP_POP2),
2715
- },
2716
- },
2717
- { // ifacmpne +3 = pop2
2718
- {
2719
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, 3),
2720
- },{
2721
- new SimpleInstruction(InstructionConstants.OP_POP2),
2722
- },
2723
- },
2724
- { // ifnull +3 = pop
2725
- {
2726
- new BranchInstruction(InstructionConstants.OP_IFNULL, 3),
2727
- },{
2728
- new SimpleInstruction(InstructionConstants.OP_POP),
2729
- },
2730
- },
2731
- { // ifnonnull +3 = pop
2732
- {
2733
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, 3),
2734
- },{
2735
- new SimpleInstruction(InstructionConstants.OP_POP),
2736
- },
2737
- },
2738
- { // if (... == 0) = ifeq
2739
- {
2740
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2741
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2742
- },{
2743
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2744
- },
2745
- },
2746
- { // if (0 == i) = iload/ifeq
2747
- {
2748
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2749
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2750
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2751
- },{
2752
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2753
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2754
- },
2755
- },
2756
- { // if (0 == i) = getstatic/ifeq
2757
- {
2758
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2759
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2760
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2761
- },{
2762
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2763
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2764
- },
2765
- },
2766
- { // if (0 == i) = getfield/ifeq
2767
- {
2768
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2769
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2770
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2771
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
2772
- },{
2773
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2774
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2775
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
2776
- },
2777
- },
2778
- { // if (... != 0) = ifne
2779
- {
2780
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2781
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2782
- },{
2783
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
2784
- },
2785
- },
2786
- { // if (0 != i) = iload/ifeq
2787
- {
2788
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2789
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2790
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2791
- },{
2792
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2793
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
2794
- },
2795
- },
2796
- { // if (0 != i) = getstatic/ifeq
2797
- {
2798
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2799
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2800
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2801
- },{
2802
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2803
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
2804
- },
2805
- },
2806
- { // if (0 != i) = getfield/ifeq
2807
- {
2808
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2809
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2810
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2811
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
2812
- },{
2813
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2814
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2815
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
2816
- },
2817
- },
2818
- { // if (... < 0) = iflt
2819
- {
2820
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2821
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
2822
- },{
2823
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
2824
- },
2825
- },
2826
- { // if (... < 1) = ifle
2827
- {
2828
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2829
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
2830
- },{
2831
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
2832
- },
2833
- },
2834
- { // if (0 > i) = iload/iflt
2835
- {
2836
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2837
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2838
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2839
- },{
2840
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2841
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
2842
- },
2843
- },
2844
- { // if (1 > i) = iload/ifle
2845
- {
2846
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2847
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2848
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2849
- },{
2850
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2851
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
2852
- },
2853
- },
2854
- { // if (0 > i) = getstatic/iflt
2855
- {
2856
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2857
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2858
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2859
- },{
2860
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2861
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
2862
- },
2863
- },
2864
- { // if (1 > i) = getstatic/ifle
2865
- {
2866
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2867
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2868
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2869
- },{
2870
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2871
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
2872
- },
2873
- },
2874
- { // if (0 > i) = getfield/iflt
2875
- {
2876
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2877
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2878
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2879
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2880
- },{
2881
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2882
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2883
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
2884
- },
2885
- },
2886
- { // if (1 > i) = getfield/ifle
2887
- {
2888
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2889
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2890
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2891
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2892
- },{
2893
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2894
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2895
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
2896
- },
2897
- },
2898
- { // if (... >= 0) = ifge
2899
- {
2900
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2901
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
2902
- },{
2903
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
2904
- },
2905
- },
2906
- { // if (... >= 1) = ifgt
2907
- {
2908
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2909
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
2910
- },{
2911
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
2912
- },
2913
- },
2914
- { // if (0 <= i) = iload/ifge
2915
- {
2916
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2917
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2918
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2919
- },{
2920
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2921
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
2922
- },
2923
- },
2924
- { // if (1 <= i) = iload/ifgt
2925
- {
2926
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2927
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2928
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2929
- },{
2930
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2931
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
2932
- },
2933
- },
2934
- { // if (0 <= i) = getstatic/ifge
2935
- {
2936
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2937
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2938
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2939
- },{
2940
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2941
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
2942
- },
2943
- },
2944
- { // if (1 <= i) = getstatic/ifgt
2945
- {
2946
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2947
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2948
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2949
- },{
2950
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
2951
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
2952
- },
2953
- },
2954
- { // if (0 <= i) = getfield/ifge
2955
- {
2956
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2957
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2958
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2959
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2960
- },{
2961
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2962
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2963
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
2964
- },
2965
- },
2966
- { // if (1 <= i) = getfield/ifgt
2967
- {
2968
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
2969
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2970
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2971
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
2972
- },{
2973
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
2974
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
2975
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
2976
- },
2977
- },
2978
- { // if (... > 0) = ifgt
2979
- {
2980
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2981
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2982
- },{
2983
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
2984
- },
2985
- },
2986
- { // if (... > -1) = ifge
2987
- {
2988
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
2989
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
2990
- },{
2991
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
2992
- },
2993
- },
2994
- { // if (0 < i) = iload/ifgt
2995
- {
2996
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
2997
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
2998
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
2999
- },{
3000
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3001
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
3002
- },
3003
- },
3004
- { // if (-1 < i) = iload/ifge
3005
- {
3006
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3007
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3008
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3009
- },{
3010
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3011
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
3012
- },
3013
- },
3014
- { // if (0 < i) = getstatic/ifgt
3015
- {
3016
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3017
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3018
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3019
- },{
3020
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3021
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
3022
- },
3023
- },
3024
- { // if (-1 < i) = getstatic/ifge
3025
- {
3026
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3027
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3028
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3029
- },{
3030
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3031
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
3032
- },
3033
- },
3034
- { // if (0 < i) = getfield/ifgt
3035
- {
3036
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3037
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3038
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3039
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3040
- },{
3041
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3042
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3043
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
3044
- },
3045
- },
3046
- { // if (-1 < i) = getfield/ifge
3047
- {
3048
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3049
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3050
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3051
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3052
- },{
3053
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3054
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3055
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
3056
- },
3057
- },
3058
- { // if (... <= 0) = ifle
3059
- {
3060
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3061
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3062
- },{
3063
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
3064
- },
3065
- },
3066
- { // if (... <= -1) = iflt
3067
- {
3068
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3069
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3070
- },{
3071
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
3072
- },
3073
- },
3074
- { // if (0 >= i) = iload/ifle
3075
- {
3076
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3077
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3078
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3079
- },{
3080
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3081
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
3082
- },
3083
- },
3084
- { // if (-1 >= i) = iload/iflt
3085
- {
3086
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3087
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3088
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3089
- },{
3090
- new VariableInstruction(InstructionConstants.OP_ILOAD, Y),
3091
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
3092
- },
3093
- },
3094
- { // if (0 >= i) = getstatic/ifle
3095
- {
3096
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3097
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3098
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3099
- },{
3100
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3101
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
3102
- },
3103
- },
3104
- { // if (-1 >= i) = getstatic/iflt
3105
- {
3106
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3107
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3108
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3109
- },{
3110
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3111
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
3112
- },
3113
- },
3114
- { // if (0 >= i) = getfield/ifle
3115
- {
3116
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3117
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3118
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3119
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3120
- },{
3121
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3122
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3123
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
3124
- },
3125
- },
3126
- { // if (-1 >= i) = getfield/iflt
3127
- {
3128
- new SimpleInstruction(InstructionConstants.OP_ICONST_M1),
3129
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3130
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3131
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3132
- },{
3133
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3134
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3135
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
3136
- },
3137
- },
3138
- { // if (... == null) = ifnull
3139
- {
3140
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3141
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3142
- },{
3143
- new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3144
- },
3145
- },
3146
- { // if (null == a) = aload/ifnull
3147
- {
3148
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3149
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3150
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3151
- },{
3152
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3153
- new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3154
- },
3155
- },
3156
- { // if (null == a) = getstatic/ifnull
3157
- {
3158
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3159
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3160
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3161
- },{
3162
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3163
- new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3164
- },
3165
- },
3166
- { // if (null == a) = getfield/ifnull
3167
- {
3168
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3169
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3170
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3171
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3172
- },{
3173
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3174
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3175
- new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3176
- },
3177
- },
3178
- { // if (... != null) = ifnonnull
3179
- {
3180
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3181
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3182
- },{
3183
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3184
- },
3185
- },
3186
- { // if (null != a) = aload/ifnonnull
3187
- {
3188
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3189
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3190
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3191
- },{
3192
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3193
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3194
- },
3195
- },
3196
- { // if (null != a) = getstatic/ifnonnull
3197
- {
3198
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3199
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3200
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3201
- },{
3202
- new ConstantInstruction(InstructionConstants.OP_GETSTATIC, Y),
3203
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3204
- },
3205
- },
3206
- { // if (null != a) = getfield/ifnonnull
3207
- {
3208
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3209
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3210
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3211
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3212
- },{
3213
- new VariableInstruction(InstructionConstants.OP_ALOAD, Y),
3214
- new ConstantInstruction(InstructionConstants.OP_GETFIELD, Z),
3215
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3216
- },
3217
- },
3218
- { // iconst_0/ifeq = goto
3219
- {
3220
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3221
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3222
- },{
3223
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3224
- },
3225
- },
3226
- { // iconst/ifeq = nothing
3227
- {
3228
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3229
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3230
- },{
3231
- // Nothing.
3232
- },
3233
- },
3234
- { // bipush/ifeq = nothing
3235
- {
3236
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
3237
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3238
- },{
3239
- // Nothing.
3240
- },
3241
- },
3242
- { // sipush/ifeq = nothing
3243
- {
3244
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
3245
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3246
- },{
3247
- // Nothing.
3248
- },
3249
- },
3250
- { // iconst_0/ifne = nothing
3251
- {
3252
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3253
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
3254
- },{
3255
- // Nothing.
3256
- },
3257
- },
3258
- { // iconst/ifne = goto
3259
- {
3260
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3261
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
3262
- },{
3263
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3264
- },
3265
- },
3266
- { // bipush/ifne = goto
3267
- {
3268
- new SimpleInstruction(InstructionConstants.OP_BIPUSH, A),
3269
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
3270
- },{
3271
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3272
- },
3273
- },
3274
- { // sipush/ifne = goto
3275
- {
3276
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, A),
3277
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
3278
- },{
3279
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3280
- },
3281
- },
3282
- { // iconst_0/iflt = nothing
3283
- {
3284
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3285
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
3286
- },{
3287
- // Nothing.
3288
- },
3289
- },
3290
- { // iconst_0/ifge = goto
3291
- {
3292
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3293
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
3294
- },{
3295
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3296
- },
3297
- },
3298
- { // iconst_0/ifgt = nothing
3299
- {
3300
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3301
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
3302
- },{
3303
- // Nothing.
3304
- },
3305
- },
3306
- { // iconst_0/ifle = goto
3307
- {
3308
- new SimpleInstruction(InstructionConstants.OP_ICONST_0),
3309
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
3310
- },{
3311
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3312
- },
3313
- },
3314
- { // aconst_null/ifnull = goto
3315
- {
3316
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3317
- new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3318
- },{
3319
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3320
- },
3321
- },
3322
- { // aconst_null/ifnonnul = nothing
3323
- {
3324
- new SimpleInstruction(InstructionConstants.OP_ACONST_NULL),
3325
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3326
- },{
3327
- // Nothing.
3328
- },
3329
- },
3330
- { // ifeq/goto = ifne
3331
- {
3332
- new BranchInstruction(InstructionConstants.OP_IFEQ, 6),
3333
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3334
- },{
3335
- new BranchInstruction(InstructionConstants.OP_IFNE, X),
3336
- },
3337
- },
3338
- { // ifne/goto = ifeq
3339
- {
3340
- new BranchInstruction(InstructionConstants.OP_IFNE, 6),
3341
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3342
- },{
3343
- new BranchInstruction(InstructionConstants.OP_IFEQ, X),
3344
- },
3345
- },
3346
- { // iflt/goto = ifge
3347
- {
3348
- new BranchInstruction(InstructionConstants.OP_IFLT, 6),
3349
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3350
- },{
3351
- new BranchInstruction(InstructionConstants.OP_IFGE, X),
3352
- },
3353
- },
3354
- { // ifge/goto = iflt
3355
- {
3356
- new BranchInstruction(InstructionConstants.OP_IFGE, 6),
3357
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3358
- },{
3359
- new BranchInstruction(InstructionConstants.OP_IFLT, X),
3360
- },
3361
- },
3362
- { // ifgt/goto = ifle
3363
- {
3364
- new BranchInstruction(InstructionConstants.OP_IFGT, 6),
3365
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3366
- },{
3367
- new BranchInstruction(InstructionConstants.OP_IFLE, X),
3368
- },
3369
- },
3370
- { // ifle/goto = ifgt
3371
- {
3372
- new BranchInstruction(InstructionConstants.OP_IFLE, 6),
3373
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3374
- },{
3375
- new BranchInstruction(InstructionConstants.OP_IFGT, X),
3376
- },
3377
- },
3378
- { // ificmpeq/goto = ificmpne
3379
- {
3380
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, 6),
3381
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3382
- },{
3383
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, X),
3384
- },
3385
- },
3386
- { // ificmpne/goto = ificmpeq
3387
- {
3388
- new BranchInstruction(InstructionConstants.OP_IFICMPNE, 6),
3389
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3390
- },{
3391
- new BranchInstruction(InstructionConstants.OP_IFICMPEQ, X),
3392
- },
3393
- },
3394
- { // ificmplt/goto = ificmpge
3395
- {
3396
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, 6),
3397
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3398
- },{
3399
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, X),
3400
- },
3401
- },
3402
- { // ificmpge/goto = ificmplt
3403
- {
3404
- new BranchInstruction(InstructionConstants.OP_IFICMPGE, 6),
3405
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3406
- },{
3407
- new BranchInstruction(InstructionConstants.OP_IFICMPLT, X),
3408
- },
3409
- },
3410
- { // ificmpgt/goto = ificmple
3411
- {
3412
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, 6),
3413
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3414
- },{
3415
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, X),
3416
- },
3417
- },
3418
- { // ificmple/goto = ificmpgt
3419
- {
3420
- new BranchInstruction(InstructionConstants.OP_IFICMPLE, 6),
3421
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3422
- },{
3423
- new BranchInstruction(InstructionConstants.OP_IFICMPGT, X),
3424
- },
3425
- },
3426
- { // ifacmpeq/goto = ifacmpne
3427
- {
3428
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, 6),
3429
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3430
- },{
3431
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, X),
3432
- },
3433
- },
3434
- { // ifacmpne/goto = ifacmpeq
3435
- {
3436
- new BranchInstruction(InstructionConstants.OP_IFACMPNE, 6),
3437
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3438
- },{
3439
- new BranchInstruction(InstructionConstants.OP_IFACMPEQ, X),
3440
- },
3441
- },
3442
- { // ifnull/goto = ifnonnull
3443
- {
3444
- new BranchInstruction(InstructionConstants.OP_IFNULL, 6),
3445
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3446
- },{
3447
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, X),
3448
- },
3449
- },
3450
- { // ifnonnull/goto = ifnull
3451
- {
3452
- new BranchInstruction(InstructionConstants.OP_IFNONNULL, 6),
3453
- new BranchInstruction(InstructionConstants.OP_GOTO, X),
3454
- },{
3455
- new BranchInstruction(InstructionConstants.OP_IFNULL, X),
3456
- },
3457
- },
3458
- // { // switch (...) { default: ... } = pop/goto ...
3459
- // {
3460
- // new TableSwitchInstruction(InstructionConstants.OP_TABLESWITCH, A, X, Y, 0, new int[0]),
3461
- // },{
3462
- // new SimpleInstruction(InstructionConstants.OP_POP),
3463
- // new BranchInstruction(InstructionConstants.OP_GOTO, A),
3464
- // },
3465
- // },
3466
- // { // switch (...) { default: ... } = pop/goto ...
3467
- // {
3468
- // new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, 0, new int[0], new int[0]),
3469
- // },{
3470
- // new SimpleInstruction(InstructionConstants.OP_POP),
3471
- // new BranchInstruction(InstructionConstants.OP_GOTO, A),
3472
- // },
3473
- // },
3474
- { // switch (...) { case/case/default: ... } = switch (...) { case/default: ... }
3475
- {
3476
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { X, Y }, new int[] { A, B }),
3477
- },{
3478
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { Y }, new int[] { B }),
3479
- },
3480
- },
3481
- { // switch (...) { case/case/default: ... } = switch (...) { case/default: ... }
3482
- {
3483
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X, Y }, new int[] { A, B }),
3484
- },{
3485
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X }, new int[] { A }),
3486
- },
3487
- },
3488
- { // switch (...) { case/case/case/default: ... } = switch (...) { case/case/default: ... }
3489
- {
3490
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { X, Y, Z }, new int[] { A, B, C }),
3491
- },{
3492
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, new int[] { Y, Z }, new int[] { B, C }),
3493
- },
3494
- },
3495
- { // switch (...) { case/case/case/default: ... } = switch (...) { case/case/default: ... }
3496
- {
3497
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X, Y, Z }, new int[] { A, B, C }),
3498
- },{
3499
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, B, new int[] { X, Z }, new int[] { A, C }),
3500
- },
3501
- },
3502
- { // switch (...) { case/case/case/default: ... } = switch (...) { case/case/default: ... }
3503
- {
3504
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, C, new int[] { X, Y, Z }, new int[] { A, B, C }),
3505
- },{
3506
- new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, C, new int[] { X, Y }, new int[] { A, B }),
3507
- },
3508
- },
3509
- // { // switch (...) { case ...: ... default: ... }
3510
- // // = if (... == ...) ... else ...
3511
- // {
3512
- // new TableSwitchInstruction(InstructionConstants.OP_TABLESWITCH, A, X, Y, 1, new int[] { B }),
3513
- // },{
3514
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, X),
3515
- // new BranchInstruction(InstructionConstants.OP_IFICMPNE, A),
3516
- // new BranchInstruction(InstructionConstants.OP_GOTO, B),
3517
- // },
3518
- // },
3519
- // { // switch (...) { case ...: ... default: ... }
3520
- // // = if (... == ...) ... else ...
3521
- // {
3522
- // new LookUpSwitchInstruction(InstructionConstants.OP_LOOKUPSWITCH, A, 1, new int[] { X }, new int[] { B }),
3523
- // },{
3524
- // new SimpleInstruction(InstructionConstants.OP_SIPUSH, X),
3525
- // new BranchInstruction(InstructionConstants.OP_IFICMPNE, A),
3526
- // new BranchInstruction(InstructionConstants.OP_GOTO, B),
3527
- // },
3528
- // }
3529
- };
3530
-
3531
- public static final Instruction[][][] STRING = new Instruction[][][]
3532
- {
3533
- { // "...".equals("...") = true
3534
- {
3535
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3536
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3537
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRING_EQUALS),
3538
- },{
3539
- new SimpleInstruction(InstructionConstants.OP_ICONST_1),
3540
- },
3541
- },
3542
- { // "...".length() = ...
3543
- {
3544
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3545
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRING_LENGTH),
3546
- },{
3547
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, STRING_A_LENGTH),
3548
- },
3549
- },
3550
-
3551
- { // new StringBuffer("...").toString() = "..." (ignoring identity)
3552
- {
3553
- new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3554
- new SimpleInstruction(InstructionConstants.OP_DUP),
3555
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3556
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3557
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_TOSTRING),
3558
- },{
3559
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3560
- },
3561
- },
3562
- { // new StringBuffer("...").length() = length
3563
- {
3564
- new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUFFER),
3565
- new SimpleInstruction(InstructionConstants.OP_DUP),
3566
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3567
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3568
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_LENGTH),
3569
- },{
3570
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, STRING_A_LENGTH),
3571
- },
3572
- },
3573
- { // StringBuffer#append("") = nothing
3574
- {
3575
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_EMPTY),
3576
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3577
- },{
3578
- // Nothing.
3579
- },
3580
- },
3581
- { // new StringBuffer().append(Z) = new StringBuffer("....")
3582
- {
3583
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3584
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3585
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_BOOLEAN),
3586
- },{
3587
- new ConstantInstruction(InstructionConstants.OP_LDC, BOOLEAN_A_STRING),
3588
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3589
- },
3590
- },
3591
- { // new StringBuffer().append(C) = new StringBuffer("....")
3592
- {
3593
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3594
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3595
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_CHAR),
3596
- },{
3597
- new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
3598
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3599
- },
3600
- },
3601
- { // new StringBuffer().append(Cc) = new StringBuffer("....")
3602
- {
3603
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3604
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3605
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_CHAR),
3606
- },{
3607
- new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
3608
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3609
- },
3610
- },
3611
- { // new StringBuffer().append(I) = new StringBuffer("....")
3612
- {
3613
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3614
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
3615
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_INTEGER),
3616
- },{
3617
- new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
3618
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3619
- },
3620
- },
3621
- { // new StringBuffer().append(Ic) = new StringBuffer("....")
3622
- {
3623
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3624
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3625
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_INTEGER),
3626
- },{
3627
- new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
3628
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3629
- },
3630
- },
3631
- { // new StringBuffer().append(J) = new StringBuffer("....")
3632
- {
3633
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3634
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
3635
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_LONG),
3636
- },{
3637
- new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
3638
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3639
- },
3640
- },
3641
- { // new StringBuffer().append(Jc) = new StringBuffer("....")
3642
- {
3643
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3644
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
3645
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_LONG),
3646
- },{
3647
- new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
3648
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3649
- },
3650
- },
3651
- { // new StringBuffer().append(F) = new StringBuffer("....")
3652
- {
3653
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3654
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
3655
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_FLOAT),
3656
- },{
3657
- new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
3658
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3659
- },
3660
- },
3661
- { // new StringBuffer().append(Fc) = new StringBuffer("....")
3662
- {
3663
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3664
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3665
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_FLOAT),
3666
- },{
3667
- new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
3668
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3669
- },
3670
- },
3671
- { // new StringBuffer().append(D) = new StringBuffer("....")
3672
- {
3673
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3674
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
3675
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_DOUBLE),
3676
- },{
3677
- new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
3678
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3679
- },
3680
- },
3681
- { // new StringBuffer().append(Dc) = new StringBuffer("....")
3682
- {
3683
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3684
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
3685
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_DOUBLE),
3686
- },{
3687
- new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
3688
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3689
- },
3690
- },
3691
- { // new StringBuffer().append("...") = new StringBuffer("......")
3692
- {
3693
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT),
3694
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3695
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3696
- },{
3697
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING),
3698
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3699
- },
3700
- },
3701
- { // new StringBuffer("...").append(Z) = new StringBuffer("....")
3702
- {
3703
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3704
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3705
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
3706
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_BOOLEAN),
3707
- },{
3708
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
3709
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3710
- },
3711
- },
3712
- { // new StringBuffer("...").append(C) = new StringBuffer("....")
3713
- {
3714
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3715
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3716
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
3717
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_CHAR),
3718
- },{
3719
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
3720
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3721
- },
3722
- },
3723
- { // new StringBuffer("...").append(Cc) = new StringBuffer("....")
3724
- {
3725
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3726
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3727
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3728
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_CHAR),
3729
- },{
3730
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
3731
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3732
- },
3733
- },
3734
- { // new StringBuffer("...").append(I) = new StringBuffer("....")
3735
- {
3736
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3737
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3738
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
3739
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_INTEGER),
3740
- },{
3741
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
3742
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3743
- },
3744
- },
3745
- { // new StringBuffer("...").append(Ic) = new StringBuffer("....")
3746
- {
3747
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3748
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3749
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3750
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_INTEGER),
3751
- },{
3752
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
3753
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3754
- },
3755
- },
3756
- { // new StringBuffer("...").append(J) = new StringBuffer("....")
3757
- {
3758
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3759
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3760
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
3761
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_LONG),
3762
- },{
3763
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
3764
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3765
- },
3766
- },
3767
- { // new StringBuffer("...").append(Jc) = new StringBuffer("....")
3768
- {
3769
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3770
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3771
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
3772
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_LONG),
3773
- },{
3774
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
3775
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3776
- },
3777
- },
3778
- { // new StringBuffer("...").append(F) = new StringBuffer("....")
3779
- {
3780
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3781
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3782
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
3783
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_FLOAT),
3784
- },{
3785
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
3786
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3787
- },
3788
- },
3789
- { // new StringBuffer("...").append(Fc) = new StringBuffer("....")
3790
- {
3791
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3792
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3793
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3794
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_FLOAT),
3795
- },{
3796
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
3797
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3798
- },
3799
- },
3800
- { // new StringBuffer("...").append(D) = new StringBuffer("....")
3801
- {
3802
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3803
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3804
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
3805
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_DOUBLE),
3806
- },{
3807
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
3808
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3809
- },
3810
- },
3811
- { // new StringBuffer("...").append(Dc) = new StringBuffer("....")
3812
- {
3813
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3814
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3815
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
3816
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_DOUBLE),
3817
- },{
3818
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
3819
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3820
- },
3821
- },
3822
- { // new StringBuffer("...").append("...") = new StringBuffer("......")
3823
- {
3824
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3825
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3826
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3827
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3828
- },{
3829
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
3830
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUFFER_INIT_STRING),
3831
- },
3832
- },
3833
- { // StringBuffer#append("...").append(Z) = StringBuffer#append("....")
3834
- {
3835
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3836
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3837
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
3838
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_BOOLEAN),
3839
- },{
3840
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
3841
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3842
- },
3843
- },
3844
- { // StringBuffer#append("...").append(C) = StringBuffer#append("....")
3845
- {
3846
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3847
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3848
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
3849
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_CHAR),
3850
- },{
3851
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
3852
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3853
- },
3854
- },
3855
- { // StringBuffer#append("...").append(Cc) = StringBuffer#append("....")
3856
- {
3857
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3858
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3859
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3860
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_CHAR),
3861
- },{
3862
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
3863
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3864
- },
3865
- },
3866
- { // StringBuffer#append("...").append(I) = StringBuffer#append("....")
3867
- {
3868
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3869
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3870
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
3871
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_INTEGER),
3872
- },{
3873
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
3874
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3875
- },
3876
- },
3877
- { // StringBuffer#append("...").append(Ic) = StringBuffer#append("....")
3878
- {
3879
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3880
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3881
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3882
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_INTEGER),
3883
- },{
3884
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
3885
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3886
- },
3887
- },
3888
- { // StringBuffer#append("...").append(J) = StringBuffer#append("....")
3889
- {
3890
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3891
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3892
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
3893
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_LONG),
3894
- },{
3895
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
3896
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3897
- },
3898
- },
3899
- { // StringBuffer#append("...").append(Jc) = StringBuffer#append("....")
3900
- {
3901
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3902
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3903
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
3904
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_LONG),
3905
- },{
3906
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
3907
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3908
- },
3909
- },
3910
- { // StringBuffer#append("...").append(F) = StringBuffer#append("....")
3911
- {
3912
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3913
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3914
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
3915
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_FLOAT),
3916
- },{
3917
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
3918
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3919
- },
3920
- },
3921
- { // StringBuffer#append("...").append(Fc) = StringBuffer#append("....")
3922
- {
3923
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3924
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3925
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3926
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_FLOAT),
3927
- },{
3928
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
3929
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3930
- },
3931
- },
3932
- { // StringBuffer#append("...").append(D) = StringBuffer#append("....")
3933
- {
3934
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3935
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3936
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
3937
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_DOUBLE),
3938
- },{
3939
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
3940
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3941
- },
3942
- },
3943
- { // StringBuffer#append("...").append(Dc) = StringBuffer#append("....")
3944
- {
3945
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3946
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3947
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
3948
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_DOUBLE),
3949
- },{
3950
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
3951
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3952
- },
3953
- },
3954
- { // StringBuffer#append("...").append("...") = StringBuffer#append("......")
3955
- {
3956
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3957
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3958
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
3959
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3960
- },{
3961
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
3962
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUFFER_APPEND_STRING),
3963
- },
3964
- },
3965
-
3966
- { // new StringBuilder("...").toString() = "..." (ignoring identity)
3967
- {
3968
- new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
3969
- new SimpleInstruction(InstructionConstants.OP_DUP),
3970
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3971
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
3972
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_TOSTRING),
3973
- },{
3974
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3975
- },
3976
- },
3977
- { // new StringBuilder("...").length() = length
3978
- {
3979
- new ConstantInstruction(InstructionConstants.OP_NEW, CLASS_STRINGBUILDER),
3980
- new SimpleInstruction(InstructionConstants.OP_DUP),
3981
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
3982
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
3983
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_LENGTH),
3984
- },{
3985
- new SimpleInstruction(InstructionConstants.OP_SIPUSH, STRING_A_LENGTH),
3986
- },
3987
- },
3988
- { // StringBuilder#append("") = nothing
3989
- {
3990
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_EMPTY),
3991
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
3992
- },{
3993
- // Nothing.
3994
- },
3995
- },
3996
- { // new StringBuilder().append(Z) = new StringBuilder("....")
3997
- {
3998
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
3999
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
4000
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_BOOLEAN),
4001
- },{
4002
- new ConstantInstruction(InstructionConstants.OP_LDC, BOOLEAN_A_STRING),
4003
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4004
- },
4005
- },
4006
- { // new StringBuilder().append(C) = new StringBuilder("....")
4007
- {
4008
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4009
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
4010
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_CHAR),
4011
- },{
4012
- new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
4013
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4014
- },
4015
- },
4016
- { // new StringBuilder().append(Cc) = new StringBuilder("....")
4017
- {
4018
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4019
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4020
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_CHAR),
4021
- },{
4022
- new ConstantInstruction(InstructionConstants.OP_LDC, CHAR_A_STRING),
4023
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4024
- },
4025
- },
4026
- { // new StringBuilder().append(I) = new StringBuilder("....")
4027
- {
4028
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4029
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, A),
4030
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_INTEGER),
4031
- },{
4032
- new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
4033
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4034
- },
4035
- },
4036
- { // new StringBuilder().append(Ic) = new StringBuilder("....")
4037
- {
4038
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4039
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4040
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_INTEGER),
4041
- },{
4042
- new ConstantInstruction(InstructionConstants.OP_LDC, INT_A_STRING),
4043
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4044
- },
4045
- },
4046
- { // new StringBuilder().append(J) = new StringBuilder("....")
4047
- {
4048
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4049
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, A),
4050
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_LONG),
4051
- },{
4052
- new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
4053
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4054
- },
4055
- },
4056
- { // new StringBuilder().append(Jc) = new StringBuilder("....")
4057
- {
4058
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4059
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
4060
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_LONG),
4061
- },{
4062
- new ConstantInstruction(InstructionConstants.OP_LDC, LONG_A_STRING),
4063
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4064
- },
4065
- },
4066
- { // new StringBuilder().append(F) = new StringBuilder("....")
4067
- {
4068
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4069
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, A),
4070
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_FLOAT),
4071
- },{
4072
- new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
4073
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4074
- },
4075
- },
4076
- { // new StringBuilder().append(Fc) = new StringBuilder("....")
4077
- {
4078
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4079
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4080
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_FLOAT),
4081
- },{
4082
- new ConstantInstruction(InstructionConstants.OP_LDC, FLOAT_A_STRING),
4083
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4084
- },
4085
- },
4086
- { // new StringBuilder().append(D) = new StringBuilder("....")
4087
- {
4088
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4089
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, A),
4090
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_DOUBLE),
4091
- },{
4092
- new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
4093
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4094
- },
4095
- },
4096
- { // new StringBuilder().append(Dc) = new StringBuilder("....")
4097
- {
4098
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4099
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, A),
4100
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_DOUBLE),
4101
- },{
4102
- new ConstantInstruction(InstructionConstants.OP_LDC, DOUBLE_A_STRING),
4103
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4104
- },
4105
- },
4106
- { // new StringBuilder().append("...") = new StringBuilder("......")
4107
- {
4108
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT),
4109
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4110
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4111
- },{
4112
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING),
4113
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4114
- },
4115
- },
4116
- { // new StringBuilder("...").append(Z) = new StringBuilder("....")
4117
- {
4118
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4119
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4120
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4121
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_BOOLEAN),
4122
- },{
4123
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
4124
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4125
- },
4126
- },
4127
- { // new StringBuilder("...").append(C) = new StringBuilder("....")
4128
- {
4129
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4130
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4131
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4132
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_CHAR),
4133
- },{
4134
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4135
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4136
- },
4137
- },
4138
- { // new StringBuilder("...").append(Cc) = new StringBuilder("....")
4139
- {
4140
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4141
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4142
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4143
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_CHAR),
4144
- },{
4145
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4146
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4147
- },
4148
- },
4149
- { // new StringBuilder("...").append(I) = new StringBuilder("....")
4150
- {
4151
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4152
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4153
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4154
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_INTEGER),
4155
- },{
4156
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4157
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4158
- },
4159
- },
4160
- { // new StringBuilder("...").append(Ic) = new StringBuilder("....")
4161
- {
4162
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4163
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4164
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4165
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_INTEGER),
4166
- },{
4167
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4168
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4169
- },
4170
- },
4171
- { // new StringBuilder("...").append(J) = new StringBuilder("....")
4172
- {
4173
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4174
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4175
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
4176
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_LONG),
4177
- },{
4178
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4179
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4180
- },
4181
- },
4182
- { // new StringBuilder("...").append(Jc) = new StringBuilder("....")
4183
- {
4184
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4185
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4186
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4187
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_LONG),
4188
- },{
4189
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4190
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4191
- },
4192
- },
4193
- { // new StringBuilder("...").append(F) = new StringBuilder("....")
4194
- {
4195
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4196
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4197
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
4198
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_FLOAT),
4199
- },{
4200
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4201
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4202
- },
4203
- },
4204
- { // new StringBuilder("...").append(Fc) = new StringBuilder("....")
4205
- {
4206
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4207
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4208
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4209
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_FLOAT),
4210
- },{
4211
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4212
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4213
- },
4214
- },
4215
- { // new StringBuilder("...").append(D) = new StringBuilder("....")
4216
- {
4217
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4218
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4219
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
4220
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_DOUBLE),
4221
- },{
4222
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4223
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4224
- },
4225
- },
4226
- { // new StringBuilder("...").append(Dc) = new StringBuilder("....")
4227
- {
4228
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4229
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4230
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4231
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_DOUBLE),
4232
- },{
4233
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4234
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4235
- },
4236
- },
4237
- { // new StringBuilder("...").append("...") = new StringBuilder("......")
4238
- {
4239
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4240
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4241
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4242
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4243
- },{
4244
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
4245
- new ConstantInstruction(InstructionConstants.OP_INVOKESPECIAL, METHOD_STRINGBUILDER_INIT_STRING),
4246
- },
4247
- },
4248
- { // StringBuilder#append("...").append(Z) = StringBuilder#append("....")
4249
- {
4250
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4251
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4252
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4253
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_BOOLEAN),
4254
- },{
4255
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | BOOLEAN_B_STRING),
4256
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4257
- },
4258
- },
4259
- { // StringBuilder#append("...").append(C) = StringBuilder#append("....")
4260
- {
4261
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4262
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4263
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4264
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_CHAR),
4265
- },{
4266
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4267
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4268
- },
4269
- },
4270
- { // StringBuilder#append("...").append(Cc) = StringBuilder#append("....")
4271
- {
4272
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4273
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4274
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4275
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_CHAR),
4276
- },{
4277
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | CHAR_B_STRING),
4278
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4279
- },
4280
- },
4281
- { // StringBuilder#append("...").append(I) = StringBuilder#append("....")
4282
- {
4283
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4284
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4285
- new SimpleInstruction(InstructionConstants.OP_ICONST_0, B),
4286
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_INTEGER),
4287
- },{
4288
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4289
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4290
- },
4291
- },
4292
- { // StringBuilder#append("...").append(Ic) = StringBuilder#append("....")
4293
- {
4294
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4295
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4296
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4297
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_INTEGER),
4298
- },{
4299
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | INT_B_STRING),
4300
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4301
- },
4302
- },
4303
- { // StringBuilder#append("...").append(J) = StringBuilder#append("....")
4304
- {
4305
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4306
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4307
- new SimpleInstruction(InstructionConstants.OP_LCONST_0, B),
4308
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_LONG),
4309
- },{
4310
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4311
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4312
- },
4313
- },
4314
- { // StringBuilder#append("...").append(Jc) = StringBuilder#append("....")
4315
- {
4316
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4317
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4318
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4319
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_LONG),
4320
- },{
4321
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | LONG_B_STRING),
4322
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4323
- },
4324
- },
4325
- { // StringBuilder#append("...").append(F) = StringBuilder#append("....")
4326
- {
4327
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4328
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4329
- new SimpleInstruction(InstructionConstants.OP_FCONST_0, B),
4330
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_FLOAT),
4331
- },{
4332
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4333
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4334
- },
4335
- },
4336
- { // StringBuilder#append("...").append(Fc) = StringBuilder#append("....")
4337
- {
4338
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4339
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4340
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4341
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_FLOAT),
4342
- },{
4343
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | FLOAT_B_STRING),
4344
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4345
- },
4346
- },
4347
- { // StringBuilder#append("...").append(D) = StringBuilder#append("....")
4348
- {
4349
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4350
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4351
- new SimpleInstruction(InstructionConstants.OP_DCONST_0, B),
4352
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_DOUBLE),
4353
- },{
4354
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4355
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4356
- },
4357
- },
4358
- { // StringBuilder#append("...").append(Dc) = StringBuilder#append("....")
4359
- {
4360
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4361
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4362
- new ConstantInstruction(InstructionConstants.OP_LDC2_W, B),
4363
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_DOUBLE),
4364
- },{
4365
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | DOUBLE_B_STRING),
4366
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4367
- },
4368
- },
4369
- { // StringBuilder#append("...").append("...") = StringBuilder#append("......")
4370
- {
4371
- new ConstantInstruction(InstructionConstants.OP_LDC, A),
4372
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4373
- new ConstantInstruction(InstructionConstants.OP_LDC, B),
4374
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4375
- },{
4376
- new ConstantInstruction(InstructionConstants.OP_LDC, STRING_A_STRING | STRING_B_STRING),
4377
- new ConstantInstruction(InstructionConstants.OP_INVOKEVIRTUAL, METHOD_STRINGBUILDER_APPEND_STRING),
4378
- },
4379
- },
4380
- };
4381
-
4382
- /*
4383
- static
4384
- {
4385
- ProgramClass clazz = new ProgramClass();
4386
- clazz.constantPool = CONSTANTS;
4387
-
4388
- ClassPrinter printer = new ClassPrinter();
4389
-
4390
- for (int index = 0; index < CONSTANTS.length; index++)
4391
- {
4392
- System.out.print("["+index+"] ");
4393
- try
4394
- {
4395
- CONSTANTS[index].accept(clazz, printer);
4396
- }
4397
- catch (Exception e)
4398
- {
4399
- System.out.println("("+e.getClass().getName()+")");
4400
- }
4401
- }
4402
-
4403
- if (CONSTANTS.length != SENTINEL)
4404
- {
4405
- throw new IllegalStateException("Constants length ["+CONSTANTS.length+"] different from number of constant names ["+SENTINEL+"]");
4406
- }
4407
-
4408
- Instruction[] instructions = STRING[2][0];
4409
-
4410
- for (int index = 0; index < instructions.length; index++)
4411
- {
4412
- Instruction instruction = instructions[index];
4413
- try
4414
- {
4415
- instruction.accept(clazz, null, null, index, new ClassPrinter());
4416
- }
4417
- catch (Exception e)
4418
- {
4419
- //System.out.println(" "+instruction.toString(offset));
4420
- }
4421
- }
4422
- }
4423
- //*/
4424
- }