Java Virtual Machine Online Instruction Reference Manual

Java Virtual Machine
Online Instruction Reference Manual

Jon Meyer, Troy Downing,
O'Reilly Associates.

This is an online DRAFT version of the instruction reference (Chapter 13) printed in Java Virtual Machine, by Jon Meyer and Troy Downing, published by O'Reilly Associates, ISBN 1-56592-194-1. See book details for further information on this book.

The material presented here probably has some typos and minor errors, but we felt that it would still be a useful reference source for people looking for details of the JVM. You can also see Jasmin Home Page for further information on Jasmin and the JVM.


This material is provided on an "AS IS" basis without warranty of any kind, including without limitation the warranties of merchantability, fitness for a purpose and non-infringement. The entire risk as to the quality and performance of the Software is borne by you. Should the Software prove defective, you and not Chris Hector assume the entire cost of any service and repair. SOME JURISDICTIONS DO NOT ALLOW EXCLUSIONS OF AN IMPLIED WARRANTY, SO THIS DISCLAIMER MAY NOT APPLY TO YOU AND YOU MAY HAVE OTHER LEGAL RIGHTS THATVARY BY JURISDICTION.


  • example
  • aaload
  • aastore
  • aconst_null
  • aload
  • aload_<n>
  • anewarray
  • areturn
  • arraylength
  • astore
  • astore_<n>
  • athrow
  • baload
  • bastore
  • bipush
  • breakpoint
  • caload
  • castore
  • checkcast
  • d2f
  • d2i
  • d2l
  • dadd
  • daload
  • dastore
  • dcmpg
  • dcmpl
  • dconst_<d>
  • ddiv
  • dload
  • dload_<n>
  • dmul
  • dneg
  • drem
  • dreturn
  • dstore
  • dstore_<n>
  • dsub
  • dup
  • dup2
  • dup2_x1
  • dup2_x2
  • dup_x1
  • dup_x2
  • f2d
  • f2i
  • f2l
  • fadd
  • faload
  • fastore
  • fcmpg
  • fcmpl
  • fconst_<f>
  • fdiv
  • fload
  • fload_<n>
  • fmul
  • fneg
  • frem
  • freturn
  • fstore
  • fstore_<n>
  • fsub
  • getfield
  • getstatic
  • goto
  • goto_w
  • i2b
  • i2c
  • i2d
  • i2f
  • i2l
  • i2s
  • iadd
  • iaload
  • iand
  • iastore
  • iconst_<n>
  • iconst_m1
  • idiv
  • if_acmpeq
  • if_acmpne
  • if_icmpeq
  • if_icmpge
  • if_icmpgt
  • if_icmple
  • if_icmplt
  • if_icmpne
  • ifeq
  • ifge
  • ifgt
  • ifle
  • iflt
  • ifne
  • ifnonnull
  • ifnull
  • iinc
  • iload
  • iload_<n>
  • impdep1
  • impdep2
  • imul
  • ineg
  • instanceof
  • invokeinterface
  • invokespecial
  • invokestatic
  • invokevirtual
  • ior
  • irem
  • ireturn
  • ishl
  • ishr
  • istore
  • istore_<n>
  • isub
  • iushr
  • ixor
  • jsr
  • jsr_w
  • l2d
  • l2f
  • l2i
  • ladd
  • laload
  • land
  • lastore
  • lcmp
  • lconst_<l>
  • ldc
  • ldc_w
  • ldc2_w
  • ldiv
  • lload
  • lload_<n>
  • lmul
  • lneg
  • lookupswitch
  • lor
  • lrem
  • lreturn
  • lshl
  • lshr
  • lstore
  • lstore_<n>
  • lsub
  • lushr
  • lxor
  • monitorenter
  • monitorexit
  • multianewarray
  • new
  • newarray
  • nop
  • pop
  • pop2
  • putfield
  • putstatic
  • ret
  • return
  • saload
  • sastore
  • sipush
  • swap
  • tableswitch
  • wide

Java Virtual Machine, by Jon Meyer and Troy Downing, O'Reilly Associates
prev next contents
dload_<n>

retrieve double from local variables <n> and <n> + 1

Jasmin Syntax
     dload_0
or
    dload_1
or
    dload_2
or
    dload_3 
Stack

Before

After
...
result-word1

result-word2

...
Description

Retrieves the double-precision float stored in local variables <n> and <n> + 1 and pushes it onto the operand stack. Both <n> and <n> + 1 must be valid local variable numbers in the current frame, and together they must be holding a double.

See the description of dload for more information on how doubles are retrieved from local variables.

'dload_<n>' is functionally equivalent to 'dload <n>', although it is typically more efficient and also takes fewer bytes in the bytecode.

Example

 dload_0         ; push double in local variables 0 and 1 onto stack
dload_1         ; push double in local variables 1 and 2 onto stack
dload_2         ; push double in local variables 2 and 3 onto stack
dload_3         ; push double in local variables 3 and 4 onto stack 
Bytecode

Type

Description
u1
dload_0 opcode = 0x26 (38)
u1
dload_1 opcode = 0x27 (39)
u1
dload_2 opcode = 0x28 (40)
u1
dload_3 opcode = 0x29 (41)
See Also

dload, fload, aload, iload, lload


prev next contents
Java Virtual Machine, by Jon Meyer and Troy Downing, O'Reilly Associates