diff options
author | Marcus Boerger <helly@php.net> | 2006-05-21 18:00:14 +0000 |
---|---|---|
committer | Marcus Boerger <helly@php.net> | 2006-05-21 18:00:14 +0000 |
commit | 1be624e7baf410cf7b99796a943a3f5a0e0d40d1 (patch) | |
tree | 00a70077a45f5db5ac6acda8d9a6281367cfcc2e /Zend/zend_vm_gen.php | |
parent | 24f3d55f3c9410cc2319d22eacaf842172ce3932 (diff) | |
download | php-git-1be624e7baf410cf7b99796a943a3f5a0e0d40d1.tar.gz |
- MFH Sync vm generation with head
- Regenerate vm
Diffstat (limited to 'Zend/zend_vm_gen.php')
-rw-r--r-- | Zend/zend_vm_gen.php | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php index b3134fe0ea..edfb7265b8 100644 --- a/Zend/zend_vm_gen.php +++ b/Zend/zend_vm_gen.php @@ -338,6 +338,7 @@ function gen_code($f, $spec, $kind, $code, $op1, $op2) { "/FREE_OP2_VAR_PTR\(\)/", "/^#ifdef\s+ZEND_VM_SPEC\s*\n/m", "/^#ifndef\s+ZEND_VM_SPEC\s*\n/m", + "/^#ifdef\s+ZEND_OP1_USED\s*\n/m", "/ZEND_VM_C_LABEL\(\s*([A-Za-z_]*)\s*\)/m", "/ZEND_VM_C_GOTO\(\s*([A-Za-z_]*)\s*\)/m", ), @@ -364,6 +365,7 @@ function gen_code($f, $spec, $kind, $code, $op1, $op2) { $op2_free_op_var_ptr[$op2], ($op1!="ANY"||$op2!="ANY")?"#if 1\n":"#if 0\n", ($op1!="ANY"||$op2!="ANY")?"#if 0\n":"#if 1\n", + ($op1!="UNUSED")?"#if 1\n":"#if 0\n", "\\1".(($spec && $kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2]):""), "goto \\1".(($spec && $kind != ZEND_VM_KIND_CALL)?("_SPEC".$prefix[$op1].$prefix[$op2]):""), ), @@ -456,6 +458,9 @@ function gen_code($f, $spec, $kind, $code, $op1, $op2) { /* Remove unnecessary ';' */ $code = preg_replace('/^\s*;\s*$/m', '', $code); + /* Remove WS */ + $code = preg_replace('/[ \t]+\n/m', "\n", $code); + out($f, $code); } @@ -581,7 +586,7 @@ function gen_labels($f, $spec, $kind, $prolog) { // Try to use unspecialized handler $op2 = "ANY"; } - // Check if specialized handler is defined + // Check if specialized handler is defined if (isset($dsc["op1"][$op1]) && isset($dsc["op2"][$op2])) { // Emit pointer to specialized handler @@ -670,7 +675,7 @@ function gen_labels($f, $spec, $kind, $prolog) { function gen_null_handler($f) { static $done = 0; - // New and all executors with CALL threading model can use the same handler + // New and all executors with CALL threading model can use the same handler // for undefined opcodes, do we emit code for it only once if (!$done) { $done = 1; @@ -689,10 +694,10 @@ function gen_executor_code($f, $spec, $kind, $prolog) { if ($spec) { // Produce specialized executor $op1t = $op_types; - // for each op1.op_type + // for each op1.op_type foreach($op1t as $op1) { $op2t = $op_types; - // for each op2.op_type + // for each op2.op_type foreach($op2t as $op2) { // for each handlers in helpers in original order foreach ($list as $lineno => $dsc) { @@ -1068,7 +1073,7 @@ function gen_vm($def, $skel) { $code_len = strlen((string)$max_opcode); $f = fopen("zend_vm_opcodes.h", "w+") or die("ERROR: Cannot create zend_vm_opcodes.h\n"); - // Insert header + // Insert header out($f, $GLOBALS['header_text']); foreach ($opcodes as $code => $dsc) { @@ -1083,7 +1088,7 @@ function gen_vm($def, $skel) { $f = fopen("zend_vm_execute.h", "w+") or die("ERROR: Cannot create zend_vm_execute.h\n"); $executor_file = realpath("zend_vm_execute.h"); - // Insert header + // Insert header out($f, $GLOBALS['header_text']); // Support for ZEND_USER_OPCODE @@ -1158,8 +1163,8 @@ function gen_vm($def, $skel) { out($f, "}\n\n"); // Export handlers and helpers - if (count($export) > 0 && - !ZEND_VM_OLD_EXECUTOR && + if (count($export) > 0 && + !ZEND_VM_OLD_EXECUTOR && ZEND_VM_KIND != ZEND_VM_KIND_CALL) { out($f,"#undef EX\n"); out($f,"#define EX(element) execute_data->element\n\n"); |