Fix 'while' bytecode generation

This commit is contained in:
Ilmir Usmanov
2014-10-14 16:55:09 +04:00
parent 78367993db
commit 9be0a85c1c
3 changed files with 3 additions and 3 deletions
+1 -1
View File
@@ -190,7 +190,7 @@ CFLAGS_WERROR ?= -Werror
CFLAGS_WFATAL_ERRORS ?= -Wfatal-errors CFLAGS_WFATAL_ERRORS ?= -Wfatal-errors
# Optimizations # Optimizations
CFLAGS_OPTIMIZE ?= -Os -flto CFLAGS_OPTIMIZE ?= -O3 -flto
CFLAGS_NO_OPTIMIZE ?= -O0 CFLAGS_NO_OPTIMIZE ?= -O0
LDFLAGS_OPTIMIZE ?= LDFLAGS_OPTIMIZE ?=
LDFLAGS_NO_OPTIMIZE ?= LDFLAGS_NO_OPTIMIZE ?=
+1 -1
View File
@@ -2847,7 +2847,7 @@ parse_while_statement (void)
STACK_PUSH (U16, OPCODE_COUNTER ()); STACK_PUSH (U16, OPCODE_COUNTER ());
DUMP_OPCODE_2 (jmp_up, INVALID_VALUE, INVALID_VALUE); DUMP_OPCODE_2 (jmp_up, INVALID_VALUE, INVALID_VALUE);
REWRITE_JMP (STACK_TOP (U16), jmp_up, OPCODE_COUNTER () - STACK_HEAD (U16, 3)); REWRITE_JMP (STACK_TOP (U16), jmp_up, STACK_TOP (U16) - STACK_HEAD (U16, 3));
REWRITE_COND_JMP (STACK_HEAD (U16, 2), is_false_jmp_down, OPCODE_COUNTER () - STACK_HEAD (U16, 2)); REWRITE_COND_JMP (STACK_HEAD (U16, 2), is_false_jmp_down, OPCODE_COUNTER () - STACK_HEAD (U16, 2));
rewrite_rewritable_opcodes (REWRITABLE_CONTINUE, STACK_HEAD (U8, 2), STACK_HEAD (U16, 3)); rewrite_rewritable_opcodes (REWRITABLE_CONTINUE, STACK_HEAD (U8, 2), STACK_HEAD (U16, 3));
+1 -1
View File
@@ -276,7 +276,7 @@ pp_opcode (opcode_counter_t oc, opcode_t opcode, bool is_rewrite)
} }
case NAME_TO_ID (is_false_jmp_down): case NAME_TO_ID (is_false_jmp_down):
{ {
pp_printf ("if (%s) goto %d;", opcode.data.is_false_jmp_down.value, pp_printf ("if (%s == false) goto %d;", opcode.data.is_false_jmp_down.value,
oc + calc_opcode_counter_from_idx_idx (opcode.data.is_false_jmp_down.opcode_1, oc + calc_opcode_counter_from_idx_idx (opcode.data.is_false_jmp_down.opcode_1,
opcode.data.is_false_jmp_down.opcode_2)); opcode.data.is_false_jmp_down.opcode_2));
break; break;