lshr :
long integer arithmetic shift right : index : visitInsn()
- Description
- Pops an int and a long integer from the stack. Shifts value2 (the
long integer) right by the amount indicated in the low six bits of
value1 (an int). The long integer result is then pushed back onto
the stack. The value is shifted arithmetically (preserving the sign
extension).
This is the same as computing the expression:
x / 2s
where s is value1 and x is value2. - Example
; This is like the Java code:
; long x;
; x >>= 3;
;
lload_1 ; load long in local variable 1 onto stack
iconst_3 ; push the integer 3 onto the stack
lshr ; arithmetic shift right
lstore_1 ; store the long result in local variable 1
- See also
- ishl ishr iushr lshl lushr iand land ior lor ixor lxor
- Stack
Before
|
After |
value1 |
result-word1 |
value2-word1 |
result-word2 |
value2-word2 |
... |
... |
... |
- Bytecode
Type
|
Description |
u1
|
lshr
opcode = 0x7B (123)
|