/* generated by gpc_gen.rb */
int32_t gpc_instruction_stack_effects(gpc_cell_t inst) {
    switch (inst) {
        case GPC_I_NOP: return 0;
        case GPC_I_LABEL: return 0;
        case GPC_I_COPY_HTONC_INCDST: return 0;
        case GPC_I_COPY_HTONS_INCDST: return 0;
        case GPC_I_COPY_HTONL_INCDST: return 0;
        case GPC_I_COPY_HTONLL_INCDST: return 0;
        case GPC_I_COPY_HTONF_INCDST: return 0;
        case GPC_I_COPY_HTOND_INCDST: return 0;
        case GPC_I_COPY_HTONCHOICE_TO_UI8_INCDST: return 0;
        case GPC_I_COPY_NTOHC_TO_BIT_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_S_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_S_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_L_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_L_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_LL_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_LL_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_F_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_F_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_D_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHC_TO_D_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_BIT_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_C_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_L_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_L_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_LL_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_LL_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_F_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_F_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_D_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHS_TO_D_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_BIT_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_C_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_S_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_LL_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_LL_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_F_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_F_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_D_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHL_TO_D_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_BIT_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_C_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_S_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_L_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_F_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_F_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_D_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHLL_TO_D_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_BIT_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_C_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_C_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_S_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_S_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_L_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_L_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_LL_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_LL_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_INCSRC: return 0;
        case GPC_I_COPY_NTOHF_TO_D_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_BIT_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_C_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_C_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_S_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_S_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_L_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_L_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_LL_Z_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_LL_E_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_TO_F_INCSRC: return 0;
        case GPC_I_COPY_NTOHD_INCSRC: return 0;
        case GPC_I_COPY_BIT: return 0;
        case GPC_I_COPY_BIT_TO_S: return 0;
        case GPC_I_COPY_BIT_TO_L: return 0;
        case GPC_I_COPY_BIT_TO_LL: return 0;
        case GPC_I_COPY_BIT_TO_F: return 0;
        case GPC_I_COPY_BIT_TO_D: return 0;
        case GPC_I_COPY_C: return 0;
        case GPC_I_COPY_C_TO_S_Z: return 0;
        case GPC_I_COPY_C_TO_S_E: return 0;
        case GPC_I_COPY_C_TO_L_Z: return 0;
        case GPC_I_COPY_C_TO_L_E: return 0;
        case GPC_I_COPY_C_TO_LL_Z: return 0;
        case GPC_I_COPY_C_TO_LL_E: return 0;
        case GPC_I_COPY_C_TO_F_Z: return 0;
        case GPC_I_COPY_C_TO_F_E: return 0;
        case GPC_I_COPY_C_TO_D_Z: return 0;
        case GPC_I_COPY_C_TO_D_E: return 0;
        case GPC_I_COPY_S_TO_BIT: return 0;
        case GPC_I_COPY_S_TO_C: return 0;
        case GPC_I_COPY_S: return 0;
        case GPC_I_COPY_S_TO_L_Z: return 0;
        case GPC_I_COPY_S_TO_L_E: return 0;
        case GPC_I_COPY_S_TO_LL_Z: return 0;
        case GPC_I_COPY_S_TO_LL_E: return 0;
        case GPC_I_COPY_S_TO_F_Z: return 0;
        case GPC_I_COPY_S_TO_F_E: return 0;
        case GPC_I_COPY_S_TO_D_Z: return 0;
        case GPC_I_COPY_S_TO_D_E: return 0;
        case GPC_I_COPY_L_TO_BIT: return 0;
        case GPC_I_COPY_L_TO_C: return 0;
        case GPC_I_COPY_L_TO_S: return 0;
        case GPC_I_COPY_L: return 0;
        case GPC_I_COPY_L_TO_LL_Z: return 0;
        case GPC_I_COPY_L_TO_LL_E: return 0;
        case GPC_I_COPY_L_TO_F_Z: return 0;
        case GPC_I_COPY_L_TO_F_E: return 0;
        case GPC_I_COPY_L_TO_D_Z: return 0;
        case GPC_I_COPY_L_TO_D_E: return 0;
        case GPC_I_COPY_LL_TO_BIT: return 0;
        case GPC_I_COPY_LL_TO_C: return 0;
        case GPC_I_COPY_LL_TO_S: return 0;
        case GPC_I_COPY_LL_TO_L: return 0;
        case GPC_I_COPY_LL: return 0;
        case GPC_I_COPY_LL_TO_F_Z: return 0;
        case GPC_I_COPY_LL_TO_F_E: return 0;
        case GPC_I_COPY_LL_TO_D_Z: return 0;
        case GPC_I_COPY_LL_TO_D_E: return 0;
        case GPC_I_COPY_F_TO_BIT: return 0;
        case GPC_I_COPY_F_TO_C_Z: return 0;
        case GPC_I_COPY_F_TO_C_E: return 0;
        case GPC_I_COPY_F_TO_S_Z: return 0;
        case GPC_I_COPY_F_TO_S_E: return 0;
        case GPC_I_COPY_F_TO_L_Z: return 0;
        case GPC_I_COPY_F_TO_L_E: return 0;
        case GPC_I_COPY_F_TO_LL_Z: return 0;
        case GPC_I_COPY_F_TO_LL_E: return 0;
        case GPC_I_COPY_F: return 0;
        case GPC_I_COPY_F_TO_D: return 0;
        case GPC_I_COPY_D_TO_BIT: return 0;
        case GPC_I_COPY_D_TO_C_Z: return 0;
        case GPC_I_COPY_D_TO_C_E: return 0;
        case GPC_I_COPY_D_TO_S_Z: return 0;
        case GPC_I_COPY_D_TO_S_E: return 0;
        case GPC_I_COPY_D_TO_L_Z: return 0;
        case GPC_I_COPY_D_TO_L_E: return 0;
        case GPC_I_COPY_D_TO_LL_Z: return 0;
        case GPC_I_COPY_D_TO_LL_E: return 0;
        case GPC_I_COPY_D_TO_F: return 0;
        case GPC_I_COPY_D: return 0;
        case GPC_I_SET_C: return 0;
        case GPC_I_SET_S: return 0;
        case GPC_I_SET_L: return 0;
        case GPC_I_SET_2ND_C: return 0;
        case GPC_I_SET_2ND_S: return 0;
        case GPC_I_SET_2ND_L: return 0;
        case GPC_I_BITVECTOR_READ: return 0;
        case GPC_I_BITVECTOR_READ_TO_C: return 0;
        case GPC_I_BITVECTOR_READ_TO_S: return 0;
        case GPC_I_BITVECTOR_READ_TO_L: return 0;
        case GPC_I_BITVECTOR_READ_TO_LL: return 0;
        case GPC_I_BITVECTOR_READ_TO_F: return 0;
        case GPC_I_BITVECTOR_READ_TO_D: return 0;
        case GPC_I_BITVECTOR_READ_FROM_C: return 0;
        case GPC_I_BITVECTOR_READ_FROM_S: return 0;
        case GPC_I_BITVECTOR_READ_FROM_L: return 0;
        case GPC_I_BITVECTOR_READ_FROM_LL: return 0;
        case GPC_I_BITVECTOR_READ_FROM_F: return 0;
        case GPC_I_BITVECTOR_READ_FROM_D: return 0;
        case GPC_I_BITVECTOR_READ_FROM_TSF_INTEGER_ARRAY: return 0;
        case GPC_I_BITVECTOR_READ_FROM_TSF_LONG_ARRAY: return 0;
        case GPC_I_BITVECTOR_WRITE: return 0;
        case GPC_I_BYTE_ARRAY_READ: return 0;
        case GPC_I_BYTE_ARRAY_WRITE: return 0;
        case GPC_I_TSF_INTEGER_SKIP: return 0;
        case GPC_I_TSF_UNSIGNED_SKIP: return 0;
        case GPC_I_TSF_LONG_SKIP: return 0;
        case GPC_I_TSF_INTEGER_READ_TO_BIT: return 0;
        case GPC_I_TSF_INTEGER_READ_TO_C: return 0;
        case GPC_I_TSF_INTEGER_READ_TO_S: return 0;
        case GPC_I_TSF_INTEGER_READ: return 0;
        case GPC_I_TSF_INTEGER_READ_TO_LL: return 0;
        case GPC_I_TSF_INTEGER_READ_TO_F: return 0;
        case GPC_I_TSF_INTEGER_READ_TO_D: return 0;
        case GPC_I_TSF_UNSIGNED_READ_SUB1: return 1;
        case GPC_I_TSF_LONG_READ_TO_BIT: return 0;
        case GPC_I_TSF_LONG_READ_TO_C: return 0;
        case GPC_I_TSF_LONG_READ_TO_S: return 0;
        case GPC_I_TSF_LONG_READ_TO_L: return 0;
        case GPC_I_TSF_LONG_READ: return 0;
        case GPC_I_TSF_LONG_READ_TO_F: return 0;
        case GPC_I_TSF_LONG_READ_TO_D: return 0;
        case GPC_I_TSF_INTEGER_SIZE: return 0;
        case GPC_I_TSF_UNSIGNED_PLUS1_SIZE: return 0;
        case GPC_I_TSF_LONG_SIZE: return 0;
        case GPC_I_TSF_INTEGER_WRITE: return 0;
        case GPC_I_TSF_UNSIGNED_PLUS1_WRITE: return 0;
        case GPC_I_TSF_LONG_WRITE: return 0;
        case GPC_I_STRING_SETEMPTY: return 0;
        case GPC_I_STRING_READ: return 0;
        case GPC_I_STRING_SKIP: return 0;
        case GPC_I_STRING_SIZE: return 0;
        case GPC_I_STRING_WRITE: return 0;
        case GPC_I_STRING_COPY: return 0;
        case GPC_I_ANY_SETEMPTY: return 0;
        case GPC_I_ANY_READ: return 0;
        case GPC_I_ANY_SKIP: return 0;
        case GPC_I_ANY_SIZE: return 0;
        case GPC_I_ANY_WRITE: return 0;
        case GPC_I_ANY_COPY: return 0;
        case GPC_I_MEMCPY: return 0;
        case GPC_I_COPY_ARRAY: return 0;
        case GPC_I_COPY_BITVECTOR: return 0;
        case GPC_I_COPY_BITVECTOR_FROM_C: return 0;
        case GPC_I_COPY_BITVECTOR_FROM_S: return 0;
        case GPC_I_COPY_BITVECTOR_FROM_L: return 0;
        case GPC_I_COPY_BITVECTOR_FROM_LL: return 0;
        case GPC_I_COPY_BITVECTOR_FROM_F: return 0;
        case GPC_I_COPY_BITVECTOR_FROM_D: return 0;
        case GPC_I_COPY_BITVECTOR_TO_C: return 0;
        case GPC_I_COPY_BITVECTOR_TO_S: return 0;
        case GPC_I_COPY_BITVECTOR_TO_L: return 0;
        case GPC_I_COPY_BITVECTOR_TO_LL: return 0;
        case GPC_I_COPY_BITVECTOR_TO_F: return 0;
        case GPC_I_COPY_BITVECTOR_TO_D: return 0;
        case GPC_I_READC_TO_CHOICE: return 1;
        case GPC_I_READL: return 1;
        case GPC_I_ARRAY_LEN_WRITE_FIELD: return 0;
        case GPC_I_ARRAY_LEN_READ_FIELD: return 0;
        case GPC_I_ARRAY_LEN_READ_LOCAL: return 1;
        case GPC_I_ARRAY_LEN_SKIP: return 0;
        case GPC_I_BIT_MASK_WRITE: return 0;
        case GPC_I_BIT_MASK_READ: return 0;
        case GPC_I_BIT_MASK_READ_TO_S: return 0;
        case GPC_I_BIT_MASK_READ_TO_L: return 0;
        case GPC_I_BIT_MASK_READ_TO_LL: return 0;
        case GPC_I_BIT_MASK_READ_TO_F: return 0;
        case GPC_I_BIT_MASK_READ_TO_D: return 0;
        case GPC_I_BIT_WRITE: return 0;
        case GPC_I_BIT_READ: return 0;
        case GPC_I_BIT_READ_TO_S: return 0;
        case GPC_I_BIT_READ_TO_L: return 0;
        case GPC_I_BIT_READ_TO_LL: return 0;
        case GPC_I_BIT_READ_TO_F: return 0;
        case GPC_I_BIT_READ_TO_D: return 0;
        case GPC_I_SKIP: return 0;
        case GPC_I_ARRAY_BC_AND_SKIP_FIELD: return 0;
        case GPC_I_ARRAY_SKIP: return 0;
        case GPC_I_BITVECTOR_BC_AND_SKIP_FIELD: return 0;
        case GPC_I_BITVECTOR_SKIP: return 0;
        case GPC_I_INC_SIZE: return 0;
        case GPC_I_INC_SIZE_ARRAY_LEN: return 0;
        case GPC_I_INC_SIZE_ARRAY: return 0;
        case GPC_I_INC_SIZE_BITVECTOR: return 0;
        case GPC_I_BC: return 0;
        case GPC_I_ARRAY_BC_FIELD: return 0;
        case GPC_I_ARRAY_BC_LOCAL: return 0;
        case GPC_I_BITVECTOR_BC_FIELD: return 0;
        case GPC_I_BITVECTOR_BC_LOCAL: return 0;
        case GPC_I_MALLOC_BUF: return 0;
        case GPC_I_POP_BUF: return -1;
        case GPC_I_DESTROY_BUFFER: return 1;
        case GPC_I_MAKE_OUT_MAP: return 0;
        case GPC_I_ALLOC_ROOT_MAYBE_2ND: return 0;
        case GPC_I_ALLOC: return 1;
        case GPC_I_ALLOC_ARRAY: return 1;
        case GPC_I_ALLOC_ARRAY_2ND: return 1;
        case GPC_I_CALL: return 0;
        case GPC_I_ADD_CBACK: return 0;
        case GPC_I_FREE_IMMEDIATE: return 0;
        case GPC_I_FREE: return 0;
        case GPC_I_STORE_PTR: return 0;
        case GPC_I_STORE_PTR_2ND: return 0;
        case GPC_I_STORE_VAL: return 0;
        case GPC_I_PUSH_PTR: return 1;
        case GPC_I_PUSH_PTR_2ND: return 1;
        case GPC_I_PUSH_PTR_3RD: return 1;
        case GPC_I_PUSH_VAL: return 1;
        case GPC_I_DUP_PTR_2ND: return 1;
        case GPC_I_POP: return -1;
        case GPC_I_TWO_POP: return -2;
        case GPC_I_THREE_POP: return -3;
        case GPC_I_REPUSH_MULADD_PTR: return 1;
        case GPC_I_REPUSH_MULADD_PTR_2ND: return 1;
        case GPC_I_COMPFAILJUMP: return 0;
        case GPC_I_COMPFAILJUMP_2ND: return 0;
        case GPC_I_ADDCOMPJUMP: return 0;
        case GPC_I_TWO_ADDCOMPJUMP: return 0;
        case GPC_I_ZEROJUMP: return 0;
        case GPC_I_DECCOMPJUMP: return 0;
        case GPC_I_CHECKCHOICE: return 0;
        case GPC_I_TABLESET_LOCAL_TO_FIELD: return -1;
        case GPC_I_TABLESET_FIELD_TO_FIELD: return 0;
        case GPC_I_TABLEJUMP_FIELD: return 0;
        case GPC_I_TABLEJUMP_LOCAL: return -1;
        case GPC_I_JUMP: return 0;
        case GPC_I_RETURN_ONE: return 0;
        case GPC_I_RETURN_TOP_WITH_REGION: return 0;
        case GPC_I_RETURN_ONE_INIT_BUF_WITH_EMPTY_TYPES: return 0;
        case GPC_I_RETURN_ONE_INIT_BUF_WITH_TYPES_FROM_OUT_MAP: return 0;
        default: break;
    }
    tsf_abort("Invalid instruction");
}
