/* generated by gpc_gen.rb */
#define INT_STREAM_GOTO(arg) INT_GOTO(INT_STREAM(arg))
INT_BEGIN(I_NOP)
    {
#line 45 "gpc_spec.in"
#line 8 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_LABEL)
    {
#line 49 "gpc_spec.in"
        tsf_f_abort("Unconverted label.");
#line 16 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTONC_INCDST)
    {
#line 54 "gpc_spec.in"
        copy_htonc_incdst(cur,INT_STACK_PTR(0) + INT_STREAM(0));
#line 24 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTONS_INCDST)
    {
#line 59 "gpc_spec.in"
        copy_htons_incdst(cur,INT_STACK_PTR(0) + INT_STREAM(0));
#line 32 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTONL_INCDST)
    {
#line 64 "gpc_spec.in"
        copy_htonl_incdst(cur,INT_STACK_PTR(0) + INT_STREAM(0));
#line 40 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTONLL_INCDST)
    {
#line 69 "gpc_spec.in"
        copy_htonll_incdst(cur,INT_STACK_PTR(0) + INT_STREAM(0));
#line 48 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTONF_INCDST)
    {
#line 74 "gpc_spec.in"
        copy_htonf_incdst(cur,INT_STACK_PTR(0) + INT_STREAM(0));
#line 56 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTOND_INCDST)
    {
#line 79 "gpc_spec.in"
        copy_htond_incdst(cur,INT_STACK_PTR(0) + INT_STREAM(0));
#line 64 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_HTONCHOICE_TO_UI8_INCDST)
    {
#line 84 "gpc_spec.in"
        /* here, we're really just masking off the high-order 24 bits. */
        ui32_tmp=*((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)));
        if (ui32_tmp==UINT32_MAX) {
            ui8_tmp=255;
        } else {
            ui8_tmp=ui32_tmp;
        }
        copy_htonc_incdst(cur,&ui8_tmp);
#line 79 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_BIT_INCSRC)
    {
#line 96 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0))=(ui8_tmp!=0);
#line 88 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_INCSRC)
    {
#line 102 "gpc_spec.in"
        copy_ntohc_incsrc(INT_STACK_PTR(0) + INT_STREAM(0),cur);
#line 96 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_S_Z_INCSRC)
    {
#line 107 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&ui8_tmp,cur);
        *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui8_tmp;
#line 105 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_S_E_INCSRC)
    {
#line 113 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&i8_tmp,cur);
        *((int16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i8_tmp;
#line 114 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_L_Z_INCSRC)
    {
#line 119 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&ui8_tmp,cur);
        *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui8_tmp;
#line 123 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_L_E_INCSRC)
    {
#line 125 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&i8_tmp,cur);
        *((int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i8_tmp;
#line 132 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_LL_Z_INCSRC)
    {
#line 131 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&ui8_tmp,cur);
        *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui8_tmp;
#line 141 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_LL_E_INCSRC)
    {
#line 137 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&i8_tmp,cur);
        *((int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i8_tmp;
#line 150 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_F_Z_INCSRC)
    {
#line 143 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&ui8_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui8_tmp;
#line 159 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_F_E_INCSRC)
    {
#line 149 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&i8_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i8_tmp;
#line 168 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_D_Z_INCSRC)
    {
#line 155 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&ui8_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui8_tmp;
#line 177 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHC_TO_D_E_INCSRC)
    {
#line 161 "gpc_spec.in"
        copy_ntohc_incsrc((uint8_t*)&i8_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i8_tmp;
#line 186 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_BIT_INCSRC)
    {
#line 167 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&ui16_tmp,cur);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0))=(ui16_tmp!=0);
#line 195 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_C_INCSRC)
    {
#line 173 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&ui16_tmp,cur);
        *((uint8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(uint8_t)ui16_tmp;
#line 204 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_INCSRC)
    {
#line 179 "gpc_spec.in"
        copy_ntohs_incsrc(INT_STACK_PTR(0) + INT_STREAM(0),cur);
#line 212 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_L_Z_INCSRC)
    {
#line 184 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&ui16_tmp,cur);
        *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui16_tmp;
#line 221 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_L_E_INCSRC)
    {
#line 190 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&i16_tmp,cur);
        *((int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i16_tmp;
#line 230 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_LL_Z_INCSRC)
    {
#line 196 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&ui16_tmp,cur);
        *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui16_tmp;
#line 239 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_LL_E_INCSRC)
    {
#line 202 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&i16_tmp,cur);
        *((int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i16_tmp;
#line 248 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_F_Z_INCSRC)
    {
#line 208 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&ui16_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui16_tmp;
#line 257 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_F_E_INCSRC)
    {
#line 214 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&i16_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i16_tmp;
#line 266 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_D_Z_INCSRC)
    {
#line 220 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&ui16_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui16_tmp;
#line 275 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHS_TO_D_E_INCSRC)
    {
#line 226 "gpc_spec.in"
        copy_ntohs_incsrc((uint8_t*)&i16_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i16_tmp;
#line 284 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_BIT_INCSRC)
    {
#line 232 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0))=(ui32_tmp!=0);
#line 293 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_C_INCSRC)
    {
#line 238 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        *((uint8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(uint8_t)ui32_tmp;
#line 302 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_S_INCSRC)
    {
#line 244 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(uint16_t)ui32_tmp;
#line 311 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_INCSRC)
    {
#line 250 "gpc_spec.in"
        copy_ntohl_incsrc(INT_STACK_PTR(0) + INT_STREAM(0),cur);
#line 319 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_LL_Z_INCSRC)
    {
#line 255 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui32_tmp;
#line 328 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_LL_E_INCSRC)
    {
#line 261 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&i32_tmp,cur);
        *((int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i32_tmp;
#line 337 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_F_Z_INCSRC)
    {
#line 267 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui32_tmp;
#line 346 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_F_E_INCSRC)
    {
#line 273 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&i32_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i32_tmp;
#line 355 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_D_Z_INCSRC)
    {
#line 279 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui32_tmp;
#line 364 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHL_TO_D_E_INCSRC)
    {
#line 285 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&i32_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i32_tmp;
#line 373 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_BIT_INCSRC)
    {
#line 291 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&ui64_tmp,cur);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0))=(ui64_tmp!=0);
#line 382 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_C_INCSRC)
    {
#line 297 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&ui64_tmp,cur);
        *((uint8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(uint8_t)ui64_tmp;
#line 391 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_S_INCSRC)
    {
#line 303 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&ui64_tmp,cur);
        *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(uint16_t)ui64_tmp;
#line 400 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_L_INCSRC)
    {
#line 309 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&ui64_tmp,cur);
        *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(uint32_t)ui64_tmp;
#line 409 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_INCSRC)
    {
#line 315 "gpc_spec.in"
        copy_ntohll_incsrc(INT_STACK_PTR(0) + INT_STREAM(0),cur);
#line 417 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_F_Z_INCSRC)
    {
#line 320 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&ui64_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui64_tmp;
#line 426 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_F_E_INCSRC)
    {
#line 326 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&i64_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i64_tmp;
#line 435 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_D_Z_INCSRC)
    {
#line 332 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&ui64_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=ui64_tmp;
#line 444 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHLL_TO_D_E_INCSRC)
    {
#line 338 "gpc_spec.in"
        copy_ntohll_incsrc((uint8_t*)&i64_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=i64_tmp;
#line 453 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_BIT_INCSRC)
    {
#line 344 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0))=(f_tmp!=0);
#line 462 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_C_Z_INCSRC)
    {
#line 350 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((uint8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 471 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_C_E_INCSRC)
    {
#line 356 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((int8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 480 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_S_Z_INCSRC)
    {
#line 362 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 489 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_S_E_INCSRC)
    {
#line 368 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((int16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 498 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_L_Z_INCSRC)
    {
#line 374 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 507 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_L_E_INCSRC)
    {
#line 380 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 516 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_LL_Z_INCSRC)
    {
#line 386 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 525 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_LL_E_INCSRC)
    {
#line 392 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)f_tmp;
#line 534 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_INCSRC)
    {
#line 398 "gpc_spec.in"
        copy_ntohf_incsrc(INT_STACK_PTR(0) + INT_STREAM(0),cur);
#line 542 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHF_TO_D_INCSRC)
    {
#line 403 "gpc_spec.in"
        copy_ntohf_incsrc((uint8_t*)&f_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=f_tmp;
#line 551 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_BIT_INCSRC)
    {
#line 409 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0))=(d_tmp!=0);
#line 560 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_C_Z_INCSRC)
    {
#line 415 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((uint8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 569 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_C_E_INCSRC)
    {
#line 421 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((int8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 578 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_S_Z_INCSRC)
    {
#line 427 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 587 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_S_E_INCSRC)
    {
#line 433 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((int16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 596 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_L_Z_INCSRC)
    {
#line 439 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 605 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_L_E_INCSRC)
    {
#line 445 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 614 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_LL_Z_INCSRC)
    {
#line 451 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 623 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_LL_E_INCSRC)
    {
#line 457 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=(int64_t)d_tmp;
#line 632 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_TO_F_INCSRC)
    {
#line 463 "gpc_spec.in"
        copy_ntohd_incsrc((uint8_t*)&d_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=d_tmp;
#line 641 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_NTOHD_INCSRC)
    {
#line 469 "gpc_spec.in"
        copy_ntohd_incsrc(INT_STACK_PTR(0) + INT_STREAM(0),cur);
#line 649 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COPY_BIT)
    {
#line 474 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((tsf_bool_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((tsf_bool_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 660 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BIT_TO_S)
    {
#line 482 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((tsf_bool_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 671 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BIT_TO_L)
    {
#line 490 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((tsf_bool_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 682 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BIT_TO_LL)
    {
#line 498 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((tsf_bool_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 693 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BIT_TO_F)
    {
#line 506 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((tsf_bool_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 704 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BIT_TO_D)
    {
#line 514 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((tsf_bool_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 715 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C)
    {
#line 522 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint8_t*)(INT_STACK_PTR(0) + src_offset));
#line 726 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_S_Z)
    {
#line 530 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint8_t*)(INT_STACK_PTR(0) + src_offset));
#line 737 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_S_E)
    {
#line 538 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int8_t*)(INT_STACK_PTR(0) + src_offset));
#line 748 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_L_Z)
    {
#line 546 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint8_t*)(INT_STACK_PTR(0) + src_offset));
#line 759 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_L_E)
    {
#line 554 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int8_t*)(INT_STACK_PTR(0) + src_offset));
#line 770 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_LL_Z)
    {
#line 562 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint8_t*)(INT_STACK_PTR(0) + src_offset));
#line 781 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_LL_E)
    {
#line 570 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int8_t*)(INT_STACK_PTR(0) + src_offset));
#line 792 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_F_Z)
    {
#line 578 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint8_t*)(INT_STACK_PTR(0) + src_offset));
#line 803 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_F_E)
    {
#line 586 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int8_t*)(INT_STACK_PTR(0) + src_offset));
#line 814 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_D_Z)
    {
#line 594 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint8_t*)(INT_STACK_PTR(0) + src_offset));
#line 825 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_C_TO_D_E)
    {
#line 602 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int8_t*)(INT_STACK_PTR(0) + src_offset));
#line 836 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_BIT)
    {
#line 610 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((tsf_bool_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((uint16_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 847 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_C)
    {
#line 618 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint16_t*)(INT_STACK_PTR(0) + src_offset));
#line 858 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S)
    {
#line 626 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint16_t*)(INT_STACK_PTR(0) + src_offset));
#line 869 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_L_Z)
    {
#line 634 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint16_t*)(INT_STACK_PTR(0) + src_offset));
#line 880 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_L_E)
    {
#line 642 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int16_t*)(INT_STACK_PTR(0) + src_offset));
#line 891 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_LL_Z)
    {
#line 650 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint16_t*)(INT_STACK_PTR(0) + src_offset));
#line 902 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_LL_E)
    {
#line 658 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int16_t*)(INT_STACK_PTR(0) + src_offset));
#line 913 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_F_Z)
    {
#line 666 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint16_t*)(INT_STACK_PTR(0) + src_offset));
#line 924 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_F_E)
    {
#line 674 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int16_t*)(INT_STACK_PTR(0) + src_offset));
#line 935 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_D_Z)
    {
#line 682 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint16_t*)(INT_STACK_PTR(0) + src_offset));
#line 946 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_S_TO_D_E)
    {
#line 690 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int16_t*)(INT_STACK_PTR(0) + src_offset));
#line 957 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_BIT)
    {
#line 698 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((tsf_bool_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((uint32_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 968 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_C)
    {
#line 706 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint32_t*)(INT_STACK_PTR(0) + src_offset));
#line 979 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_S)
    {
#line 714 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint32_t*)(INT_STACK_PTR(0) + src_offset));
#line 990 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L)
    {
#line 722 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1001 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_LL_Z)
    {
#line 730 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1012 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_LL_E)
    {
#line 738 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1023 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_F_Z)
    {
#line 746 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1034 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_F_E)
    {
#line 754 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1045 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_D_Z)
    {
#line 762 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1056 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_L_TO_D_E)
    {
#line 770 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int32_t*)(INT_STACK_PTR(0) + src_offset));
#line 1067 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_BIT)
    {
#line 778 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((tsf_bool_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((uint64_t*)(INT_STACK_PTR(0) + src_offset))!=0);
#line 1078 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_C)
    {
#line 786 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1089 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_S)
    {
#line 794 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1100 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_L)
    {
#line 802 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1111 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL)
    {
#line 810 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1122 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_F_Z)
    {
#line 818 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1133 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_F_E)
    {
#line 826 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1144 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_D_Z)
    {
#line 834 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((uint64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1155 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_LL_TO_D_E)
    {
#line 842 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((int64_t*)(INT_STACK_PTR(0) + src_offset));
#line 1166 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_BIT)
    {
#line 850 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((tsf_bool_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((float*)(INT_STACK_PTR(0) + src_offset))!=0.);
#line 1177 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_C_Z)
    {
#line 858 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1188 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_C_E)
    {
#line 866 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1199 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_S_Z)
    {
#line 874 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1210 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_S_E)
    {
#line 882 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1221 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_L_Z)
    {
#line 890 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1232 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_L_E)
    {
#line 898 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1243 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_LL_Z)
    {
#line 906 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1254 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_LL_E)
    {
#line 914 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((float*)(INT_STACK_PTR(0) + src_offset));
#line 1265 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F)
    {
#line 922 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((float*)(INT_STACK_PTR(0) + src_offset));
#line 1276 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_F_TO_D)
    {
#line 930 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((float*)(INT_STACK_PTR(0) + src_offset));
#line 1287 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_BIT)
    {
#line 938 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((tsf_bool_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (*((double*)(INT_STACK_PTR(0) + src_offset))!=0.);
#line 1298 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_C_Z)
    {
#line 946 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1309 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_C_E)
    {
#line 954 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int8_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1320 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_S_Z)
    {
#line 962 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1331 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_S_E)
    {
#line 970 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int16_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1342 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_L_Z)
    {
#line 978 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1353 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_L_E)
    {
#line 986 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int32_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1364 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_LL_Z)
    {
#line 994 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((uint64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1375 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_LL_E)
    {
#line 1002 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((int64_t*)(INT_STACK_PTR(1) + dest_offset)) =
            (int64_t)*((double*)(INT_STACK_PTR(0) + src_offset));
#line 1386 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D_TO_F)
    {
#line 1010 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((float*)(INT_STACK_PTR(1) + dest_offset)) =
            *((double*)(INT_STACK_PTR(0) + src_offset));
#line 1397 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_D)
    {
#line 1018 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        *((double*)(INT_STACK_PTR(1) + dest_offset)) =
            *((double*)(INT_STACK_PTR(0) + src_offset));
#line 1408 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_SET_C)
    {
#line 1026 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        *((uint8_t*)(INT_STACK_PTR(0) + offset))=INT_STREAM(1);
#line 1417 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_SET_S)
    {
#line 1032 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        *((uint16_t*)(INT_STACK_PTR(0) + offset))=INT_STREAM(1);
#line 1426 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_SET_L)
    {
#line 1038 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        *((uint32_t*)(INT_STACK_PTR(0) + offset))=INT_STREAM(1);
#line 1435 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_SET_2ND_C)
    {
#line 1044 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        *((uint8_t*)(INT_STACK_PTR(1) + offset))=INT_STREAM(1);
#line 1444 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_SET_2ND_S)
    {
#line 1050 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        *((uint16_t*)(INT_STACK_PTR(1) + offset))=INT_STREAM(1);
#line 1453 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_SET_2ND_L)
    {
#line 1056 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        *((uint32_t*)(INT_STACK_PTR(1) + offset))=INT_STREAM(1);
#line 1462 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BITVECTOR_READ)
    {
#line 1062 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        
        uint32_t size;
        
        copy_ntohc_incsrc_bc(&ui8_tmp, cur, end, bounds_error);
        if (ui8_tmp == 255) {
            copy_ntohl_incsrc_bc((uint8_t*)&bitvector->num_bits, cur,
                                 end, bounds_error);
        } else {
            bitvector->num_bits = ui8_tmp;
        }
        
        size = ((bitvector->num_bits + 7) >> 3);
        
        if (cur + size > end) {
            goto bounds_error;
        }
        
        bitvector->bits = tsf_cond_alloc(region, size);
        if (bitvector->bits == NULL) {
            tsf_set_errno("Could not tsf_cond_alloc()");
            INT_FAILURE();
        }
        
        memcpy(bitvector->bits, cur, size);
        cur += size;
#line 1496 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_TO_C)
    {
#line 1093 "gpc_spec.in"
        tsf_native_uint8_array_t *array=
            (tsf_native_uint8_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_bitvector_to_array(1)
#line 1506 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_TO_S)
    {
#line 1100 "gpc_spec.in"
        tsf_native_uint16_array_t *array=
            (tsf_native_uint16_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_bitvector_to_array(2)
#line 1516 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_TO_L)
    {
#line 1107 "gpc_spec.in"
        tsf_native_uint32_array_t *array=
            (tsf_native_uint32_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_bitvector_to_array(4)
#line 1526 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_TO_LL)
    {
#line 1114 "gpc_spec.in"
        tsf_native_uint64_array_t *array=
            (tsf_native_uint64_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_bitvector_to_array(8)
#line 1536 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_TO_F)
    {
#line 1121 "gpc_spec.in"
        tsf_native_float_array_t *array=
            (tsf_native_float_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_bitvector_to_array(4)
#line 1546 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_TO_D)
    {
#line 1128 "gpc_spec.in"
        tsf_native_double_array_t *array=
            (tsf_native_double_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_bitvector_to_array(8)
#line 1556 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_C)
    {
#line 1135 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_array_to_bitvector(c,ui8_tmp,1)
#line 1566 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_S)
    {
#line 1142 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_array_to_bitvector(s,ui16_tmp,2)
#line 1576 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_L)
    {
#line 1149 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_array_to_bitvector(l,ui32_tmp,4)
#line 1586 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_LL)
    {
#line 1156 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_array_to_bitvector(ll,ui64_tmp,8)
#line 1596 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_F)
    {
#line 1163 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_array_to_bitvector(f,f_tmp,4)
#line 1606 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_D)
    {
#line 1170 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_array_to_bitvector(d,d_tmp,1)
#line 1616 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_TSF_INTEGER_ARRAY)
    {
#line 1177 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_integer_array_to_bitvector(integer)    
#line 1626 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_READ_FROM_TSF_LONG_ARRAY)
    {
#line 1184 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        gpc_read_integer_array_to_bitvector(long)    
#line 1636 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_WRITE)
    {
#line 1191 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        
        uint32_t size;
        
        if (bitvector->num_bits>=255) {
            ui8_tmp=255;
            copy_htonc_incdst(cur,&ui8_tmp);
            copy_htonl_incdst(cur,(uint8_t*)&bitvector->num_bits);
        } else {
            ui8_tmp=bitvector->num_bits;
            copy_htonc_incdst(cur,&ui8_tmp);
        }
        
        size=((bitvector->num_bits+7)>>3);
        memcpy(cur,bitvector->bits,size);
        cur+=size;
#line 1660 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BYTE_ARRAY_READ)
    {
#line 1212 "gpc_spec.in"
        tsf_native_array_t *array=
            (tsf_native_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        
        uint32_t size;
        
        copy_ntohc_incsrc_bc(&ui8_tmp,cur,end,bounds_error);
        if (ui8_tmp==255) {
            copy_ntohl_incsrc_bc((uint8_t*)&array->len,cur,
                                 end,bounds_error);
        } else {
            array->len = ui8_tmp;
        }
        
        size=array->len*INT_STREAM(1);
        
        if (cur + size > end) {
            goto bounds_error;
        }
        
        array->data=tsf_cond_alloc(region,size);
        if (array->data==NULL) {
            tsf_set_errno("Could not tsf_cond_alloc()");
            INT_FAILURE();
        }
        
        memcpy(array->data,cur,size);
        cur+=size;
#line 1694 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BYTE_ARRAY_WRITE)
    {
#line 1243 "gpc_spec.in"
        tsf_native_array_t *array=
            (tsf_native_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        
        uint32_t size;
        
        if (array->len>=255) {
            ui8_tmp=255;
            copy_htonc_incdst(cur,&ui8_tmp);
            copy_htonl_incdst(cur,(uint8_t*)&array->len);
        } else {
            ui8_tmp=array->len;
            copy_htonc_incdst(cur,&ui8_tmp);
        }
        
        size=array->len*INT_STREAM(1);
        
        memcpy(cur,array->data,size);
        cur+=size;
#line 1719 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_TSF_INTEGER_SKIP)
    {
#line 1265 "gpc_spec.in"
        uint8_t *new_cur = cur + size_of_encoded_tsf_integer(*cur);
        if (new_cur > end) {
            goto bounds_error;
        }
        cur = new_cur;
#line 1731 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_TSF_UNSIGNED_SKIP)
    {
#line 1274 "gpc_spec.in"
        uint8_t *new_cur = cur + size_of_encoded_tsf_unsigned(*cur);
        if (new_cur > end) {
            goto bounds_error;
        }
        cur = new_cur;
#line 1743 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_TSF_LONG_SKIP)
    {
#line 1283 "gpc_spec.in"
        uint8_t *new_cur = cur + size_of_encoded_tsf_long(*cur);
        if (new_cur > end) {
            goto bounds_error;
        }
        cur = new_cur;
#line 1755 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ_TO_BIT)
    {
#line 1292 "gpc_spec.in"
        int32_t integer;
        read_tsf_integer_incsrc(&integer, cur, end, bounds_error);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = !!integer;
#line 1765 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ_TO_C)
    {
#line 1299 "gpc_spec.in"
        int32_t integer;
        read_tsf_integer_incsrc(&integer, cur, end, bounds_error);
        *(int8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1775 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ_TO_S)
    {
#line 1306 "gpc_spec.in"
        int32_t integer;
        read_tsf_integer_incsrc(&integer, cur, end, bounds_error);
        *(int16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1785 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ)
    {
#line 1313 "gpc_spec.in"
        int32_t *integer = (int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        read_tsf_integer_incsrc(integer, cur, end, bounds_error);
#line 1794 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ_TO_LL)
    {
#line 1319 "gpc_spec.in"
        int32_t integer;
        read_tsf_integer_incsrc(&integer, cur, end, bounds_error);
        *(int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1804 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ_TO_F)
    {
#line 1326 "gpc_spec.in"
        int32_t integer;
        read_tsf_integer_incsrc(&integer, cur, end, bounds_error);
        *(float*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1814 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_READ_TO_D)
    {
#line 1333 "gpc_spec.in"
        int32_t integer;
        read_tsf_integer_incsrc(&integer, cur, end, bounds_error);
        *(double*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1824 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_UNSIGNED_READ_SUB1)
    INT_PUSH();
    {
#line 1340 "gpc_spec.in"
        tsf_unsigned_t value;
        read_tsf_unsigned_incsrc(&value, cur, end, bounds_error);
        INT_STACK_SET(0, value - 1);
#line 1835 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_TSF_LONG_READ_TO_BIT)
    {
#line 1347 "gpc_spec.in"
        int64_t integer;
        read_tsf_long_incsrc(&integer, cur, end, bounds_error);
        *(tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = !!integer;
#line 1845 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_READ_TO_C)
    {
#line 1354 "gpc_spec.in"
        int64_t integer;
        read_tsf_long_incsrc(&integer, cur, end, bounds_error);
        *(int8_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1855 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_READ_TO_S)
    {
#line 1361 "gpc_spec.in"
        int64_t integer;
        read_tsf_long_incsrc(&integer, cur, end, bounds_error);
        *(int16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1865 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_READ_TO_L)
    {
#line 1368 "gpc_spec.in"
        int64_t integer;
        read_tsf_long_incsrc(&integer, cur, end, bounds_error);
        *(int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1875 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_READ)
    {
#line 1375 "gpc_spec.in"
        int64_t *integer = (int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        read_tsf_long_incsrc(integer, cur, end, bounds_error);
#line 1884 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_READ_TO_F)
    {
#line 1381 "gpc_spec.in"
        int64_t integer;
        read_tsf_long_incsrc(&integer, cur, end, bounds_error);
        *(float*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1894 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_READ_TO_D)
    {
#line 1388 "gpc_spec.in"
        int64_t integer;
        read_tsf_long_incsrc(&integer, cur, end, bounds_error);
        *(double*)(INT_STACK_PTR(0) + INT_STREAM(0)) = integer;
#line 1904 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_SIZE)
    {
#line 1395 "gpc_spec.in"
        int32_t *integer = (int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        size += size_of_tsf_integer(*integer);
#line 1913 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_UNSIGNED_PLUS1_SIZE)
    {
#line 1401 "gpc_spec.in"
        tsf_unsigned_t *integer = (tsf_unsigned_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        size += size_of_tsf_integer(*integer + 1);
#line 1922 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_SIZE)
    {
#line 1407 "gpc_spec.in"
        int64_t *integer = (int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        size += size_of_tsf_long(*integer);
#line 1931 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_INTEGER_WRITE)
    {
#line 1413 "gpc_spec.in"
        int32_t *integer = (int32_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        cur += write_tsf_integer(cur, *integer);
#line 1940 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_UNSIGNED_PLUS1_WRITE)
    {
#line 1419 "gpc_spec.in"
        tsf_unsigned_t *integer = (tsf_unsigned_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        cur += write_tsf_unsigned(cur, *integer + 1);
#line 1949 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TSF_LONG_WRITE)
    {
#line 1425 "gpc_spec.in"
        int64_t *integer = (int64_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        cur += write_tsf_long(cur, *integer);
#line 1958 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STRING_SETEMPTY)
    {
#line 1431 "gpc_spec.in"
        char **str=(char**)(INT_STACK_PTR(0) + INT_STREAM(0));
        if (region != NULL) {
            /* If we're using regions then we can be sure that nobody will attempt to free
               this. That means we can do the efficient thing and just use a string constant. */
            *str = "";
        } else {
            /* Destructing a string means freeing it. That means we have to malloc the empty
               string. */
            *str = strdup("");
            if (!*str) {
                tsf_set_errno("Could not strdup the empty string");
                INT_FAILURE();
            }
        }
#line 1979 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STRING_READ)
    {
#line 1449 "gpc_spec.in"
        char **str;
        size_t size;
        
        /* First figure out the size of the string. */
        size = skip_string((const char*)cur, (const char *)end);
        if (!size) {
            goto bounds_error;
        }
        
        /* Now allocate the string and copy the contents. */
        str = (char**)(INT_STACK_PTR(0) + INT_STREAM(0));
        *str = tsf_cond_alloc(region, size);
        if (*str == NULL) {
            tsf_set_errno("Could not tsf_cond_alloc() string");
            INT_FAILURE();
        }
        memcpy(*str, cur, size);
        cur += size;
#line 2004 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STRING_SKIP)
    {
#line 1471 "gpc_spec.in"
        /* It would have been easier to inline the body of skip_string here, but we don't do
           that because it revealed compiler bugs in some old GCC. */
        size_t num_skipped = skip_string((const char*)cur, (const char*)end);
        if (!num_skipped) {
            goto bounds_error;
        }
        cur += num_skipped;
#line 2018 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_STRING_SIZE)
    {
#line 1482 "gpc_spec.in"
        char **str=(char**)(INT_STACK_PTR(0) + INT_STREAM(0));
        size+=strlen(*str)+1;
#line 2027 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STRING_WRITE)
    {
#line 1488 "gpc_spec.in"
        char **str=(char**)(INT_STACK_PTR(0) + INT_STREAM(0));
#ifdef HAVE_STPCPY
        cur=((uint8_t*)stpcpy((char*)cur,*str))+1;
#else
        strcpy((char*)cur,*str);
        cur+=strlen(*str)+1;
#endif
#line 2041 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STRING_COPY)
    {
#line 1499 "gpc_spec.in"
        char **dest = (char**)(INT_STACK_PTR(1) + INT_STREAM(0));
        char **src = (char**)(INT_STACK_PTR(0) + INT_STREAM(1));
        *dest = tsf_cond_alloc(region, strlen(*src) + 1);
        if (*dest == NULL) {
            tsf_set_errno("Could not tsf_cond_alloc() string");
            INT_FAILURE();
        }
        strcpy(*dest, *src);
#line 2056 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_ANY_SETEMPTY)
    {
#line 1511 "gpc_spec.in"
        tsf_buffer_t **dest=(tsf_buffer_t**)
            (INT_STACK_PTR(0) + INT_STREAM(0));
        *dest=tsf_buffer_get_empty_singleton();
#line 2066 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ANY_READ)
    {
#line 1518 "gpc_spec.in"
        tsf_buffer_t **dest = (tsf_buffer_t**)
            (INT_STACK_PTR(0) + INT_STREAM(0));
        
        *dest = tsf_buffer_read_from_buf(types, &cur, end, region);
        if (*dest == NULL) {
            INT_FAILURE();
        }
#line 2080 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ANY_SKIP)
    {
#line 1529 "gpc_spec.in"
        if (!tsf_buffer_skip_in_buf(types,&cur,end)) {
            INT_FAILURE();
        }
#line 2090 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_ANY_SIZE)
    {
#line 1536 "gpc_spec.in"
        tsf_buffer_t **src=(tsf_buffer_t**)
            (INT_STACK_PTR(0) + INT_STREAM(0));
        
        size+=tsf_buffer_calc_size(*src);
#line 2101 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ANY_WRITE)
    {
#line 1544 "gpc_spec.in"
        tsf_buffer_t **src=(tsf_buffer_t**)
            (INT_STACK_PTR(0) + INT_STREAM(0));
        
        if (!tsf_buffer_write_to_buf(*src,out_map,&cur)) {
            INT_FAILURE();
        }
#line 2114 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ANY_COPY)
    {
#line 1554 "gpc_spec.in"
        tsf_buffer_t **dest=(tsf_buffer_t**)
            (INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_buffer_t **src=(tsf_buffer_t**)
            (INT_STACK_PTR(0) + INT_STREAM(1));
        
        *dest=tsf_buffer_clone_in(*src,region);
        if (*dest==NULL) {
            INT_FAILURE();
        }
#line 2130 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_MEMCPY)
    {
#line 1567 "gpc_spec.in"
        uintptr_t dest_offset=INT_STREAM(0);
        uintptr_t src_offset=INT_STREAM(1);
        memcpy(INT_STACK_PTR(1)+dest_offset,
               INT_STACK_PTR(0)+src_offset,
               INT_STREAM(2));
#line 2142 "gpc_interpreter.gen"
    }
    INT_ADVANCE(3);
INT_END()
INT_BEGIN(I_COPY_ARRAY)
    {
#line 1576 "gpc_spec.in"
        tsf_native_array_t *dest=
            (tsf_native_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_array_t *src=
            (tsf_native_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint32_t ele_size=INT_STREAM(2);
        
        dest->len=src->len;
        
        dest->data = tsf_cond_alloc(region, dest->len * ele_size);
        if (dest->data == NULL) {
            tsf_set_errno("Could not allocate array from region");
            INT_FAILURE();
        }
        
        memcpy(dest->data, src->data, dest->len * ele_size);
#line 2164 "gpc_interpreter.gen"
    }
    INT_ADVANCE(3);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR)
    {
#line 1595 "gpc_spec.in"
        tsf_native_bitvector_t *dest =
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src =
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        
        dest->num_bits = src->num_bits;
        
        dest->bits = tsf_cond_alloc(region, (dest->num_bits + 7) >> 3);
        if (dest->bits == NULL) {
            tsf_set_errno("Could not allocate bitvector from region");
            INT_FAILURE();
        }
        
        memcpy(dest->bits, src->bits, (dest->num_bits + 7) >> 3);
#line 2185 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_FROM_C)
    {
#line 1613 "gpc_spec.in"
        tsf_native_bitvector_t *dest=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_uint8_array_t *src=
            (tsf_native_uint8_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint8_t *src_cur;
        gpc_copy_array_to_bitvector()
#line 2198 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_FROM_S)
    {
#line 1623 "gpc_spec.in"
        tsf_native_bitvector_t *dest=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_uint16_array_t *src=
            (tsf_native_uint16_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint16_t *src_cur;
        gpc_copy_array_to_bitvector()
#line 2211 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_FROM_L)
    {
#line 1633 "gpc_spec.in"
        tsf_native_bitvector_t *dest=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_uint32_array_t *src=
            (tsf_native_uint32_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint32_t *src_cur;
        gpc_copy_array_to_bitvector()
#line 2224 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_FROM_LL)
    {
#line 1643 "gpc_spec.in"
        tsf_native_bitvector_t *dest=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_uint64_array_t *src=
            (tsf_native_uint64_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint64_t *src_cur;
        gpc_copy_array_to_bitvector()
#line 2237 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_FROM_F)
    {
#line 1653 "gpc_spec.in"
        tsf_native_bitvector_t *dest=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_float_array_t *src=
            (tsf_native_float_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        float *src_cur;
        gpc_copy_array_to_bitvector()
#line 2250 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_FROM_D)
    {
#line 1663 "gpc_spec.in"
        tsf_native_bitvector_t *dest=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_double_array_t *src=
            (tsf_native_double_array_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        double *src_cur;
        gpc_copy_array_to_bitvector()
#line 2263 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_TO_C)
    {
#line 1673 "gpc_spec.in"
        tsf_native_uint8_array_t *dest=
            (tsf_native_uint8_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint8_t *dest_cur;
        gpc_copy_bitvector_to_array(1)
#line 2276 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_TO_S)
    {
#line 1683 "gpc_spec.in"
        tsf_native_uint16_array_t *dest=
            (tsf_native_uint16_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint16_t *dest_cur;
        gpc_copy_bitvector_to_array(2)
#line 2289 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_TO_L)
    {
#line 1693 "gpc_spec.in"
        tsf_native_uint32_array_t *dest=
            (tsf_native_uint32_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint32_t *dest_cur;
        gpc_copy_bitvector_to_array(4)
#line 2302 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_TO_LL)
    {
#line 1703 "gpc_spec.in"
        tsf_native_uint64_array_t *dest=
            (tsf_native_uint64_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        uint64_t *dest_cur;
        gpc_copy_bitvector_to_array(8)
#line 2315 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_TO_F)
    {
#line 1713 "gpc_spec.in"
        tsf_native_float_array_t *dest=
            (tsf_native_float_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        float *dest_cur;
        gpc_copy_bitvector_to_array(4)
#line 2328 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COPY_BITVECTOR_TO_D)
    {
#line 1723 "gpc_spec.in"
        tsf_native_double_array_t *dest=
            (tsf_native_double_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        tsf_native_bitvector_t *src=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(1));
        double *dest_cur;
        gpc_copy_bitvector_to_array(8)
#line 2341 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_READC_TO_CHOICE)
    INT_PUSH();
    {
#line 1733 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        if (ui8_tmp==255) {
            INT_STACK_SET(0,UINT32_MAX);
        } else {
            INT_STACK_SET(0,ui8_tmp);
        }
#line 2355 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_READL)
    INT_PUSH();
    {
#line 1743 "gpc_spec.in"
        copy_ntohl_incsrc((uint8_t*)&ui32_tmp,cur);
        INT_STACK_SET(0,ui32_tmp);
#line 2365 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_ARRAY_LEN_WRITE_FIELD)
    {
#line 1749 "gpc_spec.in"
        ui32_tmp=*((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)));
        if (ui32_tmp>=255) {
            ui8_tmp=255;
            copy_htonc_incdst(cur,&ui8_tmp);
            copy_htonl_incdst(cur,(uint8_t*)&ui32_tmp);
        } else {
            ui8_tmp=ui32_tmp;
            copy_htonc_incdst(cur,&ui8_tmp);
        }
#line 2381 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ARRAY_LEN_READ_FIELD)
    {
#line 1762 "gpc_spec.in"
        copy_ntohc_incsrc_bc(&ui8_tmp,cur,end,bounds_error);
        if (ui8_tmp==255) {
            copy_ntohl_incsrc_bc(INT_STACK_PTR(0) + INT_STREAM(0),cur,
                                 end,bounds_error);
        } else {
            *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0))) = ui8_tmp;
        }
#line 2395 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ARRAY_LEN_READ_LOCAL)
    INT_PUSH();
    {
#line 1773 "gpc_spec.in"
        copy_ntohc_incsrc_bc(&ui8_tmp,cur,end,bounds_error);
        if (ui8_tmp==255) {
            copy_ntohl_incsrc_bc((uint8_t*)&ui32_tmp,cur,end,bounds_error);
            INT_STACK_SET(0,ui32_tmp);
        } else {
            INT_STACK_SET(0,ui8_tmp);
        }
#line 2410 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_ARRAY_LEN_SKIP)
    {
#line 1784 "gpc_spec.in"
        copy_ntohc_incsrc_bc(&ui8_tmp,cur,end,bounds_error);
        if (ui8_tmp==255) {
            if (cur+4>end) {
                goto bounds_error;
            }
            cur+=4;
        }
#line 2424 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_BIT_MASK_WRITE)
    {
#line 1795 "gpc_spec.in"
        ui32_tmp=INT_STREAM(0);
        if (*((tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(1)))) {
            *cur|=(1<<ui32_tmp);
        } else {
            *cur&=~(1<<ui32_tmp);
        }
#line 2437 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_MASK_READ)
    {
#line 1805 "gpc_spec.in"
        if (*cur&(1<<INT_STREAM(0))) {
            *((tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = tsf_true;
        } else {
            *((tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = tsf_false;
        }
#line 2449 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_MASK_READ_TO_S)
    {
#line 1814 "gpc_spec.in"
        if (*cur&(1<<INT_STREAM(0))) {
            *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 1;
        } else {
            *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 0;
        }
#line 2461 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_MASK_READ_TO_L)
    {
#line 1823 "gpc_spec.in"
        if (*cur&(1<<INT_STREAM(0))) {
            *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 1;
        } else {
            *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 0;
        }
#line 2473 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_MASK_READ_TO_LL)
    {
#line 1832 "gpc_spec.in"
        if (*cur&(1<<INT_STREAM(0))) {
            *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 1;
        } else {
            *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 0;
        }
#line 2485 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_MASK_READ_TO_F)
    {
#line 1841 "gpc_spec.in"
        if (*cur&(1<<INT_STREAM(0))) {
            *((float*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 1.;
        } else {
            *((float*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 0.;
        }
#line 2497 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_MASK_READ_TO_D)
    {
#line 1850 "gpc_spec.in"
        if (*cur&(1<<INT_STREAM(0))) {
            *((double*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 1.;
        } else {
            *((double*)(INT_STACK_PTR(0) + INT_STREAM(1))) = 0.;
        }
#line 2509 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_BIT_WRITE)
    {
#line 1859 "gpc_spec.in"
        ui8_tmp=*((tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))?
                tsf_true:tsf_false;
        copy_htonc_incdst(cur,&ui8_tmp);
#line 2519 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BIT_READ)
    {
#line 1866 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *((tsf_bool_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=
            ui8_tmp?tsf_true:tsf_false;
#line 2529 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BIT_READ_TO_S)
    {
#line 1873 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *((uint16_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=
            ui8_tmp?1:0;
#line 2539 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BIT_READ_TO_L)
    {
#line 1880 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=
            ui8_tmp?1:0;
#line 2549 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BIT_READ_TO_LL)
    {
#line 1887 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *((uint64_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))=
            ui8_tmp?1:0;
#line 2559 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BIT_READ_TO_F)
    {
#line 1894 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *((float*)(INT_STACK_PTR(0) + INT_STREAM(0)))=
            ui8_tmp?1.:0.;
#line 2569 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BIT_READ_TO_D)
    {
#line 1901 "gpc_spec.in"
        copy_ntohc_incsrc(&ui8_tmp,cur);
        *((double*)(INT_STACK_PTR(0) + INT_STREAM(0)))=
            ui8_tmp?1.:0.;
#line 2579 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_SKIP)
    {
#line 1908 "gpc_spec.in"
        cur+=INT_STREAM(0);
#line 2587 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ARRAY_BC_AND_SKIP_FIELD)
    {
#line 1913 "gpc_spec.in"
        uintptr_t offset=INT_STREAM(0);
        uint32_t ele_size=INT_STREAM(1);
        uint32_t size=ele_size* *((uint32_t*)(INT_STACK_PTR(0) + offset));
        if (cur + size > end) {
            goto bounds_error;
        }
        cur+=size;
#line 2601 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_ARRAY_SKIP)
    {
#line 1924 "gpc_spec.in"
        uint32_t array_len;
        uint32_t size;
        
        copy_ntohc_incsrc_bc(&ui8_tmp,cur,end,bounds_error);
        if (ui8_tmp==255) {
            copy_ntohl_incsrc_bc((uint8_t*)&array_len,cur,
                                 end,bounds_error);
        } else {
            array_len = ui8_tmp;
        }
        
        size=array_len*INT_STREAM(0);
        
        if (cur + size > end) {
            goto bounds_error;
        }
        
        cur+=size;
#line 2626 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_BC_AND_SKIP_FIELD)
    {
#line 1946 "gpc_spec.in"
        uint32_t size=(*((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0))) + 7)>>3;
        if (cur+size>end) {
            goto bounds_error;
        }
        cur+=size;
#line 2638 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_SKIP)
    {
#line 1955 "gpc_spec.in"
        uint32_t num_bits;
        uint32_t size;
        
        copy_ntohc_incsrc_bc(&ui8_tmp,cur,end,bounds_error);
        if (ui8_tmp==255) {
            copy_ntohl_incsrc_bc((uint8_t*)&num_bits,cur,
                                 end,bounds_error);
        } else {
            num_bits = ui8_tmp;
        }
        
        size=((num_bits + 7)>>3);
        
        if (cur + size > end) {
            goto bounds_error;
        }
        
        cur+=size;
#line 2663 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_INC_SIZE)
    {
#line 1977 "gpc_spec.in"
        size+=INT_STREAM(0);
#line 2671 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_INC_SIZE_ARRAY_LEN)
    {
#line 1982 "gpc_spec.in"
        if (*((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0)))>=255) {
            size+=5;
        } else {
            size+=1;
        }
#line 2683 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_INC_SIZE_ARRAY)
    {
#line 1991 "gpc_spec.in"
        tsf_native_array_t *array=
            (tsf_native_array_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        uint32_t ele_size=INT_STREAM(1);
        
        if (array->len>=255) {
            size+=5;
        } else {
            size+=1;
        }
        
        size+=ele_size*array->len;
#line 2701 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_INC_SIZE_BITVECTOR)
    {
#line 2006 "gpc_spec.in"
        tsf_native_bitvector_t *bitvector=
            (tsf_native_bitvector_t*)(INT_STACK_PTR(0) + INT_STREAM(0));
        
        if (bitvector->num_bits>=255) {
            size+=5;
        } else {
            size+=1;
        }
        
        size+=((bitvector->num_bits+7)>>3);
#line 2718 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BC)
    {
#line 2020 "gpc_spec.in"
        if (cur+INT_STREAM(0) > end) {
            goto bounds_error;
        }
#line 2728 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ARRAY_BC_FIELD)
    {
#line 2027 "gpc_spec.in"
        uintptr_t offset=INT_STREAM(0);
        uint32_t ele_size=INT_STREAM(1);
        if (cur + ele_size* *((uint32_t*)(INT_STACK_PTR(0) + offset)) > end) {
            goto bounds_error;
        }
#line 2740 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_ARRAY_BC_LOCAL)
    {
#line 2036 "gpc_spec.in"
        if (cur + INT_STREAM(0) * INT_STACK(0) > end) {
            goto bounds_error;
        }
#line 2750 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_BC_FIELD)
    {
#line 2043 "gpc_spec.in"
        if (cur + ((*((uint32_t*)(INT_STACK_PTR(0) + INT_STREAM(0))) + 7)>>3) > end) {
            goto bounds_error;
        }
#line 2760 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_BITVECTOR_BC_LOCAL)
    {
#line 2050 "gpc_spec.in"
        if (cur + ((INT_STACK(0) + 7)>>3) > end) {
            goto bounds_error;
        }
#line 2770 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_MALLOC_BUF)
    {
#line 2057 "gpc_spec.in"
        tsf_buffer_t *buffer = (tsf_buffer_t*)INT_STACK_PTR(1);
        if (size > buffer->size) {
            buf = tsf_cond_alloc(region, size);
            if (buf == NULL) {
                tsf_set_errno("Could not tsf_cond_alloc buffer");
                INT_FAILURE();
            }
            keep = tsf_true;
        } else {
            buf = buffer->data;
        }
        cur = buf;
        end = buf + size;
#line 2790 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_POP_BUF)
    {
#line 2074 "gpc_spec.in"
        tsf_buffer_t *buffer=(tsf_buffer_t*)INT_STACK_PTR(0);
        
        buf=buffer->data;
        cur=buf;
        end=buf+buffer->size;
        keep=tsf_false;
        types=buffer->types;
#line 2804 "gpc_interpreter.gen"
    }
    INT_POP();
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_DESTROY_BUFFER)
    INT_PUSH();
    {
#line 2085 "gpc_spec.in"
        tsf_buffer_t **arg = (tsf_buffer_t**)(INT_STACK_PTR(0) + INT_STREAM(0));
        tsf_buffer_destroy(*arg);
#line 2815 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_MAKE_OUT_MAP)
    {
#line 2091 "gpc_spec.in"
        out_map=tsf_type_out_map_create();
        if (out_map==NULL) {
            INT_FAILURE();
        }
#line 2826 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_ALLOC_ROOT_MAYBE_2ND)
    {
#line 2099 "gpc_spec.in"
        if (INT_STACK_PTR(1)==NULL) {
            if (region==NULL) {
                region=tsf_region_create(INT_STREAM(0));
                if (region==NULL) {
                    tsf_set_errno("Could not tsf_region_create()");
                    INT_FAILURE();
                }
                keep_region=tsf_true;
                INT_STACK_PTR_SET(1,region);
            } else {
                void *data=tsf_region_alloc(region,INT_STREAM(0));
                if (data==NULL) {
                    tsf_set_errno("Could not tsf_region_alloc()");
                    INT_FAILURE();
                }
                INT_STACK_PTR_SET(1,data);
            }
        }
#line 2851 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ALLOC)
    INT_PUSH();
    {
#line 2121 "gpc_spec.in"
        void *tmp = tsf_cond_alloc(region, INT_STREAM(0));
        INT_STACK_PTR_SET(0, tmp);
        if (INT_STACK_PTR(0) == NULL) {
            tsf_set_errno("Could not tsf_cond_alloc()");
            INT_FAILURE();
        }
#line 2865 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ALLOC_ARRAY)
    INT_PUSH();
    {
#line 2131 "gpc_spec.in"
        tsf_native_array_t *array=
            (tsf_native_array_t*)(INT_STACK_PTR(1) + INT_STREAM(0));
        uint32_t ele_size = INT_STREAM(1);
        
        array->data = tsf_cond_alloc(region, ele_size * array->len);
        
        if (array->data == NULL) {
            tsf_set_errno("Could not tsf_cond_alloc()");
            INT_FAILURE();
        }
        
        INT_STACK_PTR_SET(0, array->data);
#line 2885 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_ALLOC_ARRAY_2ND)
    INT_PUSH();
    {
#line 2147 "gpc_spec.in"
        tsf_native_array_t *array =
            (tsf_native_array_t*)(INT_STACK_PTR(2) + INT_STREAM(0));
        uint32_t ele_size = INT_STREAM(1);
        
        array->data = tsf_cond_alloc(region,ele_size * array->len);
        if (array->data == NULL) {
            tsf_set_errno("Could not tsf_cond_alloc()");
            INT_FAILURE();
        }
        
        INT_STACK_PTR_SET(0, array->data);
#line 2904 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_CALL)
    {
#line 2162 "gpc_spec.in"
        ((void(*)(void*))INT_STREAM(1))(INT_STACK_PTR(0) + INT_STREAM(0));
#line 2912 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_ADD_CBACK)
    {
#line 2167 "gpc_spec.in"
        if (!tsf_region_add_cback(region,
    			      (void*)INT_STREAM(1),
    			      INT_STACK_PTR(0) + INT_STREAM(0))) {
            tsf_set_errno("Could not tsf_region_add_cback()");
    	INT_FAILURE();
        }
#line 2925 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_FREE_IMMEDIATE)
    {
#line 2177 "gpc_spec.in"
        free(INT_STACK_PTR(0));
#line 2933 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_FREE)
    {
#line 2182 "gpc_spec.in"
        void **arg = (void**)(INT_STACK_PTR(0) + INT_STREAM(0));
        free(*arg);
#line 2942 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STORE_PTR)
    {
#line 2188 "gpc_spec.in"
        *((uintptr_t*)(INT_STACK_PTR(1) + INT_STREAM(0))) = INT_STACK(0);
#line 2950 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STORE_PTR_2ND)
    {
#line 2193 "gpc_spec.in"
        *((uintptr_t*)(INT_STACK_PTR(2) + INT_STREAM(0))) = INT_STACK(0);
#line 2958 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_STORE_VAL)
    {
#line 2198 "gpc_spec.in"
        *((uint32_t*)(INT_STACK_PTR(1) + INT_STREAM(0))) =
            (uint32_t)INT_STACK(0);
#line 2967 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_PUSH_PTR)
    INT_PUSH();
    {
#line 2204 "gpc_spec.in"
        uintptr_t tmp=*((uintptr_t*)(INT_STACK_PTR(1) + INT_STREAM(0)));
        INT_STACK_SET(0,tmp);
#line 2977 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_PUSH_PTR_2ND)
    INT_PUSH();
    {
#line 2210 "gpc_spec.in"
        uintptr_t tmp=*((uintptr_t*)(INT_STACK_PTR(2) + INT_STREAM(0)));
        INT_STACK_SET(0,tmp);
#line 2987 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_PUSH_PTR_3RD)
    INT_PUSH();
    {
#line 2216 "gpc_spec.in"
        uintptr_t tmp=*((uintptr_t*)(INT_STACK_PTR(3) + INT_STREAM(0)));
        INT_STACK_SET(0,tmp);
#line 2997 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_PUSH_VAL)
    INT_PUSH();
    {
#line 2222 "gpc_spec.in"
        uint32_t tmp=*((uint32_t*)(INT_STACK_PTR(1) + INT_STREAM(0)));
        INT_STACK_SET(0,tmp);
#line 3007 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_DUP_PTR_2ND)
    INT_PUSH();
    {
#line 2228 "gpc_spec.in"
        uintptr_t tmp=(uintptr_t)INT_STACK_PTR(2);
        INT_STACK_SET(0,tmp);
#line 3017 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_POP)
    {
#line 2234 "gpc_spec.in"
#line 3024 "gpc_interpreter.gen"
    }
    INT_POP();
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_TWO_POP)
    {
#line 2238 "gpc_spec.in"
#line 3032 "gpc_interpreter.gen"
    }
    INT_POP();
    INT_POP();
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_THREE_POP)
    {
#line 2242 "gpc_spec.in"
#line 3041 "gpc_interpreter.gen"
    }
    INT_POP();
    INT_POP();
    INT_POP();
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_REPUSH_MULADD_PTR)
    INT_PUSH();
    {
#line 2246 "gpc_spec.in"
        void *tmp=INT_STACK_PTR(1);
        ui32_tmp=INT_STREAM(0);
        INT_STACK_PTR_SET(1,INT_STACK_PTR(1)+
            (*((uint32_t*)(INT_STACK_PTR(2) + ui32_tmp))
             *INT_STREAM(1)));
        INT_STACK_PTR_SET(0,tmp);
#line 3058 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_REPUSH_MULADD_PTR_2ND)
    INT_PUSH();
    {
#line 2256 "gpc_spec.in"
        void *tmp=INT_STACK_PTR(1);
        ui32_tmp=INT_STREAM(0);
        INT_STACK_PTR_SET(1,INT_STACK_PTR(1)+
            (*((uint32_t*)(INT_STACK_PTR(3) + ui32_tmp))
             *INT_STREAM(1)));
        INT_STACK_PTR_SET(0,tmp);
#line 3072 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_COMPFAILJUMP)
    {
#line 2266 "gpc_spec.in"
        if (INT_STACK_PTR(0) >= INT_STACK_PTR(1)) {
            INT_STREAM_GOTO(0);
        }
#line 3082 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_COMPFAILJUMP_2ND)
    {
#line 2273 "gpc_spec.in"
        if (INT_STACK_PTR(1) >= INT_STACK_PTR(2)) {
            INT_STREAM_GOTO(0);
        }
#line 3092 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_ADDCOMPJUMP)
    {
#line 2280 "gpc_spec.in"
        uint32_t constant=INT_STREAM(0);
        
        INT_STACK_PTR_SET(0,INT_STACK_PTR(0)+constant);
        
        if (INT_STACK_PTR(0) < INT_STACK_PTR(1)) {
            INT_STREAM_GOTO(1);
        }
#line 3106 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2);
INT_END()
INT_BEGIN(I_TWO_ADDCOMPJUMP)
    {
#line 2291 "gpc_spec.in"
        uint32_t dest_const=INT_STREAM(0);
        uint32_t src_const=INT_STREAM(1);
        
        INT_STACK_PTR_SET(1,INT_STACK_PTR(1)+dest_const);
        INT_STACK_PTR_SET(0,INT_STACK_PTR(0)+src_const);
        
        if (INT_STACK_PTR(1) < INT_STACK_PTR(2)) {
            INT_STREAM_GOTO(2);
        }
#line 3122 "gpc_interpreter.gen"
    }
    INT_ADVANCE(3);
INT_END()
INT_BEGIN(I_ZEROJUMP)
    {
#line 2304 "gpc_spec.in"
        if (INT_STACK(0)==0) {
            INT_STREAM_GOTO(0);
        }
#line 3132 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_DECCOMPJUMP)
    {
#line 2311 "gpc_spec.in"
        if (--INT_STACK(0)!=0) {
            INT_STREAM_GOTO(0);
        }
#line 3142 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_CHECKCHOICE)
    {
#line 2318 "gpc_spec.in"
        uintptr_t num_choices=(tsf_choice_t)INT_STREAM(0);
        if (INT_STACK(0)!=UINT32_MAX && INT_STACK(0)>=num_choices) {
            tsf_set_error(TSF_E_PARSE_ERROR,
                          "Invalid choice value");
            INT_FAILURE();
        }
#line 3155 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_TABLESET_LOCAL_TO_FIELD)
    {
#line 2328 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        uint32_t num=INT_STREAM(1);
        if (INT_STACK(0)==UINT32_MAX) {
            *((uint32_t*)(INT_STACK_PTR(1) + offset))=UINT32_MAX;
        } else if (INT_STACK(0)>=num) {
            tsf_set_error(TSF_E_PARSE_ERROR,
                          "TABLESET_LOCAL_TO_FIELD bounds error: got " fui32
                          " but had an upper bound of " fui32,
                          (uint32_t)INT_STACK(0),num);
            INT_FAILURE();
        } else {
            *((uint32_t*)(INT_STACK_PTR(1) + offset))=
                INT_STREAM(2+INT_STACK(0));
        }
#line 3176 "gpc_interpreter.gen"
    }
    INT_POP();
    INT_ADVANCE(2+INT_STREAM(1));
INT_END()
INT_BEGIN(I_TABLESET_FIELD_TO_FIELD)
    {
#line 2346 "gpc_spec.in"
        uint32_t dest_offset=INT_STREAM(0);
        uint32_t src_offset=INT_STREAM(1);
        uint32_t num=INT_STREAM(2);
        
        uint32_t value=*((uint32_t*)(INT_STACK_PTR(0) + src_offset));
        
        if (value==UINT32_MAX) {
            *((uint32_t*)(INT_STACK_PTR(1) + dest_offset))=UINT32_MAX;
        } else if (value>=num) {
            tsf_set_error(TSF_E_PARSE_ERROR,
                          "TABLESET_FIELD_TO_FIELD bounds error: got " fui32
                          " but had an upper bound of " fui32,value,num);
            INT_FAILURE();
        } else {
            *((uint32_t*)(INT_STACK_PTR(1) + dest_offset))=
                INT_STREAM(3+value);
        }
#line 3201 "gpc_interpreter.gen"
    }
    INT_ADVANCE(3+INT_STREAM(2));
INT_END()
INT_BEGIN(I_TABLEJUMP_FIELD)
    {
#line 2367 "gpc_spec.in"
        uint32_t offset=INT_STREAM(0);
        uint32_t num=INT_STREAM(1);
        uint32_t value=*((uint32_t*)(INT_STACK_PTR(0) + offset));
        if (value==UINT32_MAX) {
            /* do nothing */
        } else if (value>=num) {
            tsf_set_error(TSF_E_PARSE_ERROR,
                          "TABLEJUMP bounds error: got " fui32 " but had an "
                          "upper bound of " fui32,value,num);
            INT_FAILURE();
        } else {
            INT_STREAM_GOTO(2+value);
        }
#line 3221 "gpc_interpreter.gen"
    }
    INT_ADVANCE(2+INT_STREAM(1));
INT_END()
#undef INT_STREAM_GOTO
#define INT_STREAM_GOTO(arg) do {\
    INT_POP();\
    INT_GOTO(INT_STREAM(arg));\
} while (0)
INT_BEGIN(I_TABLEJUMP_LOCAL)
    {
#line 2384 "gpc_spec.in"
        uint32_t num=INT_STREAM(0);
        uintptr_t value=INT_STACK(0);
        if (value==UINT32_MAX) {
            /* do nothing */
        } else if (value>=num) {
            tsf_set_error(TSF_E_PARSE_ERROR,
                          "TABLEJUMP bounds error: got " fui32 " but had an "
                          "upper bound of " fui32,(uint32_t)INT_STACK(0),num);
            INT_FAILURE();
        } else {
            INT_STREAM_GOTO(1+value);
        }
#line 3245 "gpc_interpreter.gen"
    }
    INT_POP();
    INT_ADVANCE(1+INT_STREAM(0));
INT_END()
#undef INT_STREAM_GOTO
#define INT_STREAM_GOTO(arg) INT_GOTO(INT_STREAM(arg))
INT_BEGIN(I_JUMP)
    {
#line 2400 "gpc_spec.in"
        INT_STREAM_GOTO(0);
#line 3256 "gpc_interpreter.gen"
    }
    INT_ADVANCE(1);
INT_END()
INT_BEGIN(I_RETURN_ONE)
    {
#line 2405 "gpc_spec.in"
        INT_CLEANUP();
        return 1;
#line 3265 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_RETURN_TOP_WITH_REGION)
    {
#line 2411 "gpc_spec.in"
        uintptr_t result=INT_STACK(0);
        INT_CLEANUP();
        return result;
#line 3275 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_RETURN_ONE_INIT_BUF_WITH_EMPTY_TYPES)
    {
#line 2418 "gpc_spec.in"
        tsf_buffer_t *buffer = (tsf_buffer_t*)INT_STACK_PTR(1);
        buffer->types = tsf_type_in_map_get_empty_singleton();
        buffer->data = buf;
        buffer->size = size;
        buffer->keep = keep;
        keep = tsf_false;
        INT_CLEANUP();
        return 1;
#line 3290 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
INT_BEGIN(I_RETURN_ONE_INIT_BUF_WITH_TYPES_FROM_OUT_MAP)
    {
#line 2430 "gpc_spec.in"
        tsf_buffer_t *buffer = (tsf_buffer_t*)INT_STACK_PTR(1);
        if (region == NULL) {
            buffer->types = tsf_type_in_map_from_type_out_map(out_map);
        } else {
            buffer->types = tsf_type_in_map_from_type_out_map_in(out_map, region);
        }
        if (buffer->types == NULL) {
            INT_CLEANUP();
        }
        buffer->data = buf;
        buffer->size = size;
        buffer->keep = keep;
        keep = tsf_false;
        INT_CLEANUP();
        return 1;
#line 3312 "gpc_interpreter.gen"
    }
    INT_ADVANCE(0);
INT_END()
#undef INT_STREAM_GOTO
