... | ... |
@@ -1572,8 +1572,8 @@ static int cli_bytecode_prepare_interpreter(struct cli_bc *bc) |
1572 | 1572 |
return CL_EBYTECODE; |
1573 | 1573 |
} |
1574 | 1574 |
} else { |
1575 |
- /* APIs have 2 parameters always */ |
|
1576 |
- if (inst->u.ops.numOps != 2) { |
|
1575 |
+ /* APIs have at most 2 parameters always */ |
|
1576 |
+ if (inst->u.ops.numOps > 2) { |
|
1577 | 1577 |
cli_errmsg("bytecode: call operands don't match function prototype\n"); |
1578 | 1578 |
return CL_EBYTECODE; |
1579 | 1579 |
} |
... | ... |
@@ -1607,6 +1607,30 @@ static int cli_bytecode_prepare_interpreter(struct cli_bc *bc) |
1607 | 1607 |
case OP_BC_GEPN: |
1608 | 1608 |
/*TODO */ |
1609 | 1609 |
break; |
1610 |
+ case OP_BC_MEMSET: |
|
1611 |
+ case OP_BC_MEMCPY: |
|
1612 |
+ case OP_BC_MEMMOVE: |
|
1613 |
+ case OP_BC_MEMCMP: |
|
1614 |
+ /*TODO*/ |
|
1615 |
+ break; |
|
1616 |
+ case OP_BC_ISBIGENDIAN: |
|
1617 |
+ /*TODO */ |
|
1618 |
+ break; |
|
1619 |
+ case OP_BC_ABORT: |
|
1620 |
+ /* TODO */ |
|
1621 |
+ break; |
|
1622 |
+ case OP_BC_BSWAP16: |
|
1623 |
+ /*TODO */ |
|
1624 |
+ break; |
|
1625 |
+ case OP_BC_BSWAP32: |
|
1626 |
+ /*TODO */ |
|
1627 |
+ break; |
|
1628 |
+ case OP_BC_BSWAP64: |
|
1629 |
+ /*TODO */ |
|
1630 |
+ break; |
|
1631 |
+ case OP_BC_PTRDIFF32: |
|
1632 |
+ /*TODO */ |
|
1633 |
+ break; |
|
1610 | 1634 |
default: |
1611 | 1635 |
cli_dbgmsg("Unhandled opcode: %d\n", inst->opcode); |
1612 | 1636 |
return CL_EBYTECODE; |