Lines Matching refs:si
773 stack_info_t *si = &emit->stack_info[i]; in adjust_stack() local
774 DEBUG_printf(" (v=%d k=%d %d)", si->vtype, si->kind, si->data.u_reg); in adjust_stack()
791 stack_info_t *si = &emit->stack_info[emit->stack_size + i]; in emit_native_adjust_stack_size() local
792 si->kind = STACK_VALUE; in emit_native_adjust_stack_size()
796 si->vtype = emit->saved_stack_vtype; in emit_native_adjust_stack_size()
798 si->vtype = VTYPE_PYOBJ; in emit_native_adjust_stack_size()
835 stack_info_t *si = &emit->stack_info[i]; in need_reg_single() local
836 if (si->kind == STACK_REG && si->data.u_reg == reg_needed) { in need_reg_single()
837 si->kind = STACK_VALUE; in need_reg_single()
838 emit_native_mov_state_reg(emit, emit->stack_start + i, si->data.u_reg); in need_reg_single()
848 stack_info_t *si = &emit->stack_info[i]; in need_reg_all() local
849 if (si->kind == STACK_REG) { in need_reg_all()
850 DEBUG_printf(" reg(%u) to local(%u)\n", si->data.u_reg, emit->stack_start + i); in need_reg_all()
851 si->kind = STACK_VALUE; in need_reg_all()
852 emit_native_mov_state_reg(emit, emit->stack_start + i, si->data.u_reg); in need_reg_all()
857 STATIC vtype_kind_t load_reg_stack_imm(emit_t *emit, int reg_dest, const stack_info_t *si, bool con… in load_reg_stack_imm() argument
859 ASM_MOV_REG_IMM(emit->as, reg_dest, si->data.u_imm); in load_reg_stack_imm()
860 return si->vtype; in load_reg_stack_imm()
862 if (si->vtype == VTYPE_PYOBJ) { in load_reg_stack_imm()
863 ASM_MOV_REG_IMM(emit->as, reg_dest, si->data.u_imm); in load_reg_stack_imm()
864 } else if (si->vtype == VTYPE_BOOL) { in load_reg_stack_imm()
865 emit_native_mov_reg_const(emit, reg_dest, MP_F_CONST_FALSE_OBJ + si->data.u_imm); in load_reg_stack_imm()
866 } else if (si->vtype == VTYPE_INT || si->vtype == VTYPE_UINT) { in load_reg_stack_imm()
867 ASM_MOV_REG_IMM(emit->as, reg_dest, (uintptr_t)MP_OBJ_NEW_SMALL_INT(si->data.u_imm)); in load_reg_stack_imm()
868 } else if (si->vtype == VTYPE_PTR_NONE) { in load_reg_stack_imm()
885 stack_info_t *si = &emit->stack_info[i]; in need_stack_settled() local
886 if (si->kind == STACK_IMM) { in need_stack_settled()
887 … DEBUG_printf(" imm(" INT_FMT ") to local(%u)\n", si->data.u_imm, emit->stack_start + i); in need_stack_settled()
888 si->kind = STACK_VALUE; in need_stack_settled()
890 si->vtype = load_reg_stack_imm(emit, REG_TEMP1, si, false); in need_stack_settled()
899 stack_info_t *si = &emit->stack_info[emit->stack_size - pos]; in emit_access_stack() local
900 *vtype = si->vtype; in emit_access_stack()
901 switch (si->kind) { in emit_access_stack()
907 if (si->data.u_reg != reg_dest) { in emit_access_stack()
908 ASM_MOV_REG_REG(emit->as, reg_dest, si->data.u_reg); in emit_access_stack()
913 *vtype = load_reg_stack_imm(emit, reg_dest, si, false); in emit_access_stack()
921 stack_info_t *si = &emit->stack_info[emit->stack_size - 2]; in emit_fold_stack_top() local
922 si[0] = si[1]; in emit_fold_stack_top()
923 if (si->kind == STACK_VALUE) { in emit_fold_stack_top()
926 si->kind = STACK_REG; in emit_fold_stack_top()
927 si->data.u_reg = reg_dest; in emit_fold_stack_top()
936 stack_info_t *si = peek_stack(emit, 0); in emit_pre_pop_reg_flexible() local
937 if (si->kind == STACK_REG && si->data.u_reg != not_r1 && si->data.u_reg != not_r2) { in emit_pre_pop_reg_flexible()
938 *vtype = si->vtype; in emit_pre_pop_reg_flexible()
939 *reg_dest = si->data.u_reg; in emit_pre_pop_reg_flexible()
974 stack_info_t *si = &emit->stack_info[emit->stack_size - 1]; in emit_post_top_set_vtype() local
975 si->vtype = new_vtype; in emit_post_top_set_vtype()
980 stack_info_t *si = &emit->stack_info[emit->stack_size]; in emit_post_push_reg() local
981 si->vtype = vtype; in emit_post_push_reg()
982 si->kind = STACK_REG; in emit_post_push_reg()
983 si->data.u_reg = reg; in emit_post_push_reg()
989 stack_info_t *si = &emit->stack_info[emit->stack_size]; in emit_post_push_imm() local
990 si->vtype = vtype; in emit_post_push_imm()
991 si->kind = STACK_IMM; in emit_post_push_imm()
992 si->data.u_imm = imm; in emit_post_push_imm()
1047 stack_info_t *si = &emit->stack_info[emit->stack_size - 1 - i]; in emit_get_stack_pointer_to_reg_for_pop() local
1050 if (si->kind == STACK_IMM) { in emit_get_stack_pointer_to_reg_for_pop()
1051 si->kind = STACK_VALUE; in emit_get_stack_pointer_to_reg_for_pop()
1052 si->vtype = load_reg_stack_imm(emit, reg_dest, si, true); in emit_get_stack_pointer_to_reg_for_pop()
1057 assert(si->kind == STACK_VALUE); in emit_get_stack_pointer_to_reg_for_pop()
1062 stack_info_t *si = &emit->stack_info[emit->stack_size - 1 - i]; in emit_get_stack_pointer_to_reg_for_pop() local
1063 if (si->vtype != VTYPE_PYOBJ) { in emit_get_stack_pointer_to_reg_for_pop()
1066 … emit_call_with_imm_arg(emit, MP_F_CONVERT_NATIVE_TO_OBJ, si->vtype, REG_ARG_2); // arg2 = type in emit_get_stack_pointer_to_reg_for_pop()
1068 si->vtype = VTYPE_PYOBJ; in emit_get_stack_pointer_to_reg_for_pop()