diff options
Diffstat (limited to 'Zend/README.ZEND_VM')
-rw-r--r-- | Zend/README.ZEND_VM | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/Zend/README.ZEND_VM b/Zend/README.ZEND_VM index 2cd5dfc520..b05b7ccc9a 100644 --- a/Zend/README.ZEND_VM +++ b/Zend/README.ZEND_VM @@ -21,7 +21,7 @@ ZEND_VM_HANDLER(<OPCODE-NUMBER>, <OPCODE>, <OP1_TYPES>, <OP2_TYPES>) <OPCODE-NUMBER> is a opcode number (0, 1, ...) <OPCODE> is an opcode name (ZEN_NOP, ZEND_ADD, :) <OP1_TYPES> & <OP2_TYPES> are masks for allowed operand op_types. Specializer -will generate code only for defined combination of types. You can use any +will generate code only for defined combination of types. You can use any combination of the following op_types UNUSED, CONST, VAR, TMP and CV also you can use ANY mask to disable specialization according operand's op_type. <HANDLER'S CODE> is a handler's code itself. For most handlers it stills the @@ -34,9 +34,9 @@ EXECUTE_DATA execute_data ZEND_VM_DISPATCH_TO_HANDLER(<OP>) return <OP>_helper(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU) -ZEND_VM_DISPATCH_TO_HELPER(<NAME>) +ZEND_VM_DISPATCH_TO_HELPER(<NAME>) return <NAME>(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU) -ZEND_VM_DISPATCH_TO_HELPER_EX(<NAME>,<PARAM>,<VAL>) +ZEND_VM_DISPATCH_TO_HELPER_EX(<NAME>,<PARAM>,<VAL>) return <NAME>(<VAL>, ZEND_OPCODE_HANDLER_ARGS_PASSTHRU) ZEND_VM_CONTINUE() return 0 @@ -72,7 +72,7 @@ FREE_OP<X>_VAR_PTR() FREE_VAR_PTR(free_op<X>) -Executor's helpers can be defined without parameters or with one parameter. +Executor's helpers can be defined without parameters or with one parameter. This is done with the following constructs: ZEND_VM_HELPER(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>) @@ -86,13 +86,13 @@ ZEND_VM_HELPER_EX(<HELPER-NAME>, <OP1_TYPES>, <OP2_TYPES>, <PARAM_SPEC>) } Executor's code is generated by PHP script zend_vm_gen.php it uses zend_vm_def.h -and zend_vm_execute.skl as input and produces zend_vm_opcodes.h and -zend_vm_execute.h. The first file is a list of opcode definitions. It is +and zend_vm_execute.skl as input and produces zend_vm_opcodes.h and +zend_vm_execute.h. The first file is a list of opcode definitions. It is included from zend_compile.h. The second one is an executor code itself. It is included from zend_execute.c. -zend_vm_gen.php can produce different kind of executors. You can select -different opcode threading model using --with-vm-kind=CALL|SWITCH|GOTO. You can +zend_vm_gen.php can produce different kind of executors. You can select +different opcode threading model using --with-vm-kind=CALL|SWITCH|GOTO. You can disable opcode specialization using --without-specializer. You can include or exclude old executor together with specialized one using --without-old-executor. At last you can debug executor using original zend_vm_def.h or generated file |