Lines Matching refs:stack

31  * local variable frame and stack.
39 private final Stack stack;
52 * @param stack the local stack.
59 Stack stack,
66 this.stack = stack;
87 stack.push(valueFactory.createReferenceValueNull());
99 stack.push(valueFactory.createIntegerValue(simpleInstruction.constant));
104 stack.push(valueFactory.createLongValue(simpleInstruction.constant));
110 stack.push(valueFactory.createFloatValue((float)simpleInstruction.constant));
115 stack.push(valueFactory.createDoubleValue((double)simpleInstruction.constant));
123 IntegerValue arrayIndex = stack.ipop();
124 ReferenceValue arrayReference = stack.apop();
125 stack.push(arrayReference.integerArrayLoad(arrayIndex, valueFactory));
130 IntegerValue arrayIndex = stack.ipop();
131 ReferenceValue arrayReference = stack.apop();
132 stack.push(arrayReference.longArrayLoad(arrayIndex, valueFactory));
137 IntegerValue arrayIndex = stack.ipop();
138 ReferenceValue arrayReference = stack.apop();
139 stack.push(arrayReference.floatArrayLoad(arrayIndex, valueFactory));
144 IntegerValue arrayIndex = stack.ipop();
145 ReferenceValue arrayReference = stack.apop();
146 stack.push(arrayReference.doubleArrayLoad(arrayIndex, valueFactory));
151 IntegerValue arrayIndex = stack.ipop();
152 ReferenceValue arrayReference = stack.apop();
153 stack.push(arrayReference.referenceArrayLoad(arrayIndex, valueFactory));
161 Value value = stack.ipop();
162 IntegerValue arrayIndex = stack.ipop();
163 ReferenceValue arrayReference = stack.apop();
169 Value value = stack.lpop();
170 IntegerValue arrayIndex = stack.ipop();
171 ReferenceValue arrayReference = stack.apop();
177 Value value = stack.fpop();
178 IntegerValue arrayIndex = stack.ipop();
179 ReferenceValue arrayReference = stack.apop();
185 Value value = stack.dpop();
186 IntegerValue arrayIndex = stack.ipop();
187 ReferenceValue arrayReference = stack.apop();
193 Value value = stack.apop();
194 IntegerValue arrayIndex = stack.ipop();
195 ReferenceValue arrayReference = stack.apop();
200 stack.pop1();
204 stack.pop2();
208 stack.dup();
212 stack.dup_x1();
216 stack.dup_x2();
220 stack.dup2();
224 stack.dup2_x1();
228 stack.dup2_x2();
232 stack.swap();
236 stack.push(stack.ipop().add(stack.ipop()));
240 stack.push(stack.lpop().add(stack.lpop()));
244 stack.push(stack.fpop().add(stack.fpop()));
248 stack.push(stack.dpop().add(stack.dpop()));
252 stack.push(stack.ipop().subtractFrom(stack.ipop()));
256 stack.push(stack.lpop().subtractFrom(stack.lpop()));
260 stack.push(stack.fpop().subtractFrom(stack.fpop()));
264 stack.push(stack.dpop().subtractFrom(stack.dpop()));
268 stack.push(stack.ipop().multiply(stack.ipop()));
272 stack.push(stack.lpop().multiply(stack.lpop()));
276 stack.push(stack.fpop().multiply(stack.fpop()));
280 stack.push(stack.dpop().multiply(stack.dpop()));
286 stack.push(stack.ipop().divideOf(stack.ipop()));
290 stack.push(valueFactory.createIntegerValue());
292 //stack.clear();
293 //stack.push(valueFactory.createReference(false));
301 stack.push(stack.lpop().divideOf(stack.lpop()));
305 stack.push(valueFactory.createLongValue());
307 //stack.clear();
308 //stack.push(valueFactory.createReference(false));
314 stack.push(stack.fpop().divideOf(stack.fpop()));
318 stack.push(stack.dpop().divideOf(stack.dpop()));
324 stack.push(stack.ipop().remainderOf(stack.ipop()));
328 stack.push(valueFactory.createIntegerValue());
330 //stack.clear();
331 //stack.push(valueFactory.createReference(false));
339 stack.push(stack.lpop().remainderOf(stack.lpop()));
343 stack.push(valueFactory.createLongValue());
345 //stack.clear();
346 //stack.push(valueFactory.createReference(false));
352 stack.push(stack.fpop().remainderOf(stack.fpop()));
356 stack.push(stack.dpop().remainderOf(stack.dpop()));
360 stack.push(stack.ipop().negate());
364 stack.push(stack.lpop().negate());
368 stack.push(stack.fpop().negate());
372 stack.push(stack.dpop().negate());
376 stack.push(stack.ipop().shiftLeftOf(stack.ipop()));
380 stack.push(stack.ipop().shiftLeftOf(stack.lpop()));
384 stack.push(stack.ipop().shiftRightOf(stack.ipop()));
388 stack.push(stack.ipop().shiftRightOf(stack.lpop()));
392 stack.push(stack.ipop().unsignedShiftRightOf(stack.ipop()));
396 stack.push(stack.ipop().unsignedShiftRightOf(stack.lpop()));
400 stack.push(stack.ipop().and(stack.ipop()));
404 stack.push(stack.lpop().and(stack.lpop()));
408 stack.push(stack.ipop().or(stack.ipop()));
412 stack.push(stack.lpop().or(stack.lpop()));
416 stack.push(stack.ipop().xor(stack.ipop()));
420 stack.push(stack.lpop().xor(stack.lpop()));
424 stack.push(stack.ipop().convertToLong());
428 stack.push(stack.ipop().convertToFloat());
432 stack.push(stack.ipop().convertToDouble());
436 stack.push(stack.lpop().convertToInteger());
440 stack.push(stack.lpop().convertToFloat());
444 stack.push(stack.lpop().convertToDouble());
448 stack.push(stack.fpop().convertToInteger());
452 stack.push(stack.fpop().convertToLong());
456 stack.push(stack.fpop().convertToDouble());
460 stack.push(stack.dpop().convertToInteger());
464 stack.push(stack.dpop().convertToLong());
468 stack.push(stack.dpop().convertToFloat());
472 stack.push(stack.ipop().convertToByte());
476 stack.push(stack.ipop().convertToCharacter());
480 stack.push(stack.ipop().convertToShort());
484 // stack.push(stack.lpop().compareReverse(stack.lpop()));
486 LongValue longValue1 = stack.lpop();
487 LongValue longValue2 = stack.lpop();
488 stack.push(longValue2.compare(longValue1));
492 FloatValue floatValue1 = stack.fpop();
493 FloatValue floatValue2 = stack.fpop();
494 stack.push(floatValue2.compare(floatValue1));
498 stack.push(stack.fpop().compareReverse(stack.fpop()));
502 DoubleValue doubleValue1 = stack.dpop();
503 DoubleValue doubleValue2 = stack.dpop();
504 stack.push(doubleValue2.compare(doubleValue1));
508 stack.push(stack.dpop().compareReverse(stack.dpop()));
512 invocationUnit.exitMethod(clazz, method, stack.ipop());
517 invocationUnit.exitMethod(clazz, method, stack.lpop());
522 invocationUnit.exitMethod(clazz, method, stack.fpop());
527 invocationUnit.exitMethod(clazz, method, stack.dpop());
532 invocationUnit.exitMethod(clazz, method, stack.apop());
541 IntegerValue arrayLength = stack.ipop();
542 stack.push(valueFactory.createArrayReferenceValue(String.valueOf(InstructionUtil.internalTypeFromArrayType((byte)simpleInstruction.constant)),
548 ReferenceValue referenceValue = stack.apop();
549 stack.push(referenceValue.arrayLength(valueFactory));
553 ReferenceValue exceptionReferenceValue = stack.apop();
554 stack.clear();
555 stack.push(exceptionReferenceValue);
561 stack.apop();
579 stack.push(classConstantValueFactory.constantValue(clazz, constantIndex));
591 invocationUnit.invokeMember(clazz, method, codeAttribute, offset, constantInstruction, stack);
595 stack.push(constantValueFactory.constantValue(clazz, constantIndex).referenceValue());
602 stack.push(valueFactory.createArrayReferenceValue(referenceValue.internalType(),
604 stack.ipop()));
610 ReferenceValue castValue = stack.apop();
616 stack.push(castResultValue);
623 int instanceOf = stack.apop().instanceOf(referenceValue.getType(),
626 stack.push(instanceOf == Value.NEVER ? valueFactory.createIntegerValue(0) :
638 IntegerValue arrayLength = stack.ipop();
641 stack.push(constantValueFactory.constantValue(clazz, constantIndex).referenceValue());
662 stack.push(variables.iload(variableIndex));
670 stack.push(variables.lload(variableIndex));
678 stack.push(variables.fload(variableIndex));
686 stack.push(variables.dload(variableIndex));
694 stack.push(variables.aload(variableIndex));
702 variables.store(variableIndex, stack.ipop());
710 variables.store(variableIndex, stack.lpop());
718 variables.store(variableIndex, stack.fpop());
726 variables.store(variableIndex, stack.dpop());
734 // The operand on the stack can be a reference or a return
736 //variables.store(variableIndex, stack.apop());
737 variables.store(variableIndex, stack.pop());
771 stack.ipop().equal(valueFactory.createIntegerValue(0)));
776 stack.ipop().notEqual(valueFactory.createIntegerValue(0)));
781 stack.ipop().lessThan(valueFactory.createIntegerValue(0)));
786 stack.ipop().greaterThanOrEqual(valueFactory.createIntegerValue(0)));
791 stack.ipop().greaterThan(valueFactory.createIntegerValue(0)));
796 stack.ipop().lessThanOrEqual(valueFactory.createIntegerValue(0)));
802 stack.ipop().equal(stack.ipop()));
807 stack.ipop().notEqual(stack.ipop()));
811 // Note that the stack entries are popped in reverse order.
813 stack.ipop().greaterThan(stack.ipop()));
817 // Note that the stack entries are popped in reverse order.
819 stack.ipop().lessThanOrEqual(stack.ipop()));
823 // Note that the stack entries are popped in reverse order.
825 stack.ipop().lessThan(stack.ipop()));
829 // Note that the stack entries are popped in reverse order.
831 stack.ipop().greaterThanOrEqual(stack.ipop()));
836 stack.apop().equal(stack.apop()));
841 stack.apop().notEqual(stack.apop()));
852 stack.push(new InstructionOffsetValue(offset +
859 stack.apop().isNull());
864 stack.apop().isNotNull());
875 IntegerValue indexValue = stack.ipop();
903 IntegerValue indexValue = stack.ipop();