60.

prev next contents
dstore

store double in local variable

Jasmin Syntax
     dstore <varnum> or     wide     dstore <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
doube-word1
...
double-word2

...

Description

dstore pops a two-word double-precision float off the operand stack and stores it in a local variable. It takes a single parameter, <varnum>, an unsigned integer indicating which local variable to use.

Since double-precision floats are 64-bits wide, and each local variable can only hold up to 32 bits, Java uses two consecutive local variables, <varnum> and <varnum> + 1 to store a double. So dstore <varnum> actually modifies the values of both <varnum> (which is set to double-word1) and <varnum> + 1 (which is set to double-word2).

Both <varnum> and <varnum> + 1 must be valid local variable numbers in the current frame.

Example

 ldc2_w 10.0      ; push the double 10.0 onto the stack dstore 3        ; pop 10.0 off of the stack and store it in local variables 3 and 4 
Bytecode

For local variables in the range 0-255, use:

Type

Description
u1
dstore opcode = 0x39 (57)
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
dstore opcode = 0x39 (57)
u2
<varnum>
See Also

lstore, fstore, istore, astore, wide


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