Lines Matching refs:stack
284 struct stack_item_type *stack;
364 static void push_stack(context_type *, unsigned int inumber, stack_info_type *stack);
889 * down the stack (due to class loading), which could end up rewriting
1024 this_idata->stack_info.stack = NULL;
1573 // on the expression stack for the exception that the VM could push
1600 handler_info->stack_info.stack = stack_item;
1730 idata[0].stack_info.stack = NULL;
1820 /* Make sure the stack can deal with this instruction */
1827 /* Update the stack. */
1841 /* Add the new stack and register information to any
1962 /* Make sure that the top of the stack contains reasonable values for the
1963 * given instruction. The post-pop values of the stack and its size are
1973 stack_item_type *stack = this_idata->stack_info.stack;
1977 fullinfo_type stack_extra_info_buffer[256]; /* save info popped off stack */
1989 /* The top thing on the stack depends on the signature of
2016 /* The top stuff on the stack depends on the method signature */
2048 int count = this_idata->operand2.i; /* number of ints on stack */
2060 stack = stack->next) {
2062 fullinfo_type top_type = stack ? stack->item : 0;
2065 if (stack == NULL)
2066 CCerror(context, "Unable to pop operand off an empty stack");
2071 CCerror(context, "Expecting to find integer on stack");
2076 CCerror(context, "Expecting to find float on stack");
2117 CCerror(context, "Expecting to find object/array on stack");
2125 "Expecting to find unitialized object on stack");
2132 CCerror(context, "Expecting to find object on stack");
2140 "Expecting to find object, array, or int on stack");
2145 CCerror(context, "Expecting to find double on stack");
2150 CCerror(context, "Expecting to find long on stack");
2161 "Expecting to find array of ints on stack");
2167 "Expecting to find array of longs on stack");
2173 "Expecting to find array of floats on stack");
2179 "Expecting to find array of doubles on stack");
2189 "on stack");
2196 "Expecting to find array of bytes on stack");
2202 "Expecting to find array of chars on stack");
2208 "Expecting to find array of shorts on stack");
2214 "Expecting to find array on stack");
2224 case '1': case '2': case '3': case '4': /* stack swapping */
2234 "Attempt to split long or double on the stack");
2237 context->swap_table[type - '1'] = stack->item;
2261 CCerror(context, "Expecting reference type on operand stack in aastore");
2308 /* We need to pass the information to the stack updater */
2423 /* Make sure that nothing on the stack already looks like what
2430 for (item = stack; item != NULL; item = item->next) {
2433 "Uninitialized object on stack at creating point");
2443 new_stack_info->stack = stack;
2463 stack_item_type *stack = this_idata->stack_info.stack;
2476 /* Remember, we've already verified the type at the top of the stack. */
2489 fullinfo_type stack_top_type = stack->item;
2626 * operation on the stack;
2641 stack_item_type *stack = new_stack_info->stack;
2648 * value pushed onto the stack from the opcode, or in which the value
2649 * pushed onto the stack is an object or array. For the latter, we need
2780 new_item->next = stack;
2781 stack = new_item;
2784 stack->item = MAKE_FULLINFO(ITEM_Integer, 0, 0); break;
2786 stack->item = MAKE_FULLINFO(ITEM_Float, 0, 0); break;
2788 stack->item = MAKE_FULLINFO(ITEM_Double, 0, 0);
2791 stack->item = MAKE_FULLINFO(ITEM_Long, 0, 0);
2794 stack->item = MAKE_FULLINFO(ITEM_ReturnAddress, 0, operand);
2799 stack->item = stype;
2809 stack->item = full_info;
2819 /* If there are any instances of "from" on the stack, we need to
2824 for (ptr = stack; ptr != NULL; ptr = ptr->next) {
2827 stack = copy_stack(context, stack);
2828 for (ptr = stack; ptr != NULL; ptr = ptr->next)
2836 new_stack_info->stack = stack;
2840 /* We've performed an instruction, and determined the new registers and stack
2842 * this stack value into theirs.
2995 /* We have a new set of registers and stack values for a given instruction.
3039 for (item = new_stack_info->stack; item != NULL; item = item->next) {
3044 stack_info_buf.stack = copy_stack(context,
3045 new_stack_info->stack);
3048 for (item = new_stack_info->stack; item != NULL;
3178 stack_item_type *new_stack = new_stack_info->stack;
3185 this_idata->stack_info.stack = new_stack;
3188 CCerror(context, "Inconsistent stack height %d != %d",
3191 stack_item_type *stack = this_idata->stack_info.stack;
3194 for (old = stack, new = new_stack; old != NULL;
3202 stack = copy_stack(context, stack);
3203 for (old = stack, new = new_stack; old != NULL;
3211 CCerror(context, "Mismatched stack types");
3215 CCerror(context, "Mismatched stack types");
3217 this_idata->stack_info.stack = stack;
3379 /* Make a copy of a stack */
3382 copy_stack(context_type *context, stack_item_type *stack)
3388 for (ptr = stack, length = 0; ptr != NULL; ptr = ptr->next, length++);
3393 for ( ptr = stack, new_ptr = new_stack;
4133 stack_item_type *stack = stack_info->stack;
4138 for ( ; stack != 0; stack = stack->next)
4139 print_fullinfo_type(context, stack->item,