You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
53 lines
1.2 KiB
53 lines
1.2 KiB
11 years ago
|
/*
|
||
|
* Fernflower - The Analytical Java Decompiler
|
||
|
* http://www.reversed-java.com
|
||
|
*
|
||
|
* (C) 2008 - 2010, Stiver
|
||
|
*
|
||
|
* This software is NEITHER public domain NOR free software
|
||
|
* as per GNU License. See license.txt for more details.
|
||
|
*
|
||
|
* This software is distributed WITHOUT ANY WARRANTY; without
|
||
|
* even the implied warranty of MERCHANTABILITY or FITNESS FOR
|
||
|
* A PARTICULAR PURPOSE.
|
||
|
*/
|
||
|
|
||
10 years ago
|
package org.jetbrains.java.decompiler.code.optinstructions;
|
||
11 years ago
|
|
||
|
import java.io.DataOutputStream;
|
||
|
import java.io.IOException;
|
||
|
|
||
10 years ago
|
import org.jetbrains.java.decompiler.code.Instruction;
|
||
11 years ago
|
|
||
|
public class ISTORE extends Instruction {
|
||
|
|
||
|
private static int[] opcodes = new int[] {opc_istore_0,opc_istore_1,opc_istore_2,opc_istore_3};
|
||
|
|
||
|
public void writeToStream(DataOutputStream out, int offset) throws IOException {
|
||
|
int index = getOperand(0);
|
||
|
if(index>3) {
|
||
|
if(wide) {
|
||
|
out.writeByte(opc_wide);
|
||
|
}
|
||
|
out.writeByte(opc_istore);
|
||
|
if(wide) {
|
||
|
out.writeShort(index);
|
||
|
} else {
|
||
|
out.writeByte(index);
|
||
|
}
|
||
|
} else {
|
||
|
out.writeByte(opcodes[index]);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
public int length() {
|
||
|
int index = getOperand(0);
|
||
|
if(index>3) {
|
||
|
return wide?4:2;
|
||
|
} else {
|
||
|
return 1;
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|