01: package net.sf.jdec.jvminstructions.commands;
02:
03: import net.sf.jdec.core.Operand;
04: import net.sf.jdec.core.OperandStack;
05: import net.sf.jdec.reflection.Behaviour;
06:
07: public class IushrCommand extends AbstractInstructionCommand {
08:
09: public IushrCommand(Behaviour context) {
10: super (context);
11:
12: }
13:
14: public int getSkipBytes() {
15: return 0;
16: }
17:
18: public void execute() {
19: OperandStack opStack = getStack();
20: Operand op = (Operand) opStack.pop();
21: Operand op1 = (Operand) opStack.pop();
22:
23: op.setOperandValue(op.getOperandValue() + " & 31");
24:
25: Operand op2 = new Operand();
26: op2.setOperandValue("(" + op1.getOperandValue() + ">>>"
27: + op.getOperandValue() + ")");
28:
29: boolean r = false;// checkIFLoadInstIsPartOFTernaryCond(currentForIndex);
30: if (r) {
31: if (opStack.size() > 0) {
32: java.lang.String str = opStack.getTopOfStack()
33: .getOperandValue();
34: str = str + op2.getOperandValue();
35: op2.setOperandValue(str);
36: }
37: }
38: opStack.push(op2);
39: }
40:
41: }
|