87207

Extended-width dalvik bytecodes missing on Jellybean

Question:

When ICS came out, there were several new extended-width bytecodes introduced. Most of these were for instructions to support jumbo ids. Here are some of these new instructions, taken from my ics/dalvik/opcode-gen/bytecode.txt:

# # Extended-width opcodes # op 00ff const-class/jumbo 41c y type-ref continue|throw op 01ff check-cast/jumbo 41c n type-ref continue|throw op 02ff instance-of/jumbo 52c y type-ref continue|throw op 03ff new-instance/jumbo 41c y type-ref continue|throw op 04ff new-array/jumbo 52c y type-ref continue|throw op 05ff filled-new-array/jumbo 5rc n type-ref continue|throw op 06ff iget/jumbo 52c y field-ref continue|throw ...

However, on the JB code, I can't find any reference to these new bytecodes. In my jellybean version of bytecodes.txt, the last opcode ends in 0xfe:

op fc +iput-object-volatile 22c n field-ref optimized|continue|throw op fd +sget-object-volatile 21c y field-ref optimized|continue|throw op fe +sput-object-volatile 21c n field-ref optimized|continue|throw # unused: op ff

Are these new instructions not supported on JellyBean?

Also, I can't even seem to find the original dalvik bytecode documentation in jellybean. This is the dir listing of my dalvik/docs folder:

$ ls -a dalvik/docs | cat . .. dalvik-constraints.css dalvik-constraints.html debugger.html debugmon.html dexopt.html embedded-vm-control.html heap-profiling.html hello-world.html java-bytecode.css java-bytecode.html java-constraints.css java-constraints.html porting-guide.html porting-proto.c.txt prettify.css prettify.js verifier.html

Or, maybe, I just downloaded from the wrong branch? I'm using the jb-4.1.1_r4 branch.

Answer1:

I implemented the dx side of these new instructions before leaving Google, but the runtime side of them had yet to be done. I guess nobody ever finished the work, but left the spec docs alone.

Recommend

  • how to check if video is landscape or portrait using ffmpeg php?
  • List
  • Private constructor in abstract class
  • Is there a list of all stock messaging apps package names for all Android phone constructors?
  • not able to install mysql on ubuntu 11 [closed]
  • Nunit Tests order of Execution
  • SOAP web service with ksoap2 lib
  • Click a checkbox with selenium-webdriver
  • Java Save and Load Program's State
  • error TS2384: Overload signatures must all be ambient or non-ambient
  • How to avoid Tabs on footer when redirecting to next page [duplicate]
  • How do I retrieve the text in a table column using Selenium RC?
  • RavenDB indexing errors
  • Multiple Left Join LINQ-to-entities
  • multidatatrigger with multibinding in ControlTemplate.Triggers
  • Suqueries in select clause with JPA
  • Cloud Code function running twice
  • Default parameter as generic type
  • Thread safety of a fluent like class using clone() and non final fields
  • Converting a WriteableBitmap image ToArray in UWP
  • How to avoid particles glitching together in an elastic particle collision simulator?
  • Exception “firebase.functions() takes … no argument …” when specifying a region for a Cloud Function
  • Highlight one bar in a series in highcharts?
  • Recording logins for password protected directories
  • Retrieving value from sql ExecuteScalar()
  • Splitting given String into two variables - php
  • Check if a string to interpolate provides expected placeholders
  • Calling of Constructors in a Java
  • PHP: When would you need the self:: keyword?
  • KeystoneJS: Relationships in Admin UI not updating
  • Benchmarking RAM performance - UWP and C#
  • Acquiring multiple attributes from .xml file in c#
  • Hits per day in Google Big Query
  • How to CLICK on IE download dialog box i.e.(Open, Save, Save As…)
  • How can I remove ASP.NET Designer.cs files?
  • python draw pie shapes with colour filled
  • Is there any way to bind data to data.frame by some index?
  • Checking variable from a different class in C#
  • How can i traverse a binary tree from right to left in java?
  • java string with new operator and a literal