Reduce number of operand type handling conditional blocks in byte-code dumper, by extracting them to several separate routines that can be used for most cases, remove getop_* routines from vm.

JerryScript-DCO-1.0-Signed-off-by: Ruben Ayrapetyan r.ayrapetyan@samsung.com
This commit is contained in:
Ruben Ayrapetyan
2015-08-12 15:21:59 +03:00
parent cbdc48a1fc
commit a00079e8ff
6 changed files with 608 additions and 837 deletions
-40
View File
@@ -1805,43 +1805,3 @@ vm_read_instr_counter_from_meta (opcode_meta_type expected_type, /**< expected t
return vm_calc_instr_counter_from_idx_idx (data_1, data_2);
} /* vm_read_instr_counter_from_meta */
#define VM_OP_0(opcode_name, opcode_name_uppercase) \
vm_instr_t getop_##opcode_name (void) \
{ \
vm_instr_t instr; \
memset (&instr, 0, sizeof(instr)); \
instr.op_idx = VM_OP_##opcode_name_uppercase; \
return instr; \
}
#define VM_OP_1(opcode_name, opcode_name_uppercase, arg1, arg1_type) \
vm_instr_t getop_##opcode_name (vm_idx_t arg1_v) \
{ \
vm_instr_t instr; \
memset (&instr, 0, sizeof(instr)); \
instr.op_idx = VM_OP_##opcode_name_uppercase; \
instr.data.opcode_name.arg1 = arg1_v; \
return instr; \
}
#define VM_OP_2(opcode_name, opcode_name_uppercase, arg1, arg1_type, arg2, arg2_type) \
vm_instr_t getop_##opcode_name (vm_idx_t arg1_v, vm_idx_t arg2_v) \
{ \
vm_instr_t instr; \
memset (&instr, 0, sizeof(instr)); \
instr.op_idx = VM_OP_##opcode_name_uppercase; \
instr.data.opcode_name.arg1 = arg1_v; \
instr.data.opcode_name.arg2 = arg2_v; \
return instr; \
}
#define VM_OP_3(opcode_name, opcode_name_uppercase, arg1, arg1_type, arg2, arg2_type, arg3, arg3_type) \
vm_instr_t getop_##opcode_name (vm_idx_t arg1_v, vm_idx_t arg2_v, vm_idx_t arg3_v) \
{ \
vm_instr_t instr; \
instr.op_idx = VM_OP_##opcode_name_uppercase; \
instr.data.opcode_name.arg1 = arg1_v; \
instr.data.opcode_name.arg2 = arg2_v; \
instr.data.opcode_name.arg3 = arg3_v; \
return instr; \
}
#include "vm-opcodes.inc.h"