Non-recursive vm_loop to reduce stack usage.
JerryScript-DCO-1.0-Signed-off-by: Zoltan Herczeg zherczeg.u-szeged@partner.samsung.com
This commit is contained in:
@@ -295,9 +295,9 @@
|
||||
CBC_OPCODE (CBC_NEW, CBC_HAS_POP_STACK_BYTE_ARG, 0, \
|
||||
VM_OC_NEW | VM_OC_GET_BYTE | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_NEW0, CBC_NO_FLAG, 0, \
|
||||
VM_OC_NEW_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_NEW | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_NEW1, CBC_NO_FLAG, -1, \
|
||||
VM_OC_NEW_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_NEW | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_EVAL, CBC_NO_FLAG, 0, \
|
||||
VM_OC_EVAL) \
|
||||
CBC_OPCODE (CBC_DEFINE_VARS, CBC_HAS_LITERAL_ARG, 0, \
|
||||
@@ -405,47 +405,47 @@
|
||||
CBC_OPCODE (CBC_CALL_BLOCK, CBC_HAS_POP_STACK_BYTE_ARG, -1, \
|
||||
VM_OC_CALL | VM_OC_GET_BYTE | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL_PROP, CBC_HAS_POP_STACK_BYTE_ARG, -3, \
|
||||
VM_OC_CALL_PROP | VM_OC_GET_BYTE) \
|
||||
VM_OC_CALL | VM_OC_GET_BYTE) \
|
||||
CBC_OPCODE (CBC_CALL_PROP_PUSH_RESULT, CBC_HAS_POP_STACK_BYTE_ARG, -2, \
|
||||
VM_OC_CALL_PROP | VM_OC_GET_BYTE | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_GET_BYTE | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL_PROP_BLOCK, CBC_HAS_POP_STACK_BYTE_ARG, -3, \
|
||||
VM_OC_CALL_PROP | VM_OC_GET_BYTE | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_GET_BYTE | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL0, CBC_NO_FLAG, -1, \
|
||||
VM_OC_CALL_N) \
|
||||
VM_OC_CALL) \
|
||||
CBC_OPCODE (CBC_CALL0_PUSH_RESULT, CBC_NO_FLAG, 0, \
|
||||
VM_OC_CALL_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL0_BLOCK, CBC_NO_FLAG, -1, \
|
||||
VM_OC_CALL_N | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL0_PROP, CBC_NO_FLAG, -3, \
|
||||
VM_OC_CALL_PROP_N) \
|
||||
VM_OC_CALL) \
|
||||
CBC_OPCODE (CBC_CALL0_PROP_PUSH_RESULT, CBC_NO_FLAG, -2, \
|
||||
VM_OC_CALL_PROP_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL0_PROP_BLOCK, CBC_NO_FLAG, -3, \
|
||||
VM_OC_CALL_PROP_N | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL1, CBC_NO_FLAG, -2, \
|
||||
VM_OC_CALL_N) \
|
||||
VM_OC_CALL) \
|
||||
CBC_OPCODE (CBC_CALL1_PUSH_RESULT, CBC_NO_FLAG, -1, \
|
||||
VM_OC_CALL_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL1_BLOCK, CBC_NO_FLAG, -2, \
|
||||
VM_OC_CALL_N | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL1_PROP, CBC_NO_FLAG, -4, \
|
||||
VM_OC_CALL_PROP_N) \
|
||||
VM_OC_CALL) \
|
||||
CBC_OPCODE (CBC_CALL1_PROP_PUSH_RESULT, CBC_NO_FLAG, -3, \
|
||||
VM_OC_CALL_PROP_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL1_PROP_BLOCK, CBC_NO_FLAG, -4, \
|
||||
VM_OC_CALL_PROP_N | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL2, CBC_NO_FLAG, -3, \
|
||||
VM_OC_CALL_N) \
|
||||
VM_OC_CALL) \
|
||||
CBC_OPCODE (CBC_CALL2_PUSH_RESULT, CBC_NO_FLAG, -2, \
|
||||
VM_OC_CALL_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL2_BLOCK, CBC_NO_FLAG, -3, \
|
||||
VM_OC_CALL_N | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_PUT_BLOCK) \
|
||||
CBC_OPCODE (CBC_CALL2_PROP, CBC_NO_FLAG, -4, \
|
||||
VM_OC_CALL_PROP_N) \
|
||||
VM_OC_CALL) \
|
||||
CBC_OPCODE (CBC_CALL2_PROP_PUSH_RESULT, CBC_NO_FLAG, -3, \
|
||||
VM_OC_CALL_PROP_N | VM_OC_PUT_STACK) \
|
||||
VM_OC_CALL | VM_OC_PUT_STACK) \
|
||||
CBC_OPCODE (CBC_CALL2_PROP_BLOCK, CBC_NO_FLAG, -4, \
|
||||
VM_OC_CALL_PROP_N | VM_OC_PUT_BLOCK) \
|
||||
VM_OC_CALL | VM_OC_PUT_BLOCK) \
|
||||
\
|
||||
/* Binary assignment opcodes. */ \
|
||||
CBC_OPCODE (CBC_ASSIGN, CBC_NO_FLAG, -3, \
|
||||
|
||||
Reference in New Issue
Block a user