Dalvik Bytecode (Smali) Opcodes

OpcodeNameFormat & IDSyntaxShort DescLong DescExample
00nopØØ|op
10x
nopNo operationDoes nothing, Waste cycles.0000 - nop
Does nothing, Waste cycles
01moveB|A|op
12x
move vA, vBMove the contents of one non-object register to another.Moves the content of vB into vA. Both registers is in the first 16 register range (0-15).0110 - move v0, v1
Moves the content of v1 into v0.
02move/from16AA|op BBBB
22x
move/from16 vAA, vBBBBMove the contents of one non-object register to another.Moves the content of vB into vA. vB is in the 64k register range (0-65535) while vA is one of the first 256 registers (0-255).0200 1900 - move/from16 v0, v25
Moves the content of v25 into v0.
03move/16ØØ|op AAAA BBBB
32x
move/16 vAAAA, vBBBBMove the contents of one non-object register to another.Moves the content of vB into vA. Both registers is in the first 64k register range (0-65535) & 16 bits.030000090181 - move/16 v2304, v33025
Moves the content of v33025 into v2304.
04move-wideB|A|op
12x
move-wide vA, vBMove the contents of one register-pair to another.Move the value of the (vB, vB+1) register-pair to the (vA, vA+1) register-pair. Both register-pairs is in the first 16 register range (0-15).
05move-wide/from16AA|op BBBB
22x
move-wide/from16 vAA, vBBBBMove the contents of one register-pair to another.Move the value (long/double) of the (vBBBB, vBBBB+1) register-pair to the (vAA, vAA+1) register-pair. vB is in the 64k register range (0-65535) while vA is one of the first 256 registers (0-255).0516 0000 - move-wide/from16 v22, v0
Moves the content of register-pair (v0, v0+1) into (v22, v22+1).
06move-wide/16ØØ|op AAAA BBBB
32x
move-wide/from16 vAAAA, vBBBBMove the contents of one register-pair to another.Move the value of the (vBBBB, vBBBB+1) register-pair to the (vAAAA, vAAAA+1) register-pair. Both register-pairs is in the first 64k register range (0-65535) & 16 bits.
07move-objectB|A|op
12x
move-object vA, vBMove the contents of one object-bearing register to another.Move the value of register vB to register vA. Both registers is in the first 16 register range (0-15).0781 - move-object v1, v8
Moves the content of v8 to v1.
08move-object/from16AA|op BBBB
22x
move-object/from16 vAA, vBBBBMove the contents of one object-bearing register to another.Move the value of register vBBBB to register vAA. vB is in the 64k register range (0-65535) while vA is one of the first 256 registers (0-255).0801 1500 - move-object/from16 v1, v21
Move the content of v21 to v1.
09move-object/16ØØ|op AAAA BBBB
32x
move-object/16 vAAAA, vBBBBMove the contents of one object-bearing register to another.Move the value of register vBBBB to register vAAAA. Both registers is in the first 64k register range (0-65535) & 16 bits.
0Amove-resultAA|op
11x
move-result vAAMoves the single-word, non-object result of the preceding invoke-kind to the specified register. Must immediately follow the invoke-kind.Moves the single-word result of the immediately preceding method invocation into the destination register (vA). vA is in the first 256-register range (0-255).0A00 - move-result v0
Move the return value of a previous method invocation into v0.
0Bmove-result-wideAA|op
11x
move-result-wide vAAMoves the wide (double-word) non-object result of the preceding invoke-kind to the specified register-pair.Moves the wide (double-word) result of the previous method invocation into register-pair (vAA, vAA+1). vA is in the first 256-register range (0-255).0B02 - move-result-wide v2
Move the long/double result value of the previous method invocation into v2,v3.
0Cmove-result-objectAA|op
11x
move-result-object vAAMoves the object result of the preceding invoke-kind to the specified register.Moves the object result of the previous method invocation into vAA. vA is in the first 256-register range (0-255).0C00 - move-result-object v0
Move the object result of the previous method invocation into v0.
0Dmove-exceptionAA|op
11x
move-exception vAAMoves the exception object of the most recent exception to the specified register.Moves the caught exception into vAA. vA is in the first 256-register range (0-255).0D19 - move-exception v25
Moves the caught exception into register v25.
0Ereturn-voidØØ|op
10x
return-voidReturn from a void method.Return without a return value, used in void type methods.0E00 - return-void
Return of a void method without return value.
0FreturnAA|op
11x
return vAAReturn from a single-width (32-bit) non-object value-returning method.Returns the 32-bit value in vAA to the caller. vA is in the first 256-register range (0-255).0F00 - return v0
Returns with return value in v0.
10return-wideAA|op
11x
return-wide vAAReturn from a double-width (64-bit) value-returning method.Returns a double/long result from register-pair (vAA, vAA+1) to the caller. vA is in the first 256-register range (0-255).1000 - return-wide v0
Returns with a double/long value in v0,v1.
11return-objectAA|op
11x
return-object vAAReturn from an object-returning method.Returns the object reference value from vAA to the caller. vA is in the first 256-register range (0-255).1100 - return-object v0
Returns with object reference value in v0.
12const/4B|A|op
11n
const/4 vA, #+BMove the given literal value (sign-extended to 32 bits) into the specified register.Moves the literal value B into vA. B is sign-extended to 32 bits. The value of B is in the range -8 to 7 (-0x8 to 0x7).1200 0001 - const/4 v0, 0x1
Moves the literal value 0x1(1) into v0.
13const/16AA|op BBBB
21s
const/16 vAA, #+BBBBMove the given literal value (sign-extended to 32 bits) into the specified register.Moves the literal value BBBB into vAA. BBBB is sign-extended to 32 bits. The value of BBBB is in the range -32768 to 32767 (-0x8000 to 0x7FFF).1300 0A00 - const/16 v0, 0xa
Moves the literal value 0xa(10) into v0.
14constAA|op BBBBlo
31i
const vAA, #+BBBBBBBBMove the given literal value into the specified register.Moves the literal value BBBB into vAA. BBBB is a 32-bit constant. The value of BBBB is in the range -2147483648 to 2147483647 (-0x80000000 to 0x7FFFFFFF).1400 4E61BC00 - const v0, 0xBC614E
Moves the literal value 0xBC614E(12345678) into v0.
15const/high16AA|op BBBB
21h
const/high16 vAA, #+BBBB0000Move the given literal value (right-zero-extended to 32 bits) into the specified register.Moves the literal value BBBB0000 into vAA. BBBB is right-zero-extended to 32 bits. The value of BBBB is in the range -32768 to 32767 (-0x80000000 to 0x7FFF0000).1500 2041 - const/high16 v0, 0x41200000 (#float 10.0)
Moves the floating literal value 0x41200000(10.0) into v0. The 16 bit literal in the instruction carries the top 16 bits of the floating point number.
16const-wide/16AA|op BBBB
21s
const-wide/16 vAA, #+BBBBMove the given literal value (sign-extended to 64 bits) into the specified register-pair.Moves the literal value BBBB into register-pair (vAA, vAA+1), expanding the integer constant into a long constant. BBBB is sign-extended to 64 bits. The value of BBBB is in the range -32768 to 32767 (-0x8000 to 0x7FFF).1600 0A00 - const-wide/16 v0, 0xa (#long 10.0)
Moves the long literal value 0xa(10) into (v0,v1) register-pair.
17const-wide/32AA|op BBBBlo
31i
const-wide/32 vAA, #+BBBBBBBBMove the given literal value (sign-extended to 64 bits) into the specified register-pair.Moves the literal value BBBBBBBB into register-pair (vAA, vAA+1), expanding the integer constant into a long constant. BBBBBBBB is sign-extended to 64 bits. The value of BBBBBBBB is in the range -2147483648 to 2147483647 (-0x80000000 to 0x7FFFFFFF).1702 4E61 BC00 - const-wide/32 v2, 0x00bc614e
Moves the long literal value 0x00bc614e into (v2,v3) register-pair.
18const-wideAA|op BBBBlo BBBB BBBB BBBBhi
51l
const-wide vAA, #+BBBBBBBBBBBBBBBBMove the given literal value into the specified register-pair.Moves the literal value constant BBBBBBBBBBBBBBBB into register-pair (vAA, vAA+1). The value of BBBBBBBBBBBBBBBB is in the range -9223372036854775808 to 9223372036854775807 (-0x8000000000000000 to 0x7FFFFFFFFFFFFFFF).1802 874b 6b5d 54dc 2b00- const-wide v2, 0x002bdc545d6b4b87 (#long 12345678901234567)
Moves the long literal value 0x002bdc545d6b4b87 into (v2,v3) register-pair.
19const-wide/high16AA|op BBBB
21h
const-wide/high16 vAA, #+BBBB000000000000Move the given literal value (right-zero-extended to 64 bits) into the specified register-pair.Moves the literal value BBBB into register-pair (vAA, vAA+1). BBBB is right-zero-extended to 64 bits. The value of BBBB is in the range -32768 to 32767 (-0x8000 to 0x7FFF).1900 2440 - const-wide/high16 v0, 0x402400000 (#double 10.0)
Moves the double literal value 10.0 into (v0,v1) register-pair.
1Aconst-stringAA|op BBBB
21c
const-string vAA, string@BBBBMove a reference to the string specified by the given index into the specified register.Moves the string from the string pool at the given index into the specified register.1A00 0000 - const-string v0, '' #string@0x0000
Moves the string at index 0x0000 (entry #0) in the string pool into register v0.
1Bconst-string/jumboAA|op BBBBlo BBBBhi
31c
const-string/jumbo vAA, string@BBBBBBBBMove a reference to the string specified by the given index into the specified register.Moves the string from the string pool at the given index into the specified register. This instruction is used when the string index is too large to fit in 16 bits.1B00 0000 0001 - const-string/jumbo v0, '' #string@0x0001
Moves the string at index 0x0001 (entry #1) in the string pool into register v0.
1Cconst-classAA|op BBBB
21c
const-class vAA, type@BBBBMove a reference to the class specified by the given index into the specified register.Moves the type (e.g. Object.class) from the type pool at the given index into the specified register. The type pool is a table of types that is stored in the DEX file. The types are referenced by their index in the pool.1C00 0100 - const-class v0, Test3 // type@0001
Moves the type refrence (Test3.class) at index 0x0001 (entry #1) in the type pool into register v0.
1Dmonitor-enterAA|op
11x
monitor-enter vAAAcquire the monitor for the indicated object.Obtains the monitor of the object referenced by vAA.1D00 - monitor-enter v0
Obtains the monitor of the object referenced by v0.
1Emonitor-exitAA|op
11x
monitor-exit vAARelease the monitor for the indicated object.Releases the monitor of the object referenced by vAA.1E00 - monitor-exit v0
Releases the monitor of the object referenced by v0.
1Fcheck-castAA|op BBBB
21c
check-cast vAA, type@BBBBThrow a ClassCastException if the reference in the given register cannot be cast to the indicated type.Check that the object referenced by vAA is an instance of the class resolved by type@BBBB. If it is not, throw a ClassCastException.1F04 0100 - check-cast v4, Test3 #type@0001
Checks whether the object reference in v4 can be cast to type@0001 (entry #1 in the type id table) and throws a ClassCastException if it cannot.
20instance-ofB|A|op CCCC
22c
instance-of vA, vB, type@CCCCStore in the given destination register 1 if the indicated reference is an instance of the given type, or 0 if not.Check whether the object referenced by vB is an instance of the class resolved by type@CCCC. If it is, the value 1 is stored in vA; otherwise, the value 0 is stored in vA.2040 0100 - instance-of v0, v4, type@0001
Checks whether the object reference in v4 is an instance of type@0001 (entry #1 in the type id table) and stores the result in v0.
21array-lengthB|A|op
12x
array-length vA, vBStore the length of the indicated array.Stores the length of the array referenced by vB into vA.
22new-instanceAA|op BBBB
21c
new-instance vAA, type@BBBBConstruct a new instance of the indicated type.Creates a new instance of the type specified by type@BBBB and stores a reference to it in vAA.
23new-arrayB|A|op CCCC
22c
new-array vA, vB, type@CCCCConstruct a new array of the indicated type and size.Creates a new array of the type specified by type@CCCC with the size specified by vB. The reference to the new array is stored in vA.
24filled-new-arrayA|G|op BBBB F|E|D|C
35c
filled-new-array {vC, vD, vE, vF, vG}, type@BBBBConstruct an array of the given type and size, filling it with the supplied contents.Creates a new array of the type specified by type@BBBB and fills it with the values from the specified registers. The constructed instance is stored as a result and must be moved to a register with an immediately subsequent `move-result-object` instruction.
25filled-new-array/rangeAA|op BBBB CCCC
3rc
filled-new-array/range {vCCCC .. vNNNN}, type@BBBBConstruct an array of the given type and size, filling it with the supplied contents.Creates a new array of the type specified by type@BBBB and fills it with the values from the specified range of registers. The constructed instance is stored as a result and must be moved to a register with an immediately subsequent `move-result-object` instruction.
26fill-array-dataAA|op BBBB
31t
fill-array-data vAA, +BBBBBBBBFill the given array with the indicated data.Fills the array referenced by vAA with the data specified by the table data pseudo-instruction at the offset +BBBBBBBB.
27throwAA|op
11x
throw vAAThrow the indicated exception.Throws the exception object referenced by vAA. This instruction must be followed by an appropriate exception handler.
28gotoAA|op
10t
goto +AAUnconditionally jump to the indicated instruction.Jumps to the instruction at the offset specified by +AA.28E9 - goto 0x000150EA
Jumps to the instruction at address 0x000150EA.
29goto/16AA|op BBBB
20t
goto/16 +AAAAUnconditionally jump to the indicated instruction.Jumps to the instruction at the offset specified by +AAAA. The branch offset must not be 0.
2Agoto/32ØØ|op AAAA BBBB
30t
goto/32 +AAAAAAAAUnconditionally jump to the indicated instruction.Jumps to the instruction at the offset specified by +AAAAAAAA. The branch offset must not be 0.
2Bpacked-switchAA|op BBBB
31t
packed-switch vAA, +BBBBBBBBJump based on the value in the given register using a table of offsets.Jumps to a new instruction based on the value in vAA, using a table of offsets corresponding to each value in a particular integral range. If there is no match, execution continues with the next instruction.
2Csparse-switchAA|op BBBB
31t
sparse-switch vAA, +BBBBBBBBJump based on the value in the given register using an ordered table of value-offset pairs.Jumps to a new instruction based on the value in vAA, using an ordered table of value-offset pairs. If there is no match, execution continues with the next instruction.
2Dcmpl-floatAA|op BB CC
23x
cmpl-float vAA, vBB, vCCCompare two float values with less-than bias.Compares the float values in vBB and vCC. If vBB == vCC, 0 is stored in vAA. If vBB > vCC, 1 is stored. If vBB < vCC or either value is NaN, -1 is stored.
2Ecmpg-floatAA|op BB CC
23x
cmpg-float vAA, vBB, vCCCompare two float values with greater-than bias.Compares the float values in vBB and vCC. If vBB == vCC, 0 is stored in vAA. If vBB > vCC or either value is NaN, 1 is stored. If vBB < vCC, -1 is stored.
2Fcmpl-doubleAA|op BB CC
23x
cmpl-double vAA, vBB, vCCCompare two double values with less-than bias.Compares the double values in vBB,vBB+1 and vCC,vCC+1. If vBB == vCC, 0 is stored in vAA. If vBB > vCC, 1 is stored. If vBB < vCC or either value is NaN, -1 is stored.
30cmpg-doubleAA|op BB CC
23x
cmpg-double vAA, vBB, vCCCompare two double values with greater-than bias.Compares the double values in vBB,vBB+1 and vCC,vCC+1. If vBB == vCC, 0 is stored in vAA. If vBB > vCC or either value is NaN, 1 is stored. If vBB < vCC, -1 is stored.
31cmp-longAA|op BB CC
23x
cmp-long vAA, vBB, vCCCompare two long values.Compares the long values in vBB,vBB+1 and vCC,vCC+1. If vBB == vCC, 0 is stored in vAA. If vBB > vCC, 1 is stored. If vBB < vCC, -1 is stored.
32if-eqAA|op BB CC
22t
if-eq vA, vB, +CCCCBranch if two registers are equal.Branches to the instruction at the offset +CCCC if the values in vA and vB are equal. Otherwise, execution continues with the next instruction.
33if-neAA|op BB CC
22t
if-ne vA, vB, +CCCCBranch if two registers are not equal.Branches to the instruction at the offset +CCCC if the values in vA and vB are not equal. Otherwise, execution continues with the next instruction.
34if-ltAA|op BB CC
22t
if-lt vA, vB, +CCCCBranch if the first register is less than the second.Branches to the instruction at the offset +CCCC if the value in vA is less than the value in vB. Otherwise, execution continues with the next instruction.
35if-geAA|op BB CC
22t
if-ge vA, vB, +CCCCBranch if the first register is greater than or equal to the second.Branches to the instruction at the offset +CCCC if the value in vA is greater than or equal to the value in vB. Otherwise, execution continues with the next instruction.
36if-gtAA|op BB CC
22t
if-gt vA, vB, +CCCCBranch if the first register is greater than the second.Branches to the instruction at the offset +CCCC if the value in vA is greater than the value in vB. Otherwise, execution continues with the next instruction.
37if-leAA|op BB CC
22t
if-le vA, vB, +CCCCBranch if the first register is less than or equal to the second.Branches to the instruction at the offset +CCCC if the value in vA is less than or equal to the value in vB. Otherwise, execution continues with the next instruction.
38if-eqzAA|op BB
21t
if-eqz vAA, +BBBBBranch if the register is equal to zero.Branches to the instruction at the offset +BBBB if the value in vAA is equal to zero. Otherwise, execution continues with the next instruction.
39if-nezAA|op BB
21t
if-nez vAA, +BBBBBranch if the register is not equal to zero.Branches to the instruction at the offset +BBBB if the value in vAA is not equal to zero. Otherwise, execution continues with the next instruction.
3Aif-ltzAA|op BB
21t
if-ltz vAA, +BBBBBranch if the register is less than zero.Branches to the instruction at the offset +BBBB if the value in vAA is less than zero. Otherwise, execution continues with the next instruction.
3Bif-gezAA|op BB
21t
if-gez vAA, +BBBBBranch if the register is greater than or equal to zero.Branches to the instruction at the offset +BBBB if the value in vAA is greater than or equal to zero. Otherwise, execution continues with the next instruction.
3Cif-gtzAA|op BB
21t
if-gtz vAA, +BBBBBranch if the register is greater than zero.Branches to the instruction at the offset +BBBB if the value in vAA is greater than zero. Otherwise, execution continues with the next instruction.
3Dif-lezAA|op BB
21t
if-lez vAA, +BBBBBranch if the register is less than or equal to zero.Branches to the instruction at the offset +BBBB if the value in vAA is less than or equal to zero. Otherwise, execution continues with the next instruction.
3Eunused_3EØØ|op
10x
unused_3EUnused opcode.This opcode is currently unused and reserved for future use.
3Funused_3FØØ|op
10x
unused_3FUnused opcode.This opcode is currently unused and reserved for future use.
40unused_40ØØ|op
10x
unused_40Unused opcode.This opcode is currently unused and reserved for future use.
41unused_41ØØ|op
10x
unused_41Unused opcode.This opcode is currently unused and reserved for future use.
42unused_42ØØ|op
10x
unused_42Unused opcode.This opcode is currently unused and reserved for future use.
43unused_43ØØ|op
10x
unused_43Unused opcode.This opcode is currently unused and reserved for future use.
44agetAA|op BB CC
23x
aget vAA, vBB, vCCGet an integer value from an array.Retrieves the integer value from the array referenced by vBB at the index specified by vCC and stores it in vAA.
45aget-wideAA|op BB CC
23x
aget-wide vAA, vBB, vCCGet a long or double value from an array.Retrieves the long or double value from the array referenced by vBB at the index specified by vCC and stores it in vAA,vAA+1.
46aget-objectAA|op BB CC
23x
aget-object vAA, vBB, vCCGet an object reference from an array.Retrieves the object reference from the array referenced by vBB at the index specified by vCC and stores it in vAA.
47aget-booleanAA|op BB CC
23x
aget-boolean vAA, vBB, vCCGet a boolean value from an array.Retrieves the boolean value from the array referenced by vBB at the index specified by vCC and stores it in vAA.
48aget-byteAA|op BB CC
23x
aget-byte vAA, vBB, vCCGet a byte value from an array.Retrieves the byte value from the array referenced by vBB at the index specified by vCC and stores it in vAA.
49aget-charAA|op BB CC
23x
aget-char vAA, vBB, vCCGet a char value from an array.Retrieves the char value from the array referenced by vBB at the index specified by vCC and stores it in vAA.
4Aaget-shortAA|op BB CC
23x
aget-short vAA, vBB, vCCGet a short value from an array.Retrieves the short value from the array referenced by vBB at the index specified by vCC and stores it in vAA.
4BaputAA|op BB CC
23x
aput vAA, vBB, vCCStore an integer value into an array.Stores the integer value from vAA into the array referenced by vBB at the index specified by vCC.
4Caput-wideAA|op BB CC
23x
aput-wide vAA, vBB, vCCStore a long or double value into an array.Stores the long or double value from vAA,vAA+1 into the array referenced by vBB at the index specified by vCC.
4Daput-objectAA|op BB CC
23x
aput-object vAA, vBB, vCCStore an object reference into an array.Stores the object reference from vAA into the array referenced by vBB at the index specified by vCC.
4Eaput-booleanAA|op BB CC
23x
aput-boolean vAA, vBB, vCCStore a boolean value into an array.Stores the boolean value from vAA into the array referenced by vBB at the index specified by vCC.
4Faput-byteAA|op BB CC
23x
aput-byte vAA, vBB, vCCStore a byte value into an array.Stores the byte value from vAA into the array referenced by vBB at the index specified by vCC.
50aput-charAA|op BB CC
23x
aput-char vAA, vBB, vCCStore a char value into an array.Stores the char value from vAA into the array referenced by vBB at the index specified by vCC.
51aput-shortAA|op BB CC
23x
aput-short vAA, vBB, vCCStore a short value into an array.Stores the short value from vAA into the array referenced by vBB at the index specified by vCC.
52igetB|A|op CCCC
22c
iget vA, vB, field@CCCCGet an instance field value.Retrieves the value of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA.
53iget-wideB|A|op CCCC
22c
iget-wide vA, vB, field@CCCCGet a long or double instance field value.Retrieves the long or double value of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA,vA+1.
54iget-objectB|A|op CCCC
22c
iget-object vA, vB, field@CCCCGet an object reference instance field value.Retrieves the object reference of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA.
55iget-booleanB|A|op CCCC
22c
iget-boolean vA, vB, field@CCCCGet a boolean instance field value.Retrieves the boolean value of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA.
56iget-byteB|A|op CCCC
22c
iget-byte vA, vB, field@CCCCGet a byte instance field value.Retrieves the byte value of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA.
57iget-charB|A|op CCCC
22c
iget-char vA, vB, field@CCCCGet a char instance field value.Retrieves the char value of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA.
58iget-shortB|A|op CCCC
22c
iget-short vA, vB, field@CCCCGet a short instance field value.Retrieves the short value of the instance field specified by field@CCCC from the object referenced by vB and stores it in vA.
59iputB|A|op CCCC
22c
iput vA, vB, field@CCCCStore a value into an instance field.Stores the value from vA into the instance field specified by field@CCCC of the object referenced by vB.
5Aiput-wideB|A|op CCCC
22c
iput-wide vA, vB, field@CCCCStore a long or double value into an instance field.Stores the long or double value from vA,vA+1 into the instance field specified by field@CCCC of the object referenced by vB.
5Biput-objectB|A|op CCCC
22c
iput-object vA, vB, field@CCCCStore an object reference into an instance field.Stores the object reference from vA into the instance field specified by field@CCCC of the object referenced by vB.
5Ciput-booleanB|A|op CCCC
22c
iput-boolean vA, vB, field@CCCCStore a boolean value into an instance field.Stores the boolean value from vA into the instance field specified by field@CCCC of the object referenced by vB.
5Diput-byteB|A|op CCCC
22c
iput-byte vA, vB, field@CCCCStore a byte value into an instance field.Stores the byte value from vA into the instance field specified by field@CCCC of the object referenced by vB.
5Eiput-charB|A|op CCCC
22c
iput-char vA, vB, field@CCCCStore a char value into an instance field.Stores the char value from vA into the instance field specified by field@CCCC of the object referenced by vB.
5Fiput-shortB|A|op CCCC
22c
iput-short vA, vB, field@CCCCStore a short value into an instance field.Stores the short value from vA into the instance field specified by field@CCCC of the object referenced by vB.
60sgetAA|op BBBB
21c
sget vAA, field@BBBBGet a static field value.Retrieves the value of the static field specified by field@BBBB and stores it in vAA.
61sget-wideAA|op BBBB
21c
sget-wide vAA, field@BBBBGet a long or double static field value.Retrieves the long or double value of the static field specified by field@BBBB and stores it in vAA,vAA+1.
62sget-objectAA|op BBBB
21c
sget-object vAA, field@BBBBGet an object reference static field value.Retrieves the object reference of the static field specified by field@BBBB and stores it in vAA.
63sget-booleanAA|op BBBB
21c
sget-boolean vAA, field@BBBBGet a boolean static field value.Retrieves the boolean value of the static field specified by field@BBBB and stores it in vAA.
64sget-byteAA|op BBBB
21c
sget-byte vAA, field@BBBBGet a byte static field value.Retrieves the byte value of the static field specified by field@BBBB and stores it in vAA.
65sget-charAA|op BBBB
21c
sget-char vAA, field@BBBBGet a char static field value.Retrieves the char value of the static field specified by field@BBBB and stores it in vAA.
66sget-shortAA|op BBBB
21c
sget-short vAA, field@BBBBGet a short static field value.Retrieves the short value of the static field specified by field@BBBB and stores it in vAA.
67sputAA|op BBBB
21c
sput vAA, field@BBBBStore a value into a static field.Stores the value from vAA into the static field specified by field@BBBB.
68sput-wideAA|op BBBB
21c
sput-wide vAA, field@BBBBStore a long or double value into a static field.Stores the long or double value from vAA,vAA+1 into the static field specified by field@BBBB.
69sput-objectAA|op BBBB
21c
sput-object vAA, field@BBBBStore an object reference into a static field.Stores the object reference from vAA into the static field specified by field@BBBB.
6Asput-booleanAA|op BBBB
21c
sput-boolean vAA, field@BBBBStore a boolean value into a static field.Stores the boolean value from vAA into the static field specified by field@BBBB.
6Bsput-byteAA|op BBBB
21c
sput-byte vAA, field@BBBBStore a byte value into a static field.Stores the byte value from vAA into the static field specified by field@BBBB.
6Csput-charAA|op BBBB
21c
sput-char vAA, field@BBBBStore a char value into a static field.Stores the char value from vAA into the static field specified by field@BBBB.
6Dsput-shortAA|op BBBB
21c
sput-short vAA, field@BBBBStore a short value into a static field.Stores the short value from vAA into the static field specified by field@BBBB.
6Einvoke-virtualA|G|op BBBB F|E|D|C
35c
invoke-virtual {vC, vD, vE, vF, vG}, meth@BBBBInvoke a virtual method.Invokes the virtual method specified by meth@BBBB with the arguments from the specified registers. The result (if any) can be stored with a `move-result*` instruction immediately following this one.
6Finvoke-superA|G|op BBBB F|E|D|C
35c
invoke-super {vC, vD, vE, vF, vG}, meth@BBBBInvoke the closest superclass's virtual method.Invokes the closest superclass's virtual method specified by meth@BBBB with the arguments from the specified registers. This is used for methods that are not `static`, `private`, or constructor.
70invoke-directA|G|op BBBB F|E|D|C
35c
invoke-direct {vC, vD, vE, vF, vG}, meth@BBBBInvoke a direct method.Invokes the direct method specified by meth@BBBB with the arguments from the specified registers. Direct methods are non-overridable instance methods, such as `private` methods or constructor.
71invoke-staticA|G|op BBBB F|E|D|C
35c
invoke-static {vC, vD, vE, vF, vG}, meth@BBBBInvoke a static method.Invokes the static method specified by meth@BBBB with the arguments from the specified registers. Static methods are always direct methods.
72invoke-interfaceA|G|op BBBB F|E|D|C
35c
invoke-interface {vC, vD, vE, vF, vG}, meth@BBBBInvoke an interface method.Invokes the interface method specified by meth@BBBB with the arguments from the specified registers. This is used for methods on objects whose concrete class is not known.
73unused_73ØØ|op
10x
unused_73Unused opcode.This opcode is currently unused and reserved for future use.
74invoke-virtual/rangeAA|op BBBB CCCC
3rc
invoke-virtual/range {vCCCC .. vNNNN}, meth@BBBBInvoke a virtual method with a range of registers.Invokes the virtual method specified by meth@BBBB with the arguments from the specified range of registers. The result (if any) can be stored with a `move-result*` instruction immediately following this one.
75invoke-super/rangeAA|op BBBB CCCC
3rc
invoke-super/range {vCCCC .. vNNNN}, meth@BBBBInvoke the closest superclass's virtual method with a range of registers.Invokes the closest superclass's virtual method specified by meth@BBBB with the arguments from the specified range of registers.
76invoke-direct/rangeAA|op BBBB CCCC
3rc
invoke-direct/range {vCCCC .. vNNNN}, meth@BBBBInvoke a direct method with a range of registers.Invokes the direct method specified by meth@BBBB with the arguments from the specified range of registers. Direct methods are non-overridable instance methods, such as `private` methods or constructors.
77invoke-static/rangeAA|op BBBB CCCC
3rc
invoke-static/range {vCCCC .. vNNNN}, meth@BBBBInvoke a static method with a range of registers.Invokes the static method specified by meth@BBBB with the arguments from the specified range of registers. Static methods are always direct methods.
78invoke-interface/rangeAA|op BBBB CCCC
3rc
invoke-interface/range {vCCCC .. vNNNN}, meth@BBBBInvoke an interface method with a range of registers.Invokes the interface method specified by meth@BBBB with the arguments from the specified range of registers. This is used for methods on objects whose concrete class is not known.
79unused_79ØØ|op
10x
unused_79Unused opcode.This opcode is currently unused and reserved for future use.
7Aunused_7AØØ|op
10x
unused_7AUnused opcode.This opcode is currently unused and reserved for future use.
7Bneg-intB|A|op
12x
neg-int vA, vBNegate an integer value.Negates the integer value in vB and stores the result in vA.
7Cnot-intB|A|op
12x
not-int vA, vBPerform bitwise NOT on an integer value.Performs a bitwise NOT operation on the integer value in vB and stores the result in vA.
7Dneg-longB|A|op
12x
neg-long vA, vBNegate a long value.Negates the long value in vB,vB+1 and stores the result in vA,vA+1.
7Enot-longB|A|op
12x
not-long vA, vBPerform bitwise NOT on a long value.Performs a bitwise NOT operation on the long value in vB,vB+1 and stores the result in vA,vA+1.
7Fneg-floatB|A|op
12x
neg-float vA, vBNegate a float value.Negates the float value in vB and stores the result in vA.
80neg-doubleB|A|op
12x
neg-double vA, vBNegate a double value.Negates the double value in vB,vB+1 and stores the result in vA,vA+1.
81int-to-longB|A|op
12x
int-to-long vA, vBConvert an integer to a long.Converts the integer value in vB to a long value and stores the result in vA,vA+1.
82int-to-floatB|A|op
12x
int-to-float vA, vBConvert an integer to a float.Converts the integer value in vB to a float value and stores the result in vA.
83int-to-doubleB|A|op
12x
int-to-double vA, vBConvert an integer to a double.Converts the integer value in vB to a double value and stores the result in vA,vA+1.
84long-to-intB|A|op
12x
long-to-int vA, vBConvert a long to an integer.Converts the long value in vB,vB+1 to an integer value and stores the result in vA.
85long-to-floatB|A|op
12x
long-to-float vA, vBConvert a long to a float.Converts the long value in vB,vB+1 to a float value and stores the result in vA.
86long-to-doubleB|A|op
12x
long-to-double vA, vBConvert a long to a double.Converts the long value in vB,vB+1 to a double value and stores the result in vA,vA+1.
87float-to-intB|A|op
12x
float-to-int vA, vBConvert a float to an integer.Converts the float value in vB to an integer value and stores the result in vA.
88float-to-longB|A|op
12x
float-to-long vA, vBConvert a float to a long.Converts the float value in vB to a long value and stores the result in vA,vA+1.
89float-to-doubleB|A|op
12x
float-to-double vA, vBConvert a float to a double.Converts the float value in vB to a double value and stores the result in vA,vA+1.
8Adouble-to-intB|A|op
12x
double-to-int vA, vBConvert a double to an integer.Converts the double value in vB,vB+1 to an integer value and stores the result in vA.
8Bdouble-to-longB|A|op
12x
double-to-long vA, vBConvert a double to a long.Converts the double value in vB,vB+1 to a long value and stores the result in vA,vA+1.
8Cdouble-to-floatB|A|op
12x
double-to-float vA, vBConvert a double to a float.Converts the double value in vB,vB+1 to a float value and stores the result in vA.
8Dint-to-byteB|A|op
12x
int-to-byte vA, vBConvert an integer to a byte.Converts the integer value in vB to a byte value and stores the result in vA.
8Eint-to-charB|A|op
12x
int-to-char vA, vBConvert an integer to a char.Converts the integer value in vB to a char value and stores the result in vA.
8Fint-to-shortB|A|op
12x
int-to-short vA, vBConvert an integer to a short.Converts the integer value in vB to a short value and stores the result in vA.
90add-intAA|op BB CC
23x
add-int vAA, vBB, vCCAdd two integer values.Adds the integer values in vBB and vCC and stores the result in vAA.
91sub-intAA|op BB CC
23x
sub-int vAA, vBB, vCCSubtract two integer values.Subtracts the integer value in vCC from the integer value in vBB and stores the result in vAA.
92mul-intAA|op BB CC
23x
mul-int vAA, vBB, vCCMultiply two integer values.Multiplies the integer values in vBB and vCC and stores the result in vAA.
93div-intAA|op BB CC
23x
div-int vAA, vBB, vCCDivide two integer values.Divides the integer value in vBB by the integer value in vCC and stores the result in vAA.
94rem-intAA|op BB CC
23x
rem-int vAA, vBB, vCCCompute the remainder of two integer values.Computes the remainder of the integer value in vBB divided by the integer value in vCC and stores the result in vAA.
95and-intAA|op BB CC
23x
and-int vAA, vBB, vCCPerform bitwise AND on two integer values.Performs a bitwise AND operation on the integer values in vBB and vCC and stores the result in vAA.
96or-intAA|op BB CC
23x
or-int vAA, vBB, vCCPerform bitwise OR on two integer values.Performs a bitwise OR operation on the integer values in vBB and vCC and stores the result in vAA.
97xor-intAA|op BB CC
23x
xor-int vAA, vBB, vCCPerform bitwise XOR on two integer values.Performs a bitwise XOR operation on the integer values in vBB and vCC and stores the result in vAA.
98shl-intAA|op BB CC
23x
shl-int vAA, vBB, vCCShift an integer value left.Shifts the integer value in vBB left by the number of bits specified in vCC and stores the result in vAA.
99shr-intAA|op BB CC
23x
shr-int vAA, vBB, vCCShift an integer value right.Shifts the integer value in vBB right by the number of bits specified in vCC and stores the result in vAA.
9Aushr-intAA|op BB CC
23x
ushr-int vAA, vBB, vCCUnsigned shift an integer value right.Performs an unsigned right shift on the integer value in vBB by the number of bits specified in vCC and stores the result in vAA.
9Badd-longAA|op BB CC
23x
add-long vAA, vBB, vCCAdd two long values.Adds the long values in vBB,vBB+1 and vCC,vCC+1 and stores the result in vAA,vAA+1.
9Csub-longAA|op BB CC
23x
sub-long vAA, vBB, vCCSubtract two long values.Subtracts the long value in vCC,vCC+1 from the long value in vBB,vBB+1 and stores the result in vAA,vAA+1.
9Dmul-longAA|op BB CC
23x
mul-long vAA, vBB, vCCMultiply two long values.Multiplies the long values in vBB,vBB+1 and vCC,vCC+1 and stores the result in vAA,vAA+1.
9Ediv-longAA|op BB CC
23x
div-long vAA, vBB, vCCDivide two long values.Divides the long value in vBB,vBB+1 by the long value in vCC,vCC+1 and stores the result in vAA,vAA+1.
9Frem-longAA|op BB CC
23x
rem-long vAA, vBB, vCCCompute the remainder of two long values.Computes the remainder of the long value in vBB,vBB+1 divided by the long value in vCC,vCC+1 and stores the result in vAA,vAA+1.
A0and-longAA|op BB CC
23x
and-long vAA, vBB, vCCPerform bitwise AND on two long values.Performs a bitwise AND operation on the long values in vBB,vBB+1 and vCC,vCC+1 and stores the result in vAA,vAA+1.
A1or-longAA|op BB CC
23x
or-long vAA, vBB, vCCPerform bitwise OR on two long values.Performs a bitwise OR operation on the long values in vBB,vBB+1 and vCC,vCC+1 and stores the result in vAA,vAA+1.
A2xor-longAA|op BB CC
23x
xor-long vAA, vBB, vCCPerform bitwise XOR on two long values.Performs a bitwise XOR operation on the long values in vBB,vBB+1 and vCC,vCC+1 and stores the result in vAA,vAA+1.
A3shl-longAA|op BB CC
23x
shl-long vAA, vBB, vCCShift a long value left.Shifts the long value in vBB,vBB+1 left by the number of bits specified in vCC and stores the result in vAA,vAA+1.
A4shr-longAA|op BB CC
23x
shr-long vAA, vBB, vCCShift a long value right.Shifts the long value in vBB,vBB+1 right by the number of bits specified in vCC and stores the result in vAA,vAA+1.
A5ushr-longAA|op BB CC
23x
ushr-long vAA, vBB, vCCUnsigned shift a long value right.Performs an unsigned right shift on the long value in vBB,vBB+1 by the number of bits specified in vCC and stores the result in vAA,vAA+1.
A6add-floatAA|op BB CC
23x
add-float vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Adds the float value in vBB to the float value in vCC and stores the result in vAA.
A7sub-floatAA|op BB CC
23x
sub-float vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Subtracts the float value in vCC from the float value in vBB and stores the result in vAA.
A8mul-floatAA|op BB CC
23x
mul-float vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Multiplies the float value in vBB by the float value in vCC and stores the result in vAA.
A9div-floatAA|op BB CC
23x
div-float vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Divides the float value in vBB by the float value in vCC and stores the result in vAA.
AArem-floatAA|op BB CC
23x
rem-float vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Calculates the remainder of the division of the float value in vBB by the float value in vCC and stores the result in vAA.
ABadd-doubleAA|op BB CC
23x
add-double vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Adds the double value in vBB,vBB+1 to the double value in vCC,vCC+1 and stores the result in vAA,vAA+1.
ACsub-doubleAA|op BB CC
23x
sub-double vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Subtracts the double value in vCC,vCC+1 from the double value in vBB,vBB+1 and stores the result in vAA,vAA+1.
ADmul-doubleAA|op BB CC
23x
mul-double vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Multiplies the double value in vBB,vBB+1 by the double value in vCC,vCC+1 and stores the result in vAA,vAA+1.
AEdiv-doubleAA|op BB CC
23x
div-double vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Divides the double value in vBB,vBB+1 by the double value in vCC,vCC+1 and stores the result in vAA,vAA+1.
AFrem-doubleAA|op BB CC
23x
rem-double vAA, vBB, vCCPerform the identified binary operation on the two source registers, storing the result in the destination register.Calculates the remainder of the division of the double value in vBB,vBB+1 by the double value in vCC,vCC+1 and stores the result in vAA,vAA+1.
B0add-int/2addrB|A|op
12x
add-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Adds the int value in vB to the int value in vA and stores the result in vA.
B1sub-int/2addrB|A|op
12x
sub-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Subtracts the int value in vB from the int value in vA and stores the result in vA.
B2mul-int/2addrB|A|op
12x
mul-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Multiplies the int value in vA by the int value in vB and stores the result in vA.
B3div-int/2addrB|A|op
12x
div-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Divides the int value in vA by the int value in vB and stores the result in vA.
B4rem-int/2addrB|A|op
12x
rem-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Calculates the remainder of the division of the int value in vA by the int value in vB and stores the result in vA.
B5and-int/2addrB|A|op
12x
and-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs a bitwise AND operation on the int value in vA and the int value in vB and stores the result in vA.
B6or-int/2addrB|A|op
12x
or-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs a bitwise OR operation on the int value in vA and the int value in vB and stores the result in vA.
B7xor-int/2addrB|A|op
12x
xor-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs a bitwise XOR operation on the int value in vA and the int value in vB and stores the result in vA.
B8shl-int/2addrB|A|op
12x
shl-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Shifts the int value in vA left by the number of bits specified in vB and stores the result in vA.
B9shr-int/2addrB|A|op
12x
shr-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Shifts the int value in vA right by the number of bits specified in vB and stores the result in vA.
BAushr-int/2addrB|A|op
12x
ushr-int/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs an unsigned right shift on the int value in vA by the number of bits specified in vB and stores the result in vA.
BBadd-long/2addrB|A|op
12x
add-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Adds the long value in vB,vB+1 to the long value in vA,vA+1 and stores the result in vA,vA+1.
BCsub-long/2addrB|A|op
12x
sub-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Subtracts the long value in vB,vB+1 from the long value in vA,vA+1 and stores the result in vA,vA+1.
BDmul-long/2addrB|A|op
12x
mul-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Multiplies the long value in vA,vA+1 by the long value in vB,vB+1 and stores the result in vA,vA+1.
BEdiv-long/2addrB|A|op
12x
div-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Divides the long value in vA,vA+1 by the long value in vB,vB+1 and stores the result in vA,vA+1.
BFrem-long/2addrB|A|op
12x
rem-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Calculates the remainder of the division of the long value in vA,vA+1 by the long value in vB,vB+1 and stores the result in vA,vA+1.
C0and-long/2addrB|A|op
12x
and-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs a bitwise AND operation on the long value in vA,vA+1 and the long value in vB,vB+1 and stores the result in vA,vA+1.
C1or-long/2addrB|A|op
12x
or-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs a bitwise OR operation on the long value in vA,vA+1 and the long value in vB,vB+1 and stores the result in vA,vA+1.
C2xor-long/2addrB|A|op
12x
xor-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs a bitwise XOR operation on the long value in vA,vA+1 and the long value in vB,vB+1 and stores the result in vA,vA+1.
C3shl-long/2addrB|A|op
12x
shl-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Shifts the long value in vA,vA+1 left by the number of bits specified in vB and stores the result in vA.
C4shr-long/2addrB|A|op
12x
shr-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Shifts the long value in vA,vA+1 right by the number of bits specified in vB and stores the result in vA.
C5ushr-long/2addrB|A|op
12x
ushr-long/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Performs an unsigned right shift on the long value in vA,vA+1 by the number of bits specified in vB and stores the result in vA.
C6add-float/2addrB|A|op
12x
add-float/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Adds the float value in vB to the float value in vA and stores the result in vA.
C7sub-float/2addrB|A|op
12x
sub-float/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Subtracts the float value in vB from the float value in vA and stores the result in vA.
C8mul-float/2addrB|A|op
12x
mul-float/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Multiplies the float value in vA by the float value in vB and stores the result in vA.
C9div-float/2addrB|A|op
12x
div-float/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Divides the float value in vA by the float value in vB and stores the result in vA.
CArem-float/2addrB|A|op
12x
rem-float/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Calculates the remainder of the division of the float value in vA by the float value in vB and stores the result in vA.
CBadd-double/2addrB|A|op
12x
add-double/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Adds the double value in vB,vB+1 to the double value in vA,vA+1 and stores the result in vA,vA+1.
CCsub-double/2addrB|A|op
12x
sub-double/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Subtracts the double value in vB,vB+1 from the double value in vA,vA+1 and stores the result in vA,vA+1.
CDmul-double/2addrB|A|op
12x
mul-double/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Multiplies the double value in vA,vA+1 by the double value in vB,vB+1 and stores the result in vA,vA+1.
CEdiv-double/2addrB|A|op
12x
div-double/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Divides the double value in vA,vA+1 by the double value in vB,vB+1 and stores the result in vA,vA+1.
CFrem-double/2addrB|A|op
12x
rem-double/2addr vA, vBPerform the identified binary operation on the two source registers, storing the result in the first source register.Calculates the remainder of the division of the double value in vA,vA+1 by the double value in vB,vB+1 and stores the result in vA,vA+1.
D0add-int/lit16B|A|op CCCC
22s
add-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Adds the int value in vB to the literal value CCCC and stores the result in vA.
D1rsub-intB|A|op CCCC
22s
rsub-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Subtracts the int value in vB from the literal value CCCC and stores the result in vA.
D2mul-int/lit16B|A|op CCCC
22s
mul-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Multiplies the int value in vB by the literal value CCCC and stores the result in vA.
D3div-int/lit16B|A|op CCCC
22s
div-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Divides the int value in vB by the literal value CCCC and stores the result in vA.
D4rem-int/lit16B|A|op CCCC
22s
rem-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Calculates the remainder of the division of the int value in vB by the literal value CCCC and stores the result in vA.
D5and-int/lit16B|A|op CCCC
22s
and-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs a bitwise AND operation on the int value in vB and the literal value CCCC and stores the result in vA.
D6or-int/lit16B|A|op CCCC
22s
or-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs a bitwise OR operation on the int value in vB and the literal value CCCC and stores the result in vA.
D7xor-int/lit16B|A|op CCCC
22s
xor-int/lit16 vA, vB, #+CCCCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs a bitwise XOR operation on the int value in vB and the literal value CCCC and stores the result in vA.
D8add-int/lit8AA|op BB CC
22b
add-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Adds the int value in vBB to the literal value CC and stores the result in vAA.
D9rsub-int/lit8AA|op BB CC
22b
rsub-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Subtracts the int value in vBB from the literal value CC and stores the result in vAA.
DAmul-int/lit8AA|op BB CC
22b
mul-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Multiplies the int value in vBB by the literal value CC and stores the result in vAA.
DBdiv-int/lit8AA|op BB CC
22b
div-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Divides the int value in vBB by the literal value CC and stores the result in vAA.
DCrem-int/lit8AA|op BB CC
22b
rem-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Calculates the remainder of the division of the int value in vBB by the literal value CC and stores the result in vAA.
DDand-int/lit8AA|op BB CC
22b
and-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs a bitwise AND operation on the int value in vBB and the literal value CC and stores the result in vAA.
DEor-int/lit8AA|op BB CC
22b
or-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs a bitwise OR operation on the int value in vBB and the literal value CC and stores the result in vAA.
DFxor-int/lit8AA|op BB CC
22b
xor-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs a bitwise XOR operation on the int value in vBB and the literal value CC and stores the result in vAA.
E0shl-int/lit8AA|op BB CC
22b
shl-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Shifts the int value in vBB left by the number of bits specified by the literal value CC and stores the result in vAA.
E1shr-int/lit8AA|op BB CC
22b
shr-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Shifts the int value in vBB right by the number of bits specified by the literal value CC and stores the result in vAA.
E2ushr-int/lit8AA|op BB CC
22b
ushr-int/lit8 vAA, vBB, #+CCPerform the indicated binary op on the indicated register (first argument) and literal value (second argument), storing the result in the destination register.Performs an unsigned right shift on the int value in vBB by the number of bits specified by the literal value CC and stores the result in vAA.
E3unused_E3ØØ|op
10x
unused_E3Unused opcode.This opcode is currently unused and reserved for future use.
E4unused_E4ØØ|op
10x
unused_E4Unused opcode.This opcode is currently unused and reserved for future use.
E5unused_E5ØØ|op
10x
unused_E5Unused opcode.This opcode is currently unused and reserved for future use.
E6unused_E6ØØ|op
10x
unused_E6Unused opcode.This opcode is currently unused and reserved for future use.
E7unused_E7ØØ|op
10x
unused_E7Unused opcode.This opcode is currently unused and reserved for future use.
E8unused_E8ØØ|op
10x
unused_E8Unused opcode.This opcode is currently unused and reserved for future use.
E9unused_E9ØØ|op
10x
unused_E9Unused opcode.This opcode is currently unused and reserved for future use.
EAunused_EAØØ|op
10x
unused_EAUnused opcode.This opcode is currently unused and reserved for future use.
EBunused_EBØØ|op
10x
unused_EBUnused opcode.This opcode is currently unused and reserved for future use.
ECunused_ECØØ|op
10x
unused_ECUnused opcode.This opcode is currently unused and reserved for future use.
EDunused_EDØØ|op
10x
unused_EDUnused opcode.This opcode is currently unused and reserved for future use.
EEunused_EEØØ|op
10x
unused_EEUnused opcode.This opcode is currently unused and reserved for future use.
EFunused_EFØØ|op
10x
unused_EFUnused opcode.This opcode is currently unused and reserved for future use.
F0unused_F0ØØ|op
10x
unused_F0Unused opcode.This opcode is currently unused and reserved for future use.
F1unused_F1ØØ|op
10x
unused_F1Unused opcode.This opcode is currently unused and reserved for future use.
F2unused_F2ØØ|op
10x
unused_F2Unused opcode.This opcode is currently unused and reserved for future use.
F3unused_F3ØØ|op
10x
unused_F3Unused opcode.This opcode is currently unused and reserved for future use.
F4unused_F4ØØ|op
10x
unused_F4Unused opcode.This opcode is currently unused and reserved for future use.
F5unused_F5ØØ|op
10x
unused_F5Unused opcode.This opcode is currently unused and reserved for future use.
F6unused_F6ØØ|op
10x
unused_F6Unused opcode.This opcode is currently unused and reserved for future use.
F7unused_F7ØØ|op
10x
unused_F7Unused opcode.This opcode is currently unused and reserved for future use.
F8unused_F8ØØ|op
10x
unused_F8Unused opcode.This opcode is currently unused and reserved for future use.
F9unused_F9ØØ|op
10x
unused_F9Unused opcode.This opcode is currently unused and reserved for future use.
FAinvoke-polymorphicA|G|op BBBB F|E|D|C HHHH
45cc
invoke-polymorphic {vC, vD, vE, vF, vG}, meth@BBBB, proto@HHHHInvoke the indicated signature polymorphic method.Invokes the signature polymorphic method specified by meth@BBBB with the arguments in registers vC, vD, vE, vF, and vG, according to the prototype specified by proto@HHHH. The method reference must be to a signature polymorphic method, such as `java.lang.invoke.MethodHandle.invoke` or `java.lang.invoke.MethodHandle.invokeExact`. The receiver must be an object supporting the signature polymorphic method being invoked.
FBinvoke-polymorphic/rangeAA|op BBBB CCCC HHHH
4rcc
invoke-polymorphic/range {vCCCC .. vNNNN}, meth@BBBB, proto@HHHHInvoke the indicated signature polymorphic method.Invokes the signature polymorphic method specified by meth@BBBB with the arguments in the range of registers from vCCCC to vNNNN, according to the prototype specified by proto@HHHH. The method reference must be to a signature polymorphic method. The receiver must be an object supporting the signature polymorphic method being invoked.
FCinvoke-customA|G|op BBBB F|E|D|C
35c
invoke-custom {vC, vD, vE, vF, vG}, call_site@BBBBResolves and invokes the indicated call site.Resolves and invokes the call site specified by call_site@BBBB. This instruction executes in two phases: call site resolution and call site invocation. If the call site does not have an associated `java.lang.invoke.CallSite` instance, the bootstrap linker method is invoked. The bootstrap linker method returns a `java.lang.invoke.CallSite` instance, which is then associated with the call site. Call site invocation is made on the `java.lang.invoke.MethodHandle` target of the resolved `java.lang.invoke.CallSite` instance. The target is invoked as if executing `invoke-polymorphic`.
FDinvoke-custom/rangeAA|op BBBB CCCC
3rc
invoke-custom/range {vCCCC .. vNNNN}, call_site@BBBBResolve and invoke a call site.Resolves and invokes the call site specified by call_site@BBBB with arguments in the range of registers from vCCCC to vNNNN. This instruction follows the same two-phase execution as `invoke-custom`: call site resolution and call site invocation.
FEconst-method-handleAA|op BBBB
21c
const-method-handle vAA, method_handle@BBBBMove a reference to the method handle into the specified register.Moves a reference to the method handle specified by method_handle@BBBB into vAA.
FFconst-method-typeAA|op BBBB
21c
const-method-type vAA, proto@BBBBMove a reference to the method prototype into the specified register.Moves a reference to the method prototype specified by proto@BBBB into vAA.