OPCODE define replaced with opcode_t. T_IDX define replaced with idx_t.
This commit is contained in:
@@ -30,15 +30,15 @@ static const opfunc __opfuncs[LAST_OP] =
|
||||
};
|
||||
#undef __INIT_OP_FUNC
|
||||
|
||||
JERRY_STATIC_ASSERT (sizeof (OPCODE) <= 4);
|
||||
JERRY_STATIC_ASSERT (sizeof (opcode_t) <= 4);
|
||||
|
||||
const OPCODE *__program = NULL;
|
||||
const opcode_t *__program = NULL;
|
||||
|
||||
/**
|
||||
* Initialize interpreter.
|
||||
*/
|
||||
void
|
||||
init_int (const OPCODE *program_p) /**< pointer to byte-code program */
|
||||
init_int (const opcode_t *program_p) /**< pointer to byte-code program */
|
||||
{
|
||||
JERRY_ASSERT (__program == NULL);
|
||||
|
||||
@@ -104,11 +104,11 @@ run_int_from_pos (opcode_counter_t start_pos,
|
||||
{
|
||||
ecma_completion_value_t completion;
|
||||
|
||||
const OPCODE *curr = &__program[start_pos];
|
||||
const opcode_t *curr = &__program[start_pos];
|
||||
JERRY_ASSERT (curr->op_idx == __op__idx_reg_var_decl);
|
||||
|
||||
const T_IDX min_reg_num = curr->data.reg_var_decl.min;
|
||||
const T_IDX max_reg_num = curr->data.reg_var_decl.max;
|
||||
const idx_t min_reg_num = curr->data.reg_var_decl.min;
|
||||
const idx_t max_reg_num = curr->data.reg_var_decl.max;
|
||||
JERRY_ASSERT (max_reg_num >= min_reg_num);
|
||||
|
||||
const uint32_t regs_num = (uint32_t) (max_reg_num - min_reg_num + 1);
|
||||
@@ -133,7 +133,7 @@ run_int_from_pos (opcode_counter_t start_pos,
|
||||
{
|
||||
do
|
||||
{
|
||||
const OPCODE *curr = &__program[int_data.pos];
|
||||
const opcode_t *curr = &__program[int_data.pos];
|
||||
completion = __opfuncs[curr->op_idx] (*curr, &int_data);
|
||||
|
||||
JERRY_ASSERT (!ecma_is_completion_value_normal (completion)
|
||||
@@ -172,7 +172,7 @@ run_int_from_pos (opcode_counter_t start_pos,
|
||||
* otherwise (buffer size is not enough) - negated minimum required buffer size.
|
||||
*/
|
||||
ssize_t
|
||||
try_get_string_by_idx (T_IDX idx, /**< literal id */
|
||||
try_get_string_by_idx (idx_t idx, /**< literal id */
|
||||
ecma_char_t *buffer_p, /**< buffer */
|
||||
ssize_t buffer_size) /**< buffer size */
|
||||
{
|
||||
@@ -205,7 +205,7 @@ try_get_string_by_idx (T_IDX idx, /**< literal id */
|
||||
* @return value of number literal, corresponding to specified literal id
|
||||
*/
|
||||
ecma_number_t
|
||||
get_number_by_idx (T_IDX idx) /**< literal id */
|
||||
get_number_by_idx (idx_t idx) /**< literal id */
|
||||
{
|
||||
TODO (Actual number literal retrievement);
|
||||
|
||||
@@ -218,7 +218,7 @@ get_number_by_idx (T_IDX idx) /**< literal id */
|
||||
/**
|
||||
* Get specified opcode from the program.
|
||||
*/
|
||||
OPCODE
|
||||
opcode_t
|
||||
read_opcode (opcode_counter_t counter) /**< opcode counter */
|
||||
{
|
||||
return __program[ counter ];
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
#include "globals.h"
|
||||
#include "opcodes.h"
|
||||
|
||||
void init_int (const __opcode* program_p);
|
||||
void init_int (const opcode_t* program_p);
|
||||
bool run_int (void);
|
||||
ecma_completion_value_t run_int_from_pos (opcode_counter_t start_pos,
|
||||
ecma_value_t this_binding_value,
|
||||
@@ -28,10 +28,10 @@ ecma_completion_value_t run_int_from_pos (opcode_counter_t start_pos,
|
||||
bool is_strict,
|
||||
bool is_eval_code);
|
||||
|
||||
ssize_t try_get_string_by_idx (T_IDX idx, ecma_char_t *buffer_p, ssize_t buffer_size);
|
||||
ecma_number_t get_number_by_idx (T_IDX idx);
|
||||
ssize_t try_get_string_by_idx (idx_t idx, ecma_char_t *buffer_p, ssize_t buffer_size);
|
||||
ecma_number_t get_number_by_idx (idx_t idx);
|
||||
|
||||
__opcode read_opcode (opcode_counter_t counter);
|
||||
opcode_t read_opcode (opcode_counter_t counter);
|
||||
|
||||
#endif /* INTERPRETER_H */
|
||||
|
||||
|
||||
@@ -24,11 +24,11 @@
|
||||
* if argument evaluates to true.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_is_true_jmp (OPCODE opdata, /**< operation data */
|
||||
opfunc_is_true_jmp (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX cond_var_idx = opdata.data.is_true_jmp.value;
|
||||
const T_IDX dst_opcode_idx = opdata.data.is_true_jmp.opcode;
|
||||
const idx_t cond_var_idx = opdata.data.is_true_jmp.value;
|
||||
const idx_t dst_opcode_idx = opdata.data.is_true_jmp.opcode;
|
||||
|
||||
ecma_completion_value_t ret_value;
|
||||
|
||||
@@ -61,11 +61,11 @@ opfunc_is_true_jmp (OPCODE opdata, /**< operation data */
|
||||
* if argument evaluates to false.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_is_false_jmp (OPCODE opdata, /**< operation data */
|
||||
opfunc_is_false_jmp (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX cond_var_idx = opdata.data.is_false_jmp.value;
|
||||
const T_IDX dst_opcode_idx = opdata.data.is_false_jmp.opcode;
|
||||
const idx_t cond_var_idx = opdata.data.is_false_jmp.value;
|
||||
const idx_t dst_opcode_idx = opdata.data.is_false_jmp.opcode;
|
||||
|
||||
ecma_completion_value_t ret_value;
|
||||
|
||||
@@ -97,7 +97,7 @@ opfunc_is_false_jmp (OPCODE opdata, /**< operation data */
|
||||
* the opcode changes current opcode position to specified opcode index
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_jmp (OPCODE opdata, /**< operation data */
|
||||
opfunc_jmp (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
int_data->pos = opdata.data.jmp.opcode_idx;
|
||||
@@ -112,7 +112,7 @@ opfunc_jmp (OPCODE opdata, /**< operation data */
|
||||
* the opcode changes adds specified value to current opcode position
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_jmp_down (OPCODE opdata, /**< operation data */
|
||||
opfunc_jmp_down (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
JERRY_ASSERT (int_data->pos <= int_data->pos + opdata.data.jmp_up.opcode_count);
|
||||
@@ -129,7 +129,7 @@ opfunc_jmp_down (OPCODE opdata, /**< operation data */
|
||||
* the opcode changes substracts specified value from current opcode position
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_jmp_up (OPCODE opdata, /**< operation data */
|
||||
opfunc_jmp_up (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
JERRY_ASSERT (int_data->pos >= opdata.data.jmp_up.opcode_count);
|
||||
|
||||
@@ -43,7 +43,7 @@ typedef enum
|
||||
*/
|
||||
static ecma_completion_value_t
|
||||
do_number_bitwise_logic (__int_data *int_data, /**< interpreter context */
|
||||
T_IDX dst_var_idx, /**< destination variable identifier */
|
||||
idx_t dst_var_idx, /**< destination variable identifier */
|
||||
number_bitwise_logic_op op, /**< number bitwise logic operation */
|
||||
ecma_value_t left_value, /**< left value */
|
||||
ecma_value_t right_value) /** right value */
|
||||
@@ -125,12 +125,12 @@ do_number_bitwise_logic (__int_data *int_data, /**< interpreter context */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_and (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_and (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_and.dst;
|
||||
const T_IDX left_var_idx = opdata.data.b_and.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.b_and.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_and.dst;
|
||||
const idx_t left_var_idx = opdata.data.b_and.var_left;
|
||||
const idx_t right_var_idx = opdata.data.b_and.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -160,12 +160,12 @@ opfunc_b_and (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_or (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_or (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_or.dst;
|
||||
const T_IDX left_var_idx = opdata.data.b_or.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.b_or.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_or.dst;
|
||||
const idx_t left_var_idx = opdata.data.b_or.var_left;
|
||||
const idx_t right_var_idx = opdata.data.b_or.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -195,12 +195,12 @@ opfunc_b_or (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_xor (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_xor (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_xor.dst;
|
||||
const T_IDX left_var_idx = opdata.data.b_xor.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.b_xor.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_xor.dst;
|
||||
const idx_t left_var_idx = opdata.data.b_xor.var_left;
|
||||
const idx_t right_var_idx = opdata.data.b_xor.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -230,12 +230,12 @@ opfunc_b_xor (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_shift_left (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_shift_left (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_shift_left.dst;
|
||||
const T_IDX left_var_idx = opdata.data.b_shift_left.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.b_shift_left.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_shift_left.dst;
|
||||
const idx_t left_var_idx = opdata.data.b_shift_left.var_left;
|
||||
const idx_t right_var_idx = opdata.data.b_shift_left.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -265,12 +265,12 @@ opfunc_b_shift_left (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_shift_right (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_shift_right (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_shift_right.dst;
|
||||
const T_IDX left_var_idx = opdata.data.b_shift_right.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.b_shift_right.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_shift_right.dst;
|
||||
const idx_t left_var_idx = opdata.data.b_shift_right.var_left;
|
||||
const idx_t right_var_idx = opdata.data.b_shift_right.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -300,12 +300,12 @@ opfunc_b_shift_right (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_shift_uright (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_shift_uright (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_shift_uright.dst;
|
||||
const T_IDX left_var_idx = opdata.data.b_shift_uright.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.b_shift_uright.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_shift_uright.dst;
|
||||
const idx_t left_var_idx = opdata.data.b_shift_uright.var_left;
|
||||
const idx_t right_var_idx = opdata.data.b_shift_uright.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -335,11 +335,11 @@ opfunc_b_shift_uright (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_b_not (OPCODE opdata, /**< operation data */
|
||||
opfunc_b_not (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.b_not.dst;
|
||||
const T_IDX right_var_idx = opdata.data.b_not.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.b_not.dst;
|
||||
const idx_t right_var_idx = opdata.data.b_not.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ typedef enum
|
||||
*/
|
||||
static ecma_completion_value_t
|
||||
do_number_arithmetic (__int_data *int_data, /**< interpreter context */
|
||||
T_IDX dst_var_idx, /**< destination variable identifier */
|
||||
idx_t dst_var_idx, /**< destination variable identifier */
|
||||
number_arithmetic_op op, /**< number arithmetic operation */
|
||||
ecma_value_t left_value, /**< left value */
|
||||
ecma_value_t right_value) /** right value */
|
||||
@@ -108,12 +108,12 @@ do_number_arithmetic (__int_data *int_data, /**< interpreter context */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_addition (OPCODE opdata, /**< operation data */
|
||||
opfunc_addition (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.addition.dst;
|
||||
const T_IDX left_var_idx = opdata.data.addition.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.addition.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.addition.dst;
|
||||
const idx_t left_var_idx = opdata.data.addition.var_left;
|
||||
const idx_t right_var_idx = opdata.data.addition.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -155,12 +155,12 @@ opfunc_addition (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_substraction (OPCODE opdata, /**< operation data */
|
||||
opfunc_substraction (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.substraction.dst;
|
||||
const T_IDX left_var_idx = opdata.data.substraction.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.substraction.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.substraction.dst;
|
||||
const idx_t left_var_idx = opdata.data.substraction.var_left;
|
||||
const idx_t right_var_idx = opdata.data.substraction.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -190,12 +190,12 @@ opfunc_substraction (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_multiplication (OPCODE opdata, /**< operation data */
|
||||
opfunc_multiplication (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.multiplication.dst;
|
||||
const T_IDX left_var_idx = opdata.data.multiplication.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.multiplication.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.multiplication.dst;
|
||||
const idx_t left_var_idx = opdata.data.multiplication.var_left;
|
||||
const idx_t right_var_idx = opdata.data.multiplication.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -225,12 +225,12 @@ opfunc_multiplication (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_division (OPCODE opdata, /**< operation data */
|
||||
opfunc_division (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.division.dst;
|
||||
const T_IDX left_var_idx = opdata.data.division.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.division.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.division.dst;
|
||||
const idx_t left_var_idx = opdata.data.division.var_left;
|
||||
const idx_t right_var_idx = opdata.data.division.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -260,12 +260,12 @@ opfunc_division (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_remainder (OPCODE opdata, /**< operation data */
|
||||
opfunc_remainder (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.remainder.dst;
|
||||
const T_IDX left_var_idx = opdata.data.remainder.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.remainder.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.remainder.dst;
|
||||
const idx_t left_var_idx = opdata.data.remainder.var_left;
|
||||
const idx_t right_var_idx = opdata.data.remainder.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
|
||||
@@ -32,8 +32,8 @@
|
||||
#include "opcodes.h"
|
||||
|
||||
static bool do_strict_eval_arguments_check (ecma_reference_t) __unused;
|
||||
static ecma_completion_value_t get_variable_value (__int_data *, T_IDX, bool) __unused;
|
||||
static ecma_completion_value_t set_variable_value (__int_data *, T_IDX, ecma_value_t) __unused;
|
||||
static ecma_completion_value_t get_variable_value (__int_data *, idx_t, bool) __unused;
|
||||
static ecma_completion_value_t set_variable_value (__int_data *, idx_t, ecma_value_t) __unused;
|
||||
|
||||
/**
|
||||
* Perform so-called 'strict eval or arguments reference' check
|
||||
@@ -82,7 +82,7 @@ do_strict_eval_arguments_check (ecma_reference_t ref) /**< ECMA-reference */
|
||||
*/
|
||||
static ecma_completion_value_t
|
||||
get_variable_value (__int_data *int_data, /**< interpreter context */
|
||||
T_IDX var_idx, /**< variable identifier */
|
||||
idx_t var_idx, /**< variable identifier */
|
||||
bool do_eval_or_arguments_check) /** run 'strict eval or arguments reference' check
|
||||
See also: do_strict_eval_arguments_check */
|
||||
{
|
||||
@@ -134,7 +134,7 @@ get_variable_value (__int_data *int_data, /**< interpreter context */
|
||||
*/
|
||||
static ecma_completion_value_t
|
||||
set_variable_value (__int_data *int_data, /**< interpreter context */
|
||||
T_IDX var_idx, /**< variable identifier */
|
||||
idx_t var_idx, /**< variable identifier */
|
||||
ecma_value_t value) /**< value to set */
|
||||
{
|
||||
ecma_completion_value_t ret_value;
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_equal_value (OPCODE opdata, /**< operation data */
|
||||
opfunc_equal_value (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.equal_value.dst;
|
||||
const T_IDX left_var_idx = opdata.data.equal_value.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.equal_value.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.equal_value.dst;
|
||||
const idx_t left_var_idx = opdata.data.equal_value.var_left;
|
||||
const idx_t right_var_idx = opdata.data.equal_value.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -59,12 +59,12 @@ opfunc_equal_value (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_not_equal_value (OPCODE opdata, /**< operation data */
|
||||
opfunc_not_equal_value (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.not_equal_value.dst;
|
||||
const T_IDX left_var_idx = opdata.data.not_equal_value.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.not_equal_value.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.not_equal_value.dst;
|
||||
const idx_t left_var_idx = opdata.data.not_equal_value.var_left;
|
||||
const idx_t right_var_idx = opdata.data.not_equal_value.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -94,12 +94,12 @@ opfunc_not_equal_value (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_equal_value_type (OPCODE opdata, /**< operation data */
|
||||
opfunc_equal_value_type (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.equal_value_type.dst;
|
||||
const T_IDX left_var_idx = opdata.data.equal_value_type.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.equal_value_type.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.equal_value_type.dst;
|
||||
const idx_t left_var_idx = opdata.data.equal_value_type.var_left;
|
||||
const idx_t right_var_idx = opdata.data.equal_value_type.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -128,12 +128,12 @@ opfunc_equal_value_type (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_not_equal_value_type (OPCODE opdata, /**< operation data */
|
||||
opfunc_not_equal_value_type (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.not_equal_value_type.dst;
|
||||
const T_IDX left_var_idx = opdata.data.not_equal_value_type.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.not_equal_value_type.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.not_equal_value_type.dst;
|
||||
const idx_t left_var_idx = opdata.data.not_equal_value_type.var_left;
|
||||
const idx_t right_var_idx = opdata.data.not_equal_value_type.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
|
||||
@@ -25,12 +25,12 @@
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_less_than (OPCODE opdata, /**< operation data */
|
||||
opfunc_less_than (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.less_than.dst;
|
||||
const T_IDX left_var_idx = opdata.data.less_than.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.less_than.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.less_than.dst;
|
||||
const idx_t left_var_idx = opdata.data.less_than.var_left;
|
||||
const idx_t right_var_idx = opdata.data.less_than.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -75,12 +75,12 @@ opfunc_less_than (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_greater_than (OPCODE opdata, /**< operation data */
|
||||
opfunc_greater_than (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.greater_than.dst;
|
||||
const T_IDX left_var_idx = opdata.data.greater_than.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.greater_than.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.greater_than.dst;
|
||||
const idx_t left_var_idx = opdata.data.greater_than.var_left;
|
||||
const idx_t right_var_idx = opdata.data.greater_than.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -125,12 +125,12 @@ opfunc_greater_than (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_less_or_equal_than (OPCODE opdata, /**< operation data */
|
||||
opfunc_less_or_equal_than (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.less_or_equal_than.dst;
|
||||
const T_IDX left_var_idx = opdata.data.less_or_equal_than.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.less_or_equal_than.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.less_or_equal_than.dst;
|
||||
const idx_t left_var_idx = opdata.data.less_or_equal_than.var_left;
|
||||
const idx_t right_var_idx = opdata.data.less_or_equal_than.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -182,12 +182,12 @@ opfunc_less_or_equal_than (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_greater_or_equal_than (OPCODE opdata, /**< operation data */
|
||||
opfunc_greater_or_equal_than (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.greater_or_equal_than.dst;
|
||||
const T_IDX left_var_idx = opdata.data.greater_or_equal_than.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.greater_or_equal_than.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.greater_or_equal_than.dst;
|
||||
const idx_t left_var_idx = opdata.data.greater_or_equal_than.var_left;
|
||||
const idx_t right_var_idx = opdata.data.greater_or_equal_than.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -239,12 +239,12 @@ opfunc_greater_or_equal_than (OPCODE opdata, /**< operation data */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_instanceof (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_instanceof (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_idx = opdata.data.instanceof.dst;
|
||||
const T_IDX left_var_idx = opdata.data.instanceof.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.instanceof.var_right;
|
||||
const idx_t dst_idx = opdata.data.instanceof.dst;
|
||||
const idx_t left_var_idx = opdata.data.instanceof.var_left;
|
||||
const idx_t right_var_idx = opdata.data.instanceof.var_right;
|
||||
|
||||
ecma_completion_value_t ret_value;
|
||||
|
||||
@@ -284,12 +284,12 @@ opfunc_instanceof (OPCODE opdata __unused, /**< operation data */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_in (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_in (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_idx = opdata.data.in.dst;
|
||||
const T_IDX left_var_idx = opdata.data.in.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.in.var_right;
|
||||
const idx_t dst_idx = opdata.data.in.dst;
|
||||
const idx_t left_var_idx = opdata.data.in.var_left;
|
||||
const idx_t right_var_idx = opdata.data.in.var_right;
|
||||
|
||||
ecma_completion_value_t ret_value;
|
||||
|
||||
|
||||
+84
-53
@@ -64,7 +64,7 @@ typedef struct
|
||||
* Initialize string literal copy.
|
||||
*/
|
||||
static void
|
||||
init_string_literal_copy (T_IDX idx, /**< literal identifier */
|
||||
init_string_literal_copy (idx_t idx, /**< literal identifier */
|
||||
string_literal_copy *str_lit_descr_p) /**< pointer to string literal copy descriptor */
|
||||
{
|
||||
JERRY_ASSERT (str_lit_descr_p != NULL);
|
||||
@@ -136,7 +136,7 @@ free_string_literal_copy (string_literal_copy *str_lit_descr_p) /**< string lite
|
||||
static char __unused unimplemented_list_end
|
||||
|
||||
#define DEFINE_UNIMPLEMENTED_OP(op) \
|
||||
ecma_completion_value_t opfunc_ ## op (OPCODE opdata, __int_data *int_data) \
|
||||
ecma_completion_value_t opfunc_ ## op (opcode_t opdata, __int_data *int_data) \
|
||||
{ \
|
||||
JERRY_UNIMPLEMENTED_REF_UNUSED_VARS (opdata, int_data); \
|
||||
}
|
||||
@@ -148,7 +148,7 @@ OP_UNIMPLEMENTED_LIST (DEFINE_UNIMPLEMENTED_OP);
|
||||
* 'Nop' opcode handler.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_nop (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_nop (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
int_data->pos++;
|
||||
@@ -157,7 +157,7 @@ opfunc_nop (OPCODE opdata __unused, /**< operation data */
|
||||
} /* opfunc_nop */
|
||||
|
||||
ecma_completion_value_t
|
||||
opfunc_call_1 (OPCODE opdata __unused, __int_data *int_data)
|
||||
opfunc_call_1 (opcode_t opdata __unused, __int_data *int_data)
|
||||
{
|
||||
ecma_completion_value_t ret_value;
|
||||
ret_value = ecma_make_empty_completion_value ();
|
||||
@@ -250,8 +250,8 @@ opfunc_call_1 (OPCODE opdata __unused, __int_data *int_data)
|
||||
|
||||
if (!is_native_call)
|
||||
{
|
||||
const T_IDX func_name_lit_idx = opdata.data.call_1.name_lit_idx;
|
||||
const T_IDX lhs_var_idx = opdata.data.call_1.lhs;
|
||||
const idx_t func_name_lit_idx = opdata.data.call_1.name_lit_idx;
|
||||
const idx_t lhs_var_idx = opdata.data.call_1.lhs;
|
||||
|
||||
ECMA_TRY_CATCH (func_value, get_variable_value (int_data, func_name_lit_idx, false), ret_value);
|
||||
|
||||
@@ -298,12 +298,12 @@ opfunc_call_1 (OPCODE opdata __unused, __int_data *int_data)
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_assignment (OPCODE opdata, /**< operation data */
|
||||
opfunc_assignment (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.assignment.var_left;
|
||||
const idx_t dst_var_idx = opdata.data.assignment.var_left;
|
||||
const opcode_arg_type_operand type_value_right = opdata.data.assignment.type_value_right;
|
||||
const T_IDX src_val_descr = opdata.data.assignment.value_right;
|
||||
const idx_t src_val_descr = opdata.data.assignment.value_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -384,11 +384,11 @@ opfunc_assignment (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_pre_incr (OPCODE opdata, /**< operation data */
|
||||
opfunc_pre_incr (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.pre_incr.dst;
|
||||
const T_IDX incr_var_idx = opdata.data.pre_incr.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.pre_incr.dst;
|
||||
const idx_t incr_var_idx = opdata.data.pre_incr.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -434,11 +434,11 @@ opfunc_pre_incr (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_pre_decr (OPCODE opdata, /**< operation data */
|
||||
opfunc_pre_decr (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.pre_decr.dst;
|
||||
const T_IDX decr_var_idx = opdata.data.pre_decr.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.pre_decr.dst;
|
||||
const idx_t decr_var_idx = opdata.data.pre_decr.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -484,11 +484,11 @@ opfunc_pre_decr (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_post_incr (OPCODE opdata, /**< operation data */
|
||||
opfunc_post_incr (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.post_incr.dst;
|
||||
const T_IDX incr_var_idx = opdata.data.post_incr.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.post_incr.dst;
|
||||
const idx_t incr_var_idx = opdata.data.post_incr.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -532,11 +532,11 @@ opfunc_post_incr (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_post_decr (OPCODE opdata, /**< operation data */
|
||||
opfunc_post_decr (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.post_decr.dst;
|
||||
const T_IDX decr_var_idx = opdata.data.post_decr.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.post_decr.dst;
|
||||
const idx_t decr_var_idx = opdata.data.post_decr.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -577,7 +577,7 @@ opfunc_post_decr (OPCODE opdata, /**< operation data */
|
||||
* The opcode is meta-opcode that is not supposed to be executed.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_reg_var_decl (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_reg_var_decl (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
JERRY_UNREACHABLE ();
|
||||
@@ -593,7 +593,7 @@ opfunc_reg_var_decl (OPCODE opdata __unused, /**< operation data */
|
||||
* However, ecma_free_completion_value may be called for it, but it is a no-op.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_var_decl (OPCODE opdata, /**< operation data */
|
||||
opfunc_var_decl (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
ecma_string_t *var_name_string_p = ecma_new_ecma_string_from_lit_index (opdata.data.var_decl.variable_name);
|
||||
@@ -633,7 +633,7 @@ opfunc_var_decl (OPCODE opdata, /**< operation data */
|
||||
*/
|
||||
static ecma_completion_value_t
|
||||
function_declaration (__int_data *int_data, /**< interpreter context */
|
||||
T_IDX function_name_lit_idx, /**< identifier of literal with function name */
|
||||
idx_t function_name_lit_idx, /**< identifier of literal with function name */
|
||||
ecma_string_t* args_names[], /**< names of arguments */
|
||||
ecma_length_t args_number) /**< number of arguments */
|
||||
{
|
||||
@@ -643,7 +643,7 @@ function_declaration (__int_data *int_data, /**< interpreter context */
|
||||
const bool is_configurable_bindings = int_data->is_eval_code;
|
||||
|
||||
const opcode_counter_t jmp_down_opcode_idx = (opcode_counter_t) (int_data->pos);
|
||||
OPCODE jmp_down_opcode = read_opcode (jmp_down_opcode_idx);
|
||||
opcode_t jmp_down_opcode = read_opcode (jmp_down_opcode_idx);
|
||||
JERRY_ASSERT (jmp_down_opcode.op_idx == __op__idx_jmp_down);
|
||||
int_data->pos = (opcode_counter_t) (jmp_down_opcode_idx + jmp_down_opcode.data.jmp_down.opcode_count);
|
||||
|
||||
@@ -670,7 +670,7 @@ function_declaration (__int_data *int_data, /**< interpreter context */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_func_decl_0 (OPCODE opdata, /**< operation data */
|
||||
opfunc_func_decl_0 (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
int_data->pos++;
|
||||
@@ -688,7 +688,7 @@ opfunc_func_decl_0 (OPCODE opdata, /**< operation data */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_func_decl_1 (OPCODE opdata, /**< operation data */
|
||||
opfunc_func_decl_1 (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
int_data->pos++;
|
||||
@@ -712,7 +712,7 @@ opfunc_func_decl_1 (OPCODE opdata, /**< operation data */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_func_decl_2 (OPCODE opdata, /**< operation data */
|
||||
opfunc_func_decl_2 (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
int_data->pos++;
|
||||
@@ -743,11 +743,11 @@ opfunc_func_decl_2 (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_call_0 (OPCODE opdata, /**< operation data */
|
||||
opfunc_call_0 (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX func_name_lit_idx = opdata.data.call_0.name_lit_idx;
|
||||
const T_IDX lhs_var_idx = opdata.data.call_0.lhs;
|
||||
const idx_t func_name_lit_idx = opdata.data.call_0.name_lit_idx;
|
||||
const idx_t lhs_var_idx = opdata.data.call_0.lhs;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -789,7 +789,7 @@ opfunc_call_0 (OPCODE opdata, /**< operation data */
|
||||
* However, ecma_free_completion_value may be called for it, but it is a no-op.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_ret (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_ret (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
return ecma_make_completion_value (ECMA_COMPLETION_TYPE_RETURN,
|
||||
@@ -807,7 +807,7 @@ opfunc_ret (OPCODE opdata __unused, /**< operation data */
|
||||
* However, ecma_free_completion_value may be called for it, but it is a no-op.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_retval (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_retval (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
ecma_completion_value_t ret_value;
|
||||
@@ -833,12 +833,12 @@ opfunc_retval (OPCODE opdata __unused, /**< operation data */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_prop_getter (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_prop_getter (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
const T_IDX lhs_var_idx = opdata.data.prop_getter.lhs;
|
||||
const T_IDX base_var_idx = opdata.data.prop_getter.obj;
|
||||
const T_IDX prop_name_var_idx = opdata.data.prop_getter.prop;
|
||||
const idx_t lhs_var_idx = opdata.data.prop_getter.lhs;
|
||||
const idx_t base_var_idx = opdata.data.prop_getter.obj;
|
||||
const idx_t prop_name_var_idx = opdata.data.prop_getter.prop;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -880,12 +880,12 @@ opfunc_prop_getter (OPCODE opdata __unused, /**< operation data */
|
||||
* returned value must be freed with ecma_free_completion_value.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_prop_setter (OPCODE opdata __unused, /**< operation data */
|
||||
opfunc_prop_setter (opcode_t opdata __unused, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
const T_IDX base_var_idx = opdata.data.prop_setter.obj;
|
||||
const T_IDX prop_name_var_idx = opdata.data.prop_setter.prop;
|
||||
const T_IDX rhs_var_idx = opdata.data.prop_setter.rhs;
|
||||
const idx_t base_var_idx = opdata.data.prop_setter.obj;
|
||||
const idx_t prop_name_var_idx = opdata.data.prop_setter.prop;
|
||||
const idx_t rhs_var_idx = opdata.data.prop_setter.rhs;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -929,7 +929,7 @@ opfunc_prop_setter (OPCODE opdata __unused, /**< operation data */
|
||||
* However, ecma_free_completion_value may be called for it, but it is a no-op.
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_exitval (OPCODE opdata, /**< operation data */
|
||||
opfunc_exitval (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data __unused) /**< interpreter context */
|
||||
{
|
||||
JERRY_ASSERT (opdata.data.exitval.status_code == 0
|
||||
@@ -951,11 +951,11 @@ opfunc_exitval (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_logical_not (OPCODE opdata, /**< operation data */
|
||||
opfunc_logical_not (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.logical_not.dst;
|
||||
const T_IDX right_var_idx = opdata.data.logical_not.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.logical_not.dst;
|
||||
const idx_t right_var_idx = opdata.data.logical_not.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -989,12 +989,12 @@ opfunc_logical_not (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_logical_or (OPCODE opdata, /**< operation data */
|
||||
opfunc_logical_or (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.logical_or.dst;
|
||||
const T_IDX left_var_idx = opdata.data.logical_or.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.logical_or.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.logical_or.dst;
|
||||
const idx_t left_var_idx = opdata.data.logical_or.var_left;
|
||||
const idx_t right_var_idx = opdata.data.logical_or.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -1033,12 +1033,12 @@ opfunc_logical_or (OPCODE opdata, /**< operation data */
|
||||
* Returned value must be freed with ecma_free_completion_value
|
||||
*/
|
||||
ecma_completion_value_t
|
||||
opfunc_logical_and (OPCODE opdata, /**< operation data */
|
||||
opfunc_logical_and (opcode_t opdata, /**< operation data */
|
||||
__int_data *int_data) /**< interpreter context */
|
||||
{
|
||||
const T_IDX dst_var_idx = opdata.data.logical_and.dst;
|
||||
const T_IDX left_var_idx = opdata.data.logical_and.var_left;
|
||||
const T_IDX right_var_idx = opdata.data.logical_and.var_right;
|
||||
const idx_t dst_var_idx = opdata.data.logical_and.dst;
|
||||
const idx_t left_var_idx = opdata.data.logical_and.var_left;
|
||||
const idx_t right_var_idx = opdata.data.logical_and.var_right;
|
||||
|
||||
int_data->pos++;
|
||||
|
||||
@@ -1068,4 +1068,35 @@ opfunc_logical_and (OPCODE opdata, /**< operation data */
|
||||
return ret_value;
|
||||
} /* opfunc_logical_and */
|
||||
|
||||
|
||||
#define GETOP_DEF_1(a, name, field1) \
|
||||
opcode_t getop_##name (idx_t arg1) \
|
||||
{ \
|
||||
opcode_t opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
opdata.data.name.field1 = arg1; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
#define GETOP_DEF_2(a, name, field1, field2) \
|
||||
opcode_t getop_##name (idx_t arg1, idx_t arg2) \
|
||||
{ \
|
||||
opcode_t opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
opdata.data.name.field1 = arg1; \
|
||||
opdata.data.name.field2 = arg2; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
#define GETOP_DEF_3(a, name, field1, field2, field3) \
|
||||
opcode_t getop_##name (idx_t arg1, idx_t arg2, idx_t arg3) \
|
||||
{ \
|
||||
opcode_t opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
opdata.data.name.field1 = arg1; \
|
||||
opdata.data.name.field2 = arg2; \
|
||||
opdata.data.name.field3 = arg3; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
OP_ARGS_LIST (GETOP_DEF)
|
||||
|
||||
+31
-56
@@ -19,9 +19,6 @@
|
||||
#include "ecma-globals.h"
|
||||
#include "globals.h"
|
||||
|
||||
#define T_IDX uint8_t /** index values */
|
||||
#define OPCODE __opcode
|
||||
|
||||
#define OP_0(action, name) \
|
||||
__##action (name, void, void, void)
|
||||
|
||||
@@ -34,11 +31,8 @@
|
||||
#define OP_3(action, name, field1, field2, field3) \
|
||||
__##action (name, field1, field2, field3)
|
||||
|
||||
#define __OP_STRUCT_FIELD(name, arg1, arg2, arg3) __op_##name name;
|
||||
#define __OP_ENUM_FIELD(name, arg1, arg2, arg3) __op__idx_##name ,
|
||||
#define __OP_FUNC_DECL(name, arg1, arg2, arg3) ecma_completion_value_t opfunc_##name (__opcode, __int_data*);
|
||||
|
||||
typedef uint16_t opcode_counter_t;
|
||||
typedef uint16_t opcode_counter_t; /** opcode counters */
|
||||
typedef uint8_t idx_t; /** index values */
|
||||
|
||||
/**
|
||||
* Descriptor of assignment's second argument
|
||||
@@ -60,8 +54,8 @@ typedef struct
|
||||
ecma_object_t *lex_env_p; /**< current lexical environment */
|
||||
bool is_strict; /**< is current code execution mode strict? */
|
||||
bool is_eval_code; /**< is current code executed with eval */
|
||||
T_IDX min_reg_num; /**< minimum idx used for register identification */
|
||||
T_IDX max_reg_num; /**< maximum idx used for register identification */
|
||||
idx_t min_reg_num; /**< minimum idx used for register identification */
|
||||
idx_t max_reg_num; /**< maximum idx used for register identification */
|
||||
ecma_value_t *regs_p; /**< register variables */
|
||||
} __int_data;
|
||||
|
||||
@@ -167,101 +161,82 @@ typedef struct
|
||||
#define OP_DATA_0(action, name) \
|
||||
typedef struct \
|
||||
{ \
|
||||
T_IDX __do_not_use; \
|
||||
idx_t __do_not_use; \
|
||||
} __op_##name;
|
||||
|
||||
#define OP_DATA_1(action, name, arg1) \
|
||||
typedef struct \
|
||||
{ \
|
||||
T_IDX arg1; \
|
||||
idx_t arg1; \
|
||||
} __op_##name;
|
||||
|
||||
#define OP_DATA_2(action, name, arg1, arg2) \
|
||||
typedef struct \
|
||||
{ \
|
||||
T_IDX arg1; \
|
||||
T_IDX arg2; \
|
||||
idx_t arg1; \
|
||||
idx_t arg2; \
|
||||
} __op_##name;
|
||||
|
||||
#define OP_DATA_3(action, name, arg1, arg2, arg3) \
|
||||
typedef struct \
|
||||
{ \
|
||||
T_IDX arg1; \
|
||||
T_IDX arg2; \
|
||||
T_IDX arg3; \
|
||||
idx_t arg1; \
|
||||
idx_t arg2; \
|
||||
idx_t arg3; \
|
||||
} __op_##name;
|
||||
|
||||
OP_ARGS_LIST (OP_DATA)
|
||||
|
||||
#define __OP_STRUCT_FIELD(name, arg1, arg2, arg3) __op_##name name;
|
||||
typedef struct
|
||||
{
|
||||
T_IDX op_idx;
|
||||
idx_t op_idx;
|
||||
union
|
||||
{
|
||||
OP_LIST (OP_STRUCT_FIELD)
|
||||
} data;
|
||||
} __opcode;
|
||||
} opcode_t;
|
||||
#undef __OP_STRUCT_FIELD
|
||||
|
||||
#define __OP_ENUM_FIELD(name, arg1, arg2, arg3) __op__idx_##name ,
|
||||
enum __opcode_idx
|
||||
{
|
||||
OP_LIST (OP_ENUM_FIELD)
|
||||
LAST_OP
|
||||
};
|
||||
#undef __OP_ENUM_FIELD
|
||||
|
||||
#define __OP_FUNC_DECL(name, arg1, arg2, arg3) ecma_completion_value_t opfunc_##name (opcode_t, __int_data*);
|
||||
OP_LIST (OP_FUNC_DECL)
|
||||
#undef __OP_FUNC_DECL
|
||||
|
||||
typedef ecma_completion_value_t (*opfunc) (__opcode, __int_data *);
|
||||
typedef ecma_completion_value_t (*opfunc) (opcode_t, __int_data *);
|
||||
|
||||
#define GETOP_DECL_0(a, name) \
|
||||
__opcode getop_##name (void);
|
||||
opcode_t getop_##name (void);
|
||||
|
||||
#define GETOP_DECL_1(a, name, arg1) \
|
||||
__opcode getop_##name (T_IDX);
|
||||
opcode_t getop_##name (idx_t);
|
||||
|
||||
#define GETOP_DECL_2(a, name, arg1, arg2) \
|
||||
__opcode getop_##name (T_IDX, T_IDX);
|
||||
opcode_t getop_##name (idx_t, idx_t);
|
||||
|
||||
#define GETOP_DECL_3(a, name, arg1, arg2, arg3) \
|
||||
__opcode getop_##name (T_IDX, T_IDX, T_IDX);
|
||||
opcode_t getop_##name (idx_t, idx_t, idx_t);
|
||||
|
||||
#define GETOP_DEF_0(a, name) \
|
||||
__opcode getop_##name (void) \
|
||||
opcode_t getop_##name (void) \
|
||||
{ \
|
||||
__opcode opdata; \
|
||||
opcode_t opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
#define GETOP_DEF_1(a, name, field1) \
|
||||
__opcode getop_##name (T_IDX arg1) \
|
||||
{ \
|
||||
__opcode opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
opdata.data.name.field1 = arg1; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
#define GETOP_DEF_2(a, name, field1, field2) \
|
||||
__opcode getop_##name (T_IDX arg1, T_IDX arg2) \
|
||||
{ \
|
||||
__opcode opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
opdata.data.name.field1 = arg1; \
|
||||
opdata.data.name.field2 = arg2; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
#define GETOP_DEF_3(a, name, field1, field2, field3) \
|
||||
__opcode getop_##name (T_IDX arg1, T_IDX arg2, T_IDX arg3) \
|
||||
{ \
|
||||
__opcode opdata; \
|
||||
opdata.op_idx = __op__idx_##name; \
|
||||
opdata.data.name.field1 = arg1; \
|
||||
opdata.data.name.field2 = arg2; \
|
||||
opdata.data.name.field3 = arg3; \
|
||||
return opdata; \
|
||||
}
|
||||
|
||||
OP_ARGS_LIST (GETOP_DECL)
|
||||
#undef GETOP_DECL_0
|
||||
#undef GETOP_DECL_1
|
||||
#undef GETOP_DECL_2
|
||||
#undef GETOP_DECL_3
|
||||
|
||||
|
||||
#endif /* OPCODES_H */
|
||||
|
||||
Reference in New Issue
Block a user