]> git.kaiwu.me - njs.git/commit
Refactored njs_vmcode_interpreter() for performance.
authorDmitry Volyntsev <xeioex@nginx.com>
Fri, 26 Jul 2019 17:37:13 +0000 (20:37 +0300)
committerDmitry Volyntsev <xeioex@nginx.com>
Fri, 26 Jul 2019 17:37:13 +0000 (20:37 +0300)
commita17be50e2cf5be98ddad07b361d9f03d1bb50331
treed7b012b26e71b5701e931f6414dd21751b8c8e15
parent6a58535b0f365bd0f0a7059687d95443b81e1623
Refactored njs_vmcode_interpreter() for performance.

    1) opcodes are rewritten using switch table.
    2) often-used opcodes are prioritized and
       inlined.
    3) similar opcodes are combined into unified
       handlers.
    4) njs_vmcode_interpreter() return NJS_OK on
       success. NJS_STOP return code is removed.
12 files changed:
njs/njs_disassembler.c
njs/njs_function.c
njs/njs_function.h
njs/njs_generator.c
njs/njs_parser.c
njs/njs_parser_expression.c
njs/njs_parser_terminal.c
njs/njs_vm.c
njs/njs_vm.h
njs/njs_vmcode.c
njs/njs_vmcode.h
njs/test/njs_unit_test.c