- break;
- case OP_BITAND_IF:
- OPC->_int = OPA->_int & (int)OPB->_float;
- break;
- case OP_BITOR_IF:
- OPC->_int = OPA->_int | (int)OPB->_float;
- break;
- case OP_BITAND_FI:
- OPC->_float = (int)OPA->_float & OPB->_int;
- break;
- case OP_BITOR_FI:
- OPC->_float = (int)OPA->_float | OPB->_int;
- break;
- case OP_GE_I:
- OPC->_float = OPA->_int >= OPB->_int;
- break;
- case OP_LE_I:
- OPC->_float = OPA->_int <= OPB->_int;
- break;
- case OP_GT_I:
- OPC->_float = OPA->_int > OPB->_int;
- break;
- case OP_LT_I:
- OPC->_float = OPA->_int < OPB->_int;
- break;
- case OP_AND_I:
- OPC->_float = OPA->_int && OPB->_int;
- break;
- case OP_OR_I:
- OPC->_float = OPA->_int || OPB->_int;
- break;
- case OP_GE_IF:
- OPC->_float = (float)OPA->_int >= OPB->_float;
- break;
- case OP_LE_IF:
- OPC->_float = (float)OPA->_int <= OPB->_float;
- break;
- case OP_GT_IF:
- OPC->_float = (float)OPA->_int > OPB->_float;
- break;
- case OP_LT_IF:
- OPC->_float = (float)OPA->_int < OPB->_float;
- break;
- case OP_AND_IF:
- OPC->_float = (float)OPA->_int && OPB->_float;
- break;
- case OP_OR_IF:
- OPC->_float = (float)OPA->_int || OPB->_float;
- break;
- case OP_GE_FI:
- OPC->_float = OPA->_float >= (float)OPB->_int;
- break;
- case OP_LE_FI:
- OPC->_float = OPA->_float <= (float)OPB->_int;
- break;
- case OP_GT_FI:
- OPC->_float = OPA->_float > (float)OPB->_int;
- break;
- case OP_LT_FI:
- OPC->_float = OPA->_float < (float)OPB->_int;
- break;
- case OP_AND_FI:
- OPC->_float = OPA->_float && (float)OPB->_int;
- break;
- case OP_OR_FI:
- OPC->_float = OPA->_float || (float)OPB->_int;
- break;
- case OP_NOT_I:
- OPC->_float = !OPA->_int;
- break;
- case OP_EQ_I:
- OPC->_float = OPA->_int == OPB->_int;
- break;
- case OP_EQ_IF:
- OPC->_float = (float)OPA->_int == OPB->_float;
- break;
- case OP_EQ_FI:
- OPC->_float = OPA->_float == (float)OPB->_int;
- break;
- case OP_NE_I:
- OPC->_float = OPA->_int != OPB->_int;
- break;
- case OP_NE_IF:
- OPC->_float = (float)OPA->_int != OPB->_float;
- break;
- case OP_NE_FI:
- OPC->_float = OPA->_float != (float)OPB->_int;
- break;
- case OP_STORE_I:
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_BITAND_IF):
+ OPC->_int = OPA->_int & (prvm_int_t)OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_BITOR_IF):
+ OPC->_int = OPA->_int | (prvm_int_t)OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_BITAND_FI):
+ OPC->_int = (prvm_int_t)OPA->_float & OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_BITOR_FI):
+ OPC->_int = (prvm_int_t)OPA->_float | OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_GE_I):
+ OPC->_int = OPA->_int >= OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_LE_I):
+ OPC->_int = OPA->_int <= OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_GT_I):
+ OPC->_int = OPA->_int > OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_LT_I):
+ OPC->_int = OPA->_int < OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_AND_I):
+ OPC->_int = OPA->_int && OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_OR_I):
+ OPC->_int = OPA->_int || OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_GE_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int >= OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_LE_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int <= OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_GT_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int > OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_LT_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int < OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_AND_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int && OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_OR_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int || OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_GE_FI):
+ OPC->_int = OPA->_float >= (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_LE_FI):
+ OPC->_int = OPA->_float <= (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_GT_FI):
+ OPC->_int = OPA->_float > (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_LT_FI):
+ OPC->_int = OPA->_float < (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_AND_FI):
+ OPC->_int = OPA->_float && (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_OR_FI):
+ OPC->_int = OPA->_float || (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_NOT_I):
+ OPC->_int = !OPA->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_EQ_I):
+ OPC->_int = OPA->_int == OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_EQ_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int == OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_EQ_FI):
+ OPC->_int = OPA->_float == (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_NE_I):
+ OPC->_int = OPA->_int != OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_NE_IF):
+ OPC->_int = (prvm_vec_t)OPA->_int != OPB->_float;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_NE_FI):
+ OPC->_int = OPA->_float != (prvm_vec_t)OPB->_int;
+ DISPATCH_OPCODE();
+ HANDLE_OPCODE(OP_STORE_I):
+ HANDLE_OPCODE(OP_STORE_P):