| /* 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 |