Add lambda experimental dalvik opcodes

* Add new -X/--experimental flag to [dis]assemble opcodes not in art yet
* Add new opcodes liberate-variable, box-lambda, unbox-lambda,
                  capture-variable, create-lambda, invoke-lambda
* Add support for encoding 25x instructions
* Adds LambdaTest to check new opcodes assemble/disassemble properly

TODO: invoke-lambda-range

Change-Id: I5c8bcbfa8b6cb9a13ef2017fce2d1b7fda6e11c3
44 files changed
tree: bdbc5c4f2ad3ea320798ade74888490123c30ad5
  1. .gitignore
  2. NOTICE
  3. README.md
  4. baksmali/
  5. build.gradle
  6. deodexerant/
  7. dexlib2/
  8. examples/
  9. gradle.properties
  10. gradle/
  11. gradlew
  12. gradlew.bat
  13. scripts/
  14. settings.gradle
  15. smali-integration-tests/
  16. smali/
  17. util/
README.md

About

smali/baksmali is an assembler/disassembler for the dex format used by dalvik, Android‘s Java VM implementation. The syntax is loosely based on Jasmin’s/dedexer's syntax, and supports the full functionality of the dex format (annotations, debug info, line info, etc.)

The primary webpage is http://smali.googlecode.com, and the source is also mirrored at https://github.com/jesusfreke/smali. If you are interested in submitting a patch, feel free to send me a pull request on either site.

Support

  • googlecode Issue tracker - For any bugs/issues/feature requests
  • #smali on freenode - Free free to drop by and ask a question. Don't expect an instant response, but if you hang around someone will respond. Think of it more in terms of.. multi-player notepad.

Some useful links for getting started with smali