summaryrefslogtreecommitdiff
path: root/Zend/zend_vm_gen.php
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2006-05-21 18:00:14 +0000
committerMarcus Boerger <helly@php.net>2006-05-21 18:00:14 +0000
commit1be624e7baf410cf7b99796a943a3f5a0e0d40d1 (patch)
tree00a70077a45f5db5ac6acda8d9a6281367cfcc2e /Zend/zend_vm_gen.php
parent24f3d55f3c9410cc2319d22eacaf842172ce3932 (diff)
downloadphp-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.php21
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");