155.

prev next contents
lload

retrieve long from local variable

Jasmin Syntax
     lload <varnum> or     wide     lload <varnum> 
In the first form, <varnum> is an unsigned integer in the range 0 to 0xFF. In the second (wide) form, <varnum> is an unsigned integer in the range 0 to 0xFFFE.

Stack

Before

After
...
result-word1

result-word2

...
Description

lload retrieves a long integer held in a local variable and pushes it onto the operand stack.

Since long integers are 64-bits wide, and each local variable only holds up to 32 bits, Java uses two consecutive local variables, <varnum> and <varnum> + 1 to store a long. So lload <varnum> actually places the values of both <varnum> and <varnum> + 1 onto the operand stack.

Both <varnum> and <varnum> + 1 must be valid local variable numbers in the current frame, and together they must be holding a long.

Remember that attempting to treat two-word values as two independent single-word values will produce a verification error. So trying to retrieve either <varnum> or <varnum> + 1 independently (e.g. using iload <varnum>) will produce a verification error. Similarly, if you store a non-long value in <varnum>, then <varnum> + 1 becomes invalidated until a new value is stored in it.

Example

 lconst_1        ; push the long integer 1 onto the stack lstore 3        ; pop 1 off of the stack and store in local variables 3 and 4 lload 3         ; push the value from local variables 3 and 4 (the long integer 1)                 ; back onto the stack 
Bytecode

For local variable numbers in the range 0-255, use:

Type

Description
u1
lload opcode = 0x16 (22)
u1
<varnum>
There is also a wide format for this instruction, which supports access to all local variables from 0 to 65535:

Type

Description
u1
wide opcode = 0xC4 (196)
u1
lload opcode = 0x16 (22)
u2
<varnum>
See Also

fload, iload, dload


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


Java Virtual Machine
Java Virtual Machine (Java Series)
ISBN: 1565921941
EAN: 2147483647
Year: 1996
Pages: 171

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net