Parser improvements.
The number of delete opcodes is reduced to two from six. The range of numbers which can be included in the byte code is doubled from (-127,127) to (-256,256). JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -144,10 +144,10 @@
|
||||
*/
|
||||
|
||||
#define CBC_NO_RESULT_OPERATION(opcode) \
|
||||
((opcode) >= CBC_DELETE && (opcode) < CBC_END)
|
||||
((opcode) >= CBC_PRE_INCR && (opcode) < CBC_END)
|
||||
|
||||
#define CBC_NO_RESULT_BLOCK(opcode) \
|
||||
((opcode) >= CBC_DELETE && (opcode) < CBC_ASSIGN_ADD)
|
||||
((opcode) >= CBC_PRE_INCR && (opcode) < CBC_ASSIGN_ADD)
|
||||
|
||||
#define CBC_NO_RESULT_COMPOUND_ASSIGMENT(opcode) \
|
||||
((opcode) >= CBC_ASSIGN_ADD && (opcode) < CBC_END)
|
||||
@@ -271,9 +271,11 @@
|
||||
CBC_OPCODE (CBC_PUSH_THIS_LITERAL, CBC_HAS_LITERAL_ARG, 2, \
|
||||
VM_OC_PUSH_TWO | VM_OC_GET_THIS_LITERAL) \
|
||||
CBC_OPCODE (CBC_PUSH_NUMBER_0, CBC_NO_FLAG, 1, \
|
||||
VM_OC_PUSH_NUMBER | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_PUSH_NUMBER_1, CBC_HAS_BYTE_ARG, 1, \
|
||||
VM_OC_PUSH_NUMBER | VM_OC_PUT_STACK) \
|
||||
VM_OC_PUSH_NUMBER_0 | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_PUSH_NUMBER_POS_BYTE, CBC_HAS_BYTE_ARG, 1, \
|
||||
VM_OC_PUSH_NUMBER_POS_BYTE | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_PUSH_NUMBER_NEG_BYTE, CBC_HAS_BYTE_ARG, 1, \
|
||||
VM_OC_PUSH_NUMBER_NEG_BYTE | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_PUSH_PROP, CBC_NO_FLAG, -1, \
|
||||
VM_OC_PROP_GET | VM_OC_GET_STACK_STACK | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_PUSH_PROP_LITERAL, CBC_HAS_LITERAL_ARG, 0, \
|
||||
@@ -376,18 +378,10 @@
|
||||
MOD) \
|
||||
\
|
||||
/* Unary lvalue opcodes. */ \
|
||||
CBC_OPCODE (CBC_DELETE, CBC_NO_FLAG, -2, \
|
||||
VM_OC_PROP_DELETE | VM_OC_GET_STACK_STACK) \
|
||||
CBC_OPCODE (CBC_DELETE_PUSH_RESULT, CBC_NO_FLAG, -1, \
|
||||
VM_OC_PROP_DELETE | VM_OC_GET_STACK_STACK | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_DELETE_BLOCK, CBC_NO_FLAG, -2, \
|
||||
VM_OC_PROP_DELETE | VM_OC_GET_STACK_STACK | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_DELETE_IDENT, CBC_HAS_LITERAL_ARG, 0, \
|
||||
VM_OC_DELETE) \
|
||||
CBC_OPCODE (CBC_DELETE_IDENT_PUSH_RESULT, CBC_HAS_LITERAL_ARG, 1, \
|
||||
VM_OC_DELETE | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_DELETE_IDENT_BLOCK, CBC_HAS_LITERAL_ARG, 0, \
|
||||
VM_OC_DELETE | VM_OC_PUT_BLOCK) \
|
||||
CBC_UNARY_LVALUE_OPERATION (CBC_PRE_INCR, \
|
||||
PRE_INCR) \
|
||||
CBC_UNARY_LVALUE_OPERATION (CBC_PRE_DECR, \
|
||||
@@ -597,7 +591,7 @@
|
||||
#define CBC_MAXIMUM_SMALL_VALUE 510
|
||||
#define CBC_MAXIMUM_FULL_VALUE 32767
|
||||
|
||||
#define CBC_PUSH_NUMBER_1_RANGE_END 128
|
||||
#define CBC_PUSH_NUMBER_BYTE_RANGE_END 256
|
||||
|
||||
#define CBC_HIGHEST_BIT_MASK 0x80
|
||||
#define CBC_LOWER_SEVEN_BIT_MASK 0x7f
|
||||
|
||||
Reference in New Issue
Block a user