403Webshell
Server IP : 104.21.38.3  /  Your IP : 172.69.176.80
Web Server : Apache
System : Linux krdc-ubuntu-s-2vcpu-4gb-amd-blr1-01.localdomain 5.15.0-142-generic #152-Ubuntu SMP Mon May 19 10:54:31 UTC 2025 x86_64
User : www ( 1000)
PHP Version : 7.4.33
Disable Function : passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : ON
Directory :  /www/server/php/80/src/ext/opcache/jit/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /www/server/php/80/src/ext/opcache/jit/zend_jit_x86.c
/*
** This file has been pre-processed with DynASM.
** http://luajit.org/dynasm.html
** DynASM version 1.4.0, DynASM x64 version 1.4.0
** DO NOT EDIT! The original file is in "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc".
*/

#line 1 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
/*
 *  +----------------------------------------------------------------------+
 *  | Zend JIT                                                             |
 *  +----------------------------------------------------------------------+
 *  | Copyright (c) The PHP Group                                          |
 *  +----------------------------------------------------------------------+
 *  | This source file is subject to version 3.01 of the PHP license,      |
 *  | that is bundled with this package in the file LICENSE, and is        |
 *  | available through the world-wide-web at the following url:           |
 *  | http://www.php.net/license/3_01.txt                                  |
 *  | If you did not receive a copy of the PHP license and are unable to   |
 *  | obtain it through the world-wide-web, please send a note to          |
 *  | [email protected] so we can mail you a copy immediately.               |
 *  +----------------------------------------------------------------------+
 *  | Authors: Dmitry Stogov <[email protected]>                              |
 *  |          Xinchen Hui <[email protected]>                              |
 *  +----------------------------------------------------------------------+
 */

//|.if X64
 //|.arch x64
#if DASM_VERSION != 10400
#error "Version mismatch between DynASM and included encoding engine"
#endif
#line 22 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
//|.else
 //|.arch x86
//|.endif

//|.if X64WIN
 //|.define FP,      r14
 //|.define IP,      r15
 //|.define IPl,     r15d
 //|.define RX,      r15       // the same as VM IP reused as a general purpose reg
 //|.define CARG1,   rcx       // x64/POSIX C call arguments.
 //|.define CARG2,   rdx
 //|.define CARG3,   r8
 //|.define CARG4,   r9
 //|.define CARG1d,  ecx
 //|.define CARG2d,  edx
 //|.define CARG3d,  r8d
 //|.define CARG4d,  r9d
 //|.define FCARG1a, CARG1     // Simulate x86 fastcall.
 //|.define FCARG2a, CARG2
 //|.define FCARG1d, CARG1d
 //|.define FCARG2d, CARG2d
 //|.define SPAD,    0x58      // padding for CPU stack alignment
 //|.define NR_SPAD, 0x58      // padding for CPU stack alignment
 //|.define T3,      [r4+0x50] // Used to store old value of IP
 //|.define T2,      [r4+0x48] // Used to store old value of FP
 //|.define T1,      [r4+0x40]
 //|.define A6,      [r4+0x28] // preallocated slot for 6-th argument
 //|.define A5,      [r4+0x20] // preallocated slot for 5-th argument
//|.elif X64
 //|.define FP,      r14
 //|.define IP,      r15
 //|.define IPl,     r15d
 //|.define RX,      r15       // the same as VM IP reused as a general purpose reg
 //|.define CARG1,   rdi       // x64/POSIX C call arguments.
 //|.define CARG2,   rsi
 //|.define CARG3,   rdx
 //|.define CARG4,   rcx
 //|.define CARG5,   r8
 //|.define CARG6,   r9
 //|.define CARG1d,  edi
 //|.define CARG2d,  esi
 //|.define CARG3d,  edx
 //|.define CARG4d,  ecx
 //|.define CARG5d,  r8d
 //|.define CARG6d,  r9d
 //|.define FCARG1a, CARG1     // Simulate x86 fastcall.
 //|.define FCARG2a, CARG2
 //|.define FCARG1d, CARG1d
 //|.define FCARG2d, CARG2d
 //|.define SPAD,    0x18      // padding for CPU stack alignment
 //|.define NR_SPAD, 0x28      // padding for CPU stack alignment
 //|.define T3,      [r4+0x20] // Used to store old value of IP (CALL VM only)
 //|.define T2,      [r4+0x18] // Used to store old value of FP (CALL VM only)
 //|.define T1,      [r4]
//|.else
 //|.define FP,      esi
 //|.define IP,      edi
 //|.define IPl,     edi
 //|.define RX,      edi       // the same as VM IP reused as a general purpose reg
 //|.define FCARG1a, ecx       // x86 fastcall arguments.
 //|.define FCARG2a, edx
 //|.define FCARG1d, ecx
 //|.define FCARG2d, edx
 //|.define SPAD,    0x1c      // padding for CPU stack alignment
 //|.define NR_SPAD, 0x1c      // padding for CPU stack alignment
 //|.define T3,      [r4+0x18] // Used to store old value of IP (CALL VM only)
 //|.define T2,      [r4+0x14] // Used to store old value of FP (CALL VM only)
 //|.define T1,      [r4]
 //|.define A4,      [r4+0xC]  // preallocated slots for arguments of "cdecl" functions (intersect with T1)
 //|.define A3,      [r4+0x8]
 //|.define A2,      [r4+0x4]
 //|.define A1,      [r4]
//|.endif

//|.define HYBRID_SPAD, 16     // padding for stack alignment

#ifdef _WIN64
# define TMP_ZVAL_OFFSET 0x20
#else
# define TMP_ZVAL_OFFSET 0
#endif

#define DASM_ALIGNMENT 16

/* According to x86 and x86_64 ABI, CPU stack has to be 16 byte aligned to
 * guarantee proper alignment of 128-bit SSE data allocated on stack.
 * With broken alignment any execution of SSE code, including calls to
 * memcpy() and others, may lead to crash.
 */

#include "Zend/zend_cpuinfo.h"
#include "jit/zend_jit_x86.h"

#ifdef HAVE_VALGRIND
# include <valgrind/valgrind.h>
#endif

/* The generated code may contain tautological comparisons, ignore them. */
#if defined(__clang__)
# pragma clang diagnostic push
# pragma clang diagnostic ignored "-Wtautological-compare"
# pragma clang diagnostic ignored "-Wstring-compare"
#endif

const char* zend_reg_name[] = {
#if defined(__x86_64__) || defined(_M_X64)
	"rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
	"r8", "r9", "r10", "r11", "r12", "r13", "r14", "r15",
	"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7",
	"xmm8", "xmm9", "xmm10", "xmm11", "xmm12", "xmm13", "xmm14", "xmm15"
#else
	"rax", "rcx", "rdx", "rbx", "rsp", "rbp", "rsi", "rdi",
	"xmm0", "xmm1", "xmm2", "xmm3", "xmm4", "xmm5", "xmm6", "xmm7"
#endif
};

#ifdef HAVE_GCC_GLOBAL_REGS
# define GCC_GLOBAL_REGS 1
#else
# define GCC_GLOBAL_REGS 0
#endif

#if ZTS
static size_t tsrm_ls_cache_tcb_offset = 0;
static size_t tsrm_tls_index;
static size_t tsrm_tls_offset;
#endif

/* By default avoid JITing inline handlers if it does not seem profitable due to lack of
 * type information. Disabling this option allows testing some JIT handlers in the
 * presence of try/catch blocks, which prevent SSA construction. */
#ifndef PROFITABILITY_CHECKS
# define PROFITABILITY_CHECKS 1
#endif

//|.type EX, zend_execute_data, FP
#define Dt1(_V) (int)(ptrdiff_t)&(((zend_execute_data *)0)_V)
#line 158 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
//|.type OP, zend_op
#define Dt2(_V) (int)(ptrdiff_t)&(((zend_op *)0)_V)
#line 159 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
//|.type ZVAL, zval
#define Dt3(_V) (int)(ptrdiff_t)&(((zval *)0)_V)
#line 160 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

//|.actionlist dasm_actions
static const unsigned char dasm_actions[8285] = {
  77,139,190,231,255,248,10,255,77,137,190,231,255,198,4,37,235,0,255,72,184,
  235,235,198,0,0,255,128,60,37,235,0,255,72,184,235,235,128,56,0,255,15,132,
  242,247,255,252,232,241,255,72,199,192,235,255,72,184,235,235,255,252,255,
  208,255,248,1,255,76,137,252,247,255,72,131,60,37,235,0,255,72,184,235,235,
  72,131,56,0,255,76,139,52,37,235,255,72,184,235,235,76,139,48,255,72,131,
  196,16,255,65,252,255,39,255,72,139,135,231,252,255,32,255,72,131,196,24,
  255,76,139,116,36,24,76,139,124,36,32,72,131,196,40,72,199,192,1,0,0,0,195,
  255,248,11,255,252,233,241,255,252,255,224,255,76,139,116,36,24,76,139,124,
  36,32,72,131,196,40,133,192,15,140,242,247,72,199,192,1,0,0,0,248,1,195,255,
  248,12,255,72,139,4,37,235,255,72,184,235,235,72,139,0,255,252,246,128,231,
  233,15,132,242,247,139,128,231,65,199,132,253,6,231,235,248,1,252,233,242,
  11,255,248,13,65,252,246,135,231,233,15,132,242,247,65,139,135,231,65,199,
  132,253,6,231,235,248,1,65,252,246,135,231,233,15,132,242,255,65,139,135,
  231,76,1,252,240,255,64,252,246,128,253,238,11,231,233,15,133,242,247,254,
  1,64,252,246,128,253,238,11,231,233,15,132,242,250,255,72,139,184,253,238,
  3,231,131,47,1,255,15,133,242,249,255,15,133,242,250,255,73,199,134,231,235,
  255,72,184,235,235,73,137,134,231,255,252,233,242,250,255,248,3,255,64,128,
  184,253,238,11,231,233,15,133,242,247,255,72,139,184,253,238,3,231,248,1,
  255,252,247,71,4,235,15,133,242,250,255,252,233,242,250,254,0,248,4,255,248,
  9,65,252,246,135,231,233,15,132,242,255,65,139,135,231,76,1,252,240,255,248,
  9,252,233,242,11,255,248,14,255,76,139,60,37,235,255,72,184,235,235,76,139,
  56,255,248,15,255,252,247,199,235,15,133,242,247,255,76,137,252,246,76,139,
  116,36,24,76,139,124,36,32,72,131,196,40,255,248,16,255,65,128,191,231,233,
  15,132,242,251,255,76,137,60,37,235,255,72,184,235,235,76,137,56,255,248,
  5,255,73,199,199,235,255,73,191,235,235,255,73,191,235,235,77,137,190,231,
  255,76,137,252,255,255,73,139,190,231,255,72,137,60,37,235,255,72,184,235,
  235,72,137,56,255,76,139,116,36,24,76,139,124,36,32,72,131,196,40,72,199,
  192,2,0,0,0,195,255,248,17,77,139,190,231,65,128,191,231,233,15,132,242,247,
  255,248,18,73,139,134,231,139,136,231,65,199,132,253,15,231,235,77,59,190,
  231,15,132,242,247,73,139,142,231,73,137,143,231,77,137,190,231,248,1,73,
  137,199,139,184,231,255,65,128,191,231,233,15,133,242,255,65,139,135,231,
  76,1,252,240,255,248,19,255,252,233,242,20,255,248,20,72,131,252,236,8,73,
  139,134,231,139,136,231,128,184,231,233,65,199,132,253,14,231,235,15,133,
  242,248,72,99,136,231,72,1,200,252,233,242,249,248,2,139,128,231,76,1,252,
  240,248,3,72,199,199,235,255,72,199,198,235,255,72,190,235,235,255,72,139,
  16,255,72,131,196,8,195,255,248,21,255,252,233,242,22,255,248,22,72,131,252,
  236,8,73,139,134,231,139,136,231,128,184,231,233,65,199,132,253,14,231,235,
  15,133,242,248,72,99,136,231,72,1,200,252,233,242,249,248,2,139,128,231,76,
  1,252,240,248,3,72,199,199,235,255,72,139,16,72,129,194,237,255,248,23,255,
  252,233,242,24,255,248,24,72,131,252,236,8,73,139,134,231,128,184,231,233,
  15,132,242,247,139,128,231,65,199,132,253,6,231,235,248,1,72,49,252,255,255,
  248,25,73,139,134,231,72,49,252,255,255,72,99,144,231,72,139,20,16,72,129,
  194,237,255,248,26,77,139,190,231,255,72,191,235,235,255,252,233,242,13,255,
  248,27,77,139,190,231,255,248,28,73,139,134,231,139,128,231,65,199,132,253,
  6,231,235,72,49,252,255,255,248,29,0,0,0,0,0,0,252,240,63,255,248,30,255,
  248,31,255,72,252,255,0,73,139,134,231,73,139,150,231,72,139,128,231,72,252,
  255,130,231,252,255,160,231,255,248,32,102,199,2,234,76,137,252,247,255,76,
  137,252,254,255,73,139,182,231,255,73,139,134,231,72,139,136,231,72,139,145,
  231,102,129,42,236,15,142,242,32,255,76,137,252,250,255,73,139,150,231,255,
  72,43,144,231,255,72,193,252,250,2,252,255,164,253,17,231,255,248,33,255,
  248,34,255,248,35,102,199,2,234,76,137,252,247,255,133,192,15,140,242,247,
  255,73,139,134,231,72,139,136,231,72,139,137,231,73,139,148,253,15,231,102,
  129,42,236,15,142,242,35,65,252,255,36,15,255,248,36,255,248,37,255,248,38,
  255,248,39,255,72,131,196,24,77,49,252,255,195,255,76,139,116,36,24,76,139,
  124,36,32,72,131,196,40,72,199,192,252,255,252,255,252,255,252,255,195,255,
  248,40,72,129,252,236,237,76,137,188,253,36,231,76,137,156,253,36,231,76,
  137,148,253,36,231,76,137,140,253,36,231,76,137,132,253,36,231,72,137,188,
  253,36,231,72,137,180,253,36,231,72,137,148,253,36,231,72,137,140,253,36,
  231,72,137,132,253,36,231,72,139,188,253,36,231,72,137,230,252,242,68,15,
  17,188,253,36,231,252,242,68,15,17,180,253,36,231,252,242,68,15,17,172,253,
  36,231,252,242,68,15,17,164,253,36,231,252,242,68,15,17,156,253,36,231,252,
  242,68,15,17,148,253,36,231,255,252,242,68,15,17,140,253,36,231,252,242,68,
  15,17,132,253,36,231,252,242,15,17,188,253,36,231,252,242,15,17,180,253,36,
  231,252,242,15,17,172,253,36,231,252,242,15,17,164,253,36,231,252,242,15,
  17,156,253,36,231,252,242,15,17,148,253,36,231,252,242,15,17,140,253,36,231,
  252,242,15,17,132,253,36,231,255,72,129,196,237,255,133,192,15,133,242,247,
  255,248,1,15,140,242,39,255,15,133,242,10,255,73,139,134,231,72,139,128,231,
  72,139,128,231,65,252,255,36,7,255,72,131,196,24,73,139,134,231,72,139,128,
  231,72,139,128,231,65,252,255,36,7,255,77,139,190,231,76,137,252,247,73,139,
  134,231,72,139,128,231,72,139,128,231,65,252,255,20,7,133,192,15,140,242,
  39,76,139,116,36,24,76,139,124,36,32,72,131,196,40,72,199,192,1,0,0,0,195,
  255,248,41,255,106,233,252,235,233,255,106,233,72,129,4,253,36,237,252,233,
  242,40,255,248,42,88,255,72,131,196,24,65,252,255,39,255,76,137,252,247,73,
  139,6,76,139,116,36,24,76,139,124,36,32,72,131,196,40,252,255,32,255,248,
  43,72,131,252,236,8,255,248,44,72,131,252,236,8,255,248,45,72,131,252,236,
  8,255,248,46,72,131,252,236,8,255,248,47,72,131,252,236,8,255,204,255,250,
  15,255,72,131,252,236,16,255,72,131,252,236,24,255,72,131,252,236,40,76,137,
  116,36,24,76,137,124,36,32,73,137,252,254,255,73,199,135,231,0,0,0,0,255,
  73,139,134,231,73,137,135,231,255,73,129,199,237,255,73,129,134,231,237,255,
  15,133,241,255,252,233,242,10,254,0,15,132,243,252,233,241,255,252,233,243,
  255,15,133,242,11,255,15,133,242,12,255,80,255,199,4,37,235,235,255,72,184,
  235,235,199,0,235,255,72,184,238,34,235,235,64,199,128,253,238,11,231,235,
  255,15,132,241,252,233,241,255,252,233,242,41,255,76,137,252,247,73,139,134,
  231,72,139,128,231,72,139,128,231,65,252,255,20,7,255,72,199,192,2,0,0,0,
  255,65,128,190,231,233,15,133,241,255,72,49,192,238,131,238,35,255,72,184,
  238,34,235,235,255,72,199,192,238,35,235,255,72,139,128,253,238,131,238,3,
  231,255,72,137,192,238,131,238,35,255,252,247,135,231,235,15,132,241,255,
  252,247,135,231,235,15,133,241,255,72,185,235,235,72,131,57,0,255,72,185,
  235,235,76,139,49,255,73,129,252,255,237,15,132,242,39,255,77,133,252,255,
  15,132,242,39,255,133,192,15,140,242,39,255,252,233,242,39,255,65,129,252,
  255,237,255,65,129,190,231,237,255,76,137,252,247,76,139,116,36,24,76,139,
  124,36,32,72,131,196,40,255,15,133,243,255,252,232,242,42,255,15,132,243,
  252,232,242,42,255,72,137,128,253,238,131,238,3,231,255,196,225,120,40,192,
  238,133,238,45,255,64,15,40,192,238,132,238,52,255,196,225,252,251,17,128,
  253,238,133,238,5,231,255,252,242,64,15,17,128,253,238,132,238,20,231,255,
  197,252,251,16,4,238,132,37,235,255,252,242,64,15,16,4,238,140,37,235,255,
  197,252,251,16,0,238,132,255,252,242,64,15,16,0,238,140,255,196,225,123,16,
  128,253,238,133,238,13,231,255,252,242,64,15,16,128,253,238,132,238,20,231,
  255,64,252,246,128,253,238,11,231,233,15,132,242,248,255,72,139,128,253,238,
  3,231,131,0,1,248,2,255,252,233,242,41,248,1,255,72,199,192,238,35,0,0,0,
  0,255,72,199,128,253,238,3,231,0,0,0,0,255,64,199,128,253,238,11,231,0,0,
  224,195,255,64,199,128,253,238,11,231,0,0,0,128,255,72,199,192,238,35,252,
  255,252,255,252,255,252,255,255,72,199,128,253,238,3,231,252,255,252,255,
  252,255,252,255,255,64,199,128,253,238,11,231,252,255,252,255,252,255,127,
  255,64,199,128,253,238,11,231,0,0,224,67,255,64,252,246,128,253,238,11,231,
  233,15,132,242,247,255,72,139,136,253,238,3,231,131,1,1,248,1,255,64,139,
  128,253,238,131,238,19,231,255,64,137,128,253,238,131,238,19,231,255,132,
  252,237,15,132,242,247,255,131,2,1,248,1,255,252,247,128,231,235,15,132,242,
  247,72,137,199,255,64,128,184,253,238,11,231,233,15,133,242,248,255,72,129,
  128,253,238,3,231,237,255,72,129,192,238,35,237,255,72,129,168,253,238,3,
  231,237,255,72,129,252,232,238,35,237,255,15,128,241,255,15,128,242,247,255,
  72,137,192,238,35,255,72,137,128,253,238,3,231,255,252,233,242,249,254,0,
  64,128,184,253,238,11,231,233,15,133,242,248,191,235,255,72,141,184,253,238,
  3,231,255,72,137,199,238,131,255,128,191,231,233,15,133,242,248,72,139,63,
  72,131,191,231,0,15,132,242,247,255,72,141,176,253,238,3,231,255,72,137,198,
  238,131,255,72,49,252,246,255,252,233,242,249,248,1,72,141,191,231,248,2,
  255,132,228,15,132,242,247,255,197,252,251,238,160,88,5,238,132,242,29,255,
  252,242,64,15,88,5,238,140,242,29,255,197,252,251,238,160,92,5,238,132,242,
  29,255,252,242,64,15,92,5,238,140,242,29,255,72,141,132,253,238,131,0,238,
  68,238,36,231,255,72,1,192,238,131,238,35,255,72,193,224,238,35,233,255,72,
  193,252,232,238,35,233,255,72,141,128,253,238,131,238,3,231,255,72,41,192,
  238,131,238,35,255,72,15,175,192,238,132,238,36,255,72,9,192,238,131,238,
  35,255,72,33,192,238,131,238,35,255,72,184,238,34,235,235,72,1,192,238,131,
  238,35,255,72,3,128,253,238,131,238,3,231,255,72,184,238,34,235,235,72,41,
  192,238,131,238,35,255,72,43,128,253,238,131,238,3,231,255,72,184,238,34,
  235,235,72,15,175,192,238,132,238,36,255,72,105,192,238,131,238,35,237,255,
  72,15,175,128,253,238,132,238,4,231,255,72,184,238,34,235,235,72,9,192,238,
  131,238,35,255,72,129,200,238,35,237,255,72,11,128,253,238,131,238,3,231,
  255,72,184,238,34,235,235,72,33,192,238,131,238,35,255,72,129,224,238,35,
  237,255,72,35,128,253,238,131,238,3,231,255,72,184,238,34,235,235,72,49,192,
  238,131,238,35,255,72,129,252,240,238,35,237,255,72,51,128,253,238,131,238,
  3,231,255,15,129,241,255,15,129,242,247,255,102,72,15,110,192,238,132,238,
  36,255,196,225,120,238,160,87,192,238,133,238,45,255,64,15,87,192,238,132,
  238,52,255,196,225,120,238,160,87,192,238,133,238,45,196,225,252,251,238,
  160,42,192,238,133,238,37,255,64,15,87,192,238,132,238,52,252,242,72,15,42,
  192,238,132,238,36,255,196,225,120,238,160,87,192,238,133,238,45,196,225,
  252,251,238,160,42,128,253,238,133,238,5,231,255,64,15,87,192,238,132,238,
  52,252,242,72,15,42,128,253,238,132,238,4,231,255,196,225,123,238,160,88,
  192,238,133,238,45,255,196,225,123,238,160,92,192,238,133,238,45,255,196,
  225,123,238,160,89,192,238,133,238,45,255,196,225,123,238,160,94,192,238,
  133,238,45,255,252,242,64,15,88,192,238,132,238,52,255,252,242,64,15,92,192,
  238,132,238,52,255,252,242,64,15,89,192,238,132,238,52,255,252,242,64,15,
  94,192,238,132,238,52,255,252,233,242,248,254,0,197,252,251,238,160,88,4,
  238,132,37,235,255,72,185,235,235,197,252,251,238,160,88,1,238,132,255,196,
  225,123,238,160,88,128,253,238,133,238,13,231,255,197,252,251,238,160,92,
  4,238,132,37,235,255,72,185,235,235,197,252,251,238,160,92,1,238,132,255,
  196,225,123,238,160,92,128,253,238,133,238,13,231,255,197,252,251,238,160,
  89,4,238,132,37,235,255,72,185,235,235,197,252,251,238,160,89,1,238,132,255,
  196,225,123,238,160,89,128,253,238,133,238,13,231,255,197,252,251,238,160,
  94,4,238,132,37,235,255,72,185,235,235,197,252,251,238,160,94,1,238,132,255,
  196,225,123,238,160,94,128,253,238,133,238,13,231,255,252,242,64,15,88,4,
  238,140,37,235,255,72,185,235,235,252,242,64,15,88,1,238,140,255,252,242,
  64,15,88,128,253,238,132,238,20,231,255,252,242,64,15,92,4,238,140,37,235,
  255,72,185,235,235,252,242,64,15,92,1,238,140,255,252,242,64,15,92,128,253,
  238,132,238,20,231,255,252,242,64,15,89,4,238,140,37,235,255,72,185,235,235,
  252,242,64,15,89,1,238,140,255,252,242,64,15,89,128,253,238,132,238,20,231,
  255,252,242,64,15,94,4,238,140,37,235,255,72,185,235,235,252,242,64,15,94,
  1,238,140,255,252,242,64,15,94,128,253,238,132,238,20,231,255,72,184,235,
  235,197,252,251,238,160,88,0,238,132,255,72,184,235,235,197,252,251,238,160,
  92,0,238,132,255,72,184,235,235,197,252,251,238,160,89,0,238,132,255,72,184,
  235,235,197,252,251,238,160,94,0,238,132,255,72,184,235,235,252,242,64,15,
  88,0,238,140,255,72,184,235,235,252,242,64,15,92,0,238,140,255,72,184,235,
  235,252,242,64,15,89,0,238,140,255,72,184,235,235,252,242,64,15,94,0,238,
  140,255,64,128,184,253,238,11,231,233,15,133,242,249,255,64,128,184,253,238,
  11,231,233,15,133,242,252,255,64,128,184,253,238,11,231,233,15,133,242,247,
  254,1,252,233,242,251,254,0,252,233,242,251,255,248,6,255,72,199,194,235,
  255,72,186,235,235,255,72,141,144,253,238,3,231,255,72,137,194,238,131,255,
  15,133,242,14,255,252,233,242,5,254,0,252,233,242,26,255,72,129,252,249,237,
  15,131,242,247,254,1,248,1,72,131,252,249,0,72,199,192,238,35,0,0,0,0,15,
  143,242,247,255,252,233,242,26,254,0,72,211,224,238,35,248,1,255,72,193,252,
  248,238,35,233,255,248,1,72,131,252,249,0,72,199,193,235,15,143,242,247,255,
  248,1,72,211,252,248,238,35,255,252,233,242,27,255,72,137,4,36,255,72,137,
  4,238,131,36,255,72,153,72,252,247,252,248,238,35,255,72,139,4,36,255,72,
  139,4,238,131,36,255,72,131,184,253,238,3,231,0,255,72,133,192,238,131,238,
  35,255,15,132,242,247,254,1,252,233,242,27,254,0,72,131,184,253,238,3,231,
  252,255,255,72,131,252,248,238,35,252,255,255,72,153,255,72,252,247,184,253,
  238,3,231,255,252,247,135,231,235,15,132,242,250,255,139,135,231,255,72,133,
  192,255,72,129,252,248,237,255,72,57,252,240,255,15,134,241,255,15,134,242,
  255,255,15,134,242,253,255,15,134,242,248,255,72,139,135,231,255,72,129,192,
  237,255,72,137,252,240,72,193,224,5,72,3,135,231,255,15,132,242,255,255,252,
  233,242,255,255,128,184,231,233,15,133,242,254,255,128,184,231,233,15,132,
  241,255,128,184,231,233,15,132,242,253,255,128,184,231,233,15,132,242,248,
  255,252,233,242,253,255,252,233,242,248,255,252,232,242,19,255,252,232,242,
  20,255,64,199,128,253,238,11,231,235,252,233,242,255,255,248,2,248,4,255,
  72,133,192,15,132,242,255,255,252,233,242,254,255,128,190,231,233,15,142,
  242,247,254,1,252,233,242,247,254,0,128,184,231,233,15,133,242,247,72,139,
  0,248,1,255,128,184,231,233,15,132,242,247,254,1,248,1,72,139,0,128,184,231,
  233,15,133,242,254,255,252,232,242,21,255,252,232,242,22,255,128,184,231,
  233,15,133,242,247,72,139,0,72,129,192,237,248,1,255,128,184,231,233,255,
  15,142,241,255,15,143,241,255,15,142,242,255,255,15,133,242,254,252,233,242,
  255,255,72,133,192,15,133,242,254,252,233,242,255,255,72,199,128,253,238,
  3,231,235,255,72,184,238,34,235,235,64,131,128,253,238,11,231,1,255,131,4,
  37,235,1,255,72,184,238,34,235,235,64,131,128,253,238,11,231,2,255,131,4,
  37,235,2,255,64,128,184,253,238,11,231,233,15,132,242,247,254,1,72,137,60,
  36,255,72,184,238,34,235,235,73,137,134,253,238,131,231,255,72,133,192,15,
  132,242,12,255,72,139,60,36,255,252,233,242,249,255,128,186,231,233,15,133,
  242,247,72,139,18,72,129,194,237,248,1,255,72,139,144,253,238,3,231,131,42,
  1,255,132,228,15,132,242,249,255,64,252,247,192,238,43,235,15,132,242,249,
  255,252,233,242,249,248,2,255,132,228,15,132,242,248,255,64,252,247,192,238,
  43,235,15,132,242,248,255,72,139,128,253,238,131,238,3,231,64,131,128,253,
  238,11,231,1,248,2,255,72,137,215,255,72,49,252,246,49,210,72,49,201,77,49,
  192,255,132,252,246,15,132,242,247,255,64,131,128,253,238,11,231,1,248,1,
  255,64,131,128,253,238,11,231,2,248,1,255,72,131,191,231,0,15,133,242,248,
  254,1,15,132,242,254,252,233,242,11,255,64,128,184,253,238,11,231,233,15,
  132,241,255,252,232,242,43,252,233,242,255,254,0,252,232,242,44,255,252,232,
  242,43,255,252,232,242,45,255,252,232,242,46,255,252,232,242,47,255,248,9,
  255,64,128,184,253,238,11,231,233,15,133,242,249,72,139,184,253,238,3,231,
  255,72,141,135,253,238,131,231,248,3,255,248,4,252,247,71,4,235,15,133,242,
  254,255,64,252,246,128,253,238,11,231,233,15,132,242,251,255,72,139,184,253,
  238,3,231,131,47,1,252,247,71,4,235,15,133,242,251,255,72,139,128,253,238,
  131,238,3,231,64,131,168,253,238,11,231,1,255,248,8,255,128,191,231,233,15,
  133,242,247,72,139,55,128,190,231,233,15,133,242,248,72,141,190,231,252,233,
  242,249,254,1,72,133,192,72,137,199,15,133,242,247,252,233,242,12,254,0,64,
  128,184,253,238,11,231,233,15,133,242,253,255,131,56,1,15,134,242,248,255,
  248,2,72,137,199,255,131,63,1,255,15,135,242,247,254,1,64,252,246,128,253,
  238,11,231,233,15,132,242,247,131,47,1,248,1,255,64,199,128,253,238,11,231,
  235,72,137,199,255,64,128,184,253,238,11,231,233,15,143,242,253,255,72,133,
  192,15,132,242,247,254,1,252,232,242,23,255,252,232,242,24,255,248,7,255,
  64,128,184,253,238,11,231,233,15,143,242,248,255,64,199,128,253,238,11,231,
  235,72,137,199,252,233,242,6,248,2,255,72,49,201,255,72,199,193,235,255,72,
  185,235,235,255,72,141,136,253,238,3,231,255,72,137,193,238,131,255,128,184,
  231,233,15,133,242,247,72,139,56,72,131,191,231,0,15,133,242,248,72,141,135,
  231,254,1,128,191,231,233,15,133,242,247,72,139,63,72,131,191,231,0,15,133,
  242,248,72,129,199,237,254,1,72,184,235,235,72,57,192,238,35,255,72,129,252,
  248,238,35,237,255,72,59,128,253,238,131,238,3,231,255,72,57,192,238,131,
  238,35,255,72,184,235,235,72,57,128,253,238,3,231,255,72,129,184,253,238,
  3,231,237,255,15,148,208,255,15,149,208,255,15,159,208,255,15,156,208,255,
  15,157,208,255,15,158,208,255,15,182,192,141,128,231,255,64,137,128,253,238,
  11,231,255,15,132,243,255,15,142,243,255,15,141,241,255,15,141,243,255,15,
  140,241,255,15,140,243,255,15,143,243,255,15,182,192,131,192,2,255,15,133,
  241,15,138,241,255,15,133,243,15,138,243,255,15,138,242,247,255,15,138,242,
  247,15,132,243,248,1,255,15,134,243,255,15,131,241,15,138,241,255,15,131,
  243,15,138,243,255,15,130,241,255,15,130,243,255,15,135,241,15,138,241,255,
  15,135,243,15,138,243,255,15,138,242,247,15,132,241,248,1,255,15,135,241,
  255,15,135,243,255,15,131,241,255,15,131,243,255,15,138,243,15,132,243,255,
  64,199,128,253,238,11,231,235,15,133,243,15,138,243,255,64,199,128,253,238,
  11,231,235,15,132,243,248,1,255,64,199,128,253,238,11,231,235,15,134,243,
  255,64,199,128,253,238,11,231,235,15,131,243,15,138,243,255,64,199,128,253,
  238,11,231,235,15,130,243,255,64,199,128,253,238,11,231,235,15,135,243,15,
  138,243,255,15,151,208,15,182,192,141,128,231,255,64,137,128,253,238,11,231,
  15,135,243,255,64,199,128,253,238,11,231,235,15,130,243,248,1,255,15,147,
  208,15,182,192,141,128,231,255,64,137,128,253,238,11,231,15,131,243,255,64,
  199,128,253,238,11,231,235,15,134,243,248,1,255,15,138,242,247,184,235,15,
  132,242,248,248,1,184,235,248,2,255,15,151,208,15,182,192,131,192,2,255,15,
  138,242,247,184,235,15,130,242,248,248,1,184,235,248,2,255,15,147,208,15,
  182,192,131,192,2,255,15,138,242,247,184,235,15,134,242,248,248,1,184,235,
  248,2,255,197,252,249,46,4,238,132,37,235,255,102,64,15,46,4,238,140,37,235,
  255,197,252,249,46,0,238,132,255,102,64,15,46,0,238,140,255,196,225,121,46,
  128,253,238,133,238,13,231,255,102,64,15,46,128,253,238,132,238,20,231,255,
  196,225,121,46,192,238,133,238,45,255,102,64,15,46,192,238,132,238,52,255,
  64,128,184,253,238,11,231,233,15,133,242,250,255,64,128,184,253,238,11,231,
  233,15,133,242,255,255,64,128,184,253,238,11,231,233,15,133,242,249,254,1,
  252,233,242,252,254,0,64,128,184,253,238,11,231,233,15,133,242,251,255,252,
  233,242,252,255,128,190,231,233,15,133,242,247,72,199,199,235,255,64,128,
  184,253,238,11,231,233,15,133,242,247,72,137,52,36,72,199,199,235,255,72,
  139,52,36,255,252,233,242,248,248,1,255,128,191,231,233,15,132,242,247,254,
  1,128,190,231,233,15,132,242,247,254,1,72,137,60,36,191,235,255,128,191,231,
  233,15,133,242,247,72,139,63,72,129,199,237,248,1,255,128,190,231,233,15,
  133,242,247,72,139,54,72,129,198,237,248,1,255,128,190,231,233,255,128,191,
  231,233,255,132,192,255,15,182,192,255,252,247,216,141,128,231,255,64,128,
  184,253,238,11,231,233,255,15,140,242,255,255,15,148,208,15,182,192,255,252,
  247,216,131,192,3,255,64,137,128,253,238,11,231,15,132,242,247,255,64,128,
  184,253,238,11,231,233,15,132,242,247,255,15,149,208,15,182,192,255,197,252,
  248,87,192,255,15,87,192,255,64,199,128,253,238,11,231,235,15,138,241,15,
  133,241,255,64,199,128,253,238,11,231,235,15,132,241,248,1,255,64,199,128,
  253,238,11,231,235,15,138,243,15,133,243,255,184,235,15,138,242,247,15,133,
  242,247,184,235,248,1,255,15,138,241,15,133,241,248,1,255,64,252,246,128,
  253,238,11,231,233,15,132,242,249,255,72,139,184,253,238,3,231,131,47,1,15,
  133,242,249,72,137,4,36,255,72,139,4,36,248,3,255,72,139,12,37,235,255,72,
  184,235,235,72,139,8,255,72,43,12,37,235,255,72,184,235,235,72,43,8,255,72,
  129,252,249,237,15,130,241,255,252,246,128,231,1,72,199,199,235,15,133,242,
  247,255,186,235,255,59,144,231,15,71,144,231,43,144,231,43,144,231,255,193,
  226,4,72,99,210,72,41,215,248,1,255,73,191,235,235,77,139,63,255,72,139,20,
  37,235,255,72,186,235,235,72,139,18,255,76,41,252,250,255,72,129,252,250,
  237,255,72,57,252,250,255,15,130,242,247,254,1,72,137,198,255,72,141,176,
  231,255,73,137,199,252,233,242,247,254,0,72,129,4,253,37,235,237,255,72,186,
  235,235,72,129,2,237,255,72,1,60,37,235,255,72,186,235,235,72,1,58,255,65,
  199,135,231,235,255,73,199,135,231,235,255,72,185,235,235,73,137,143,231,
  255,72,141,136,231,73,137,143,231,255,72,139,12,36,73,137,143,231,255,65,
  129,143,231,237,255,131,1,1,255,131,0,1,255,72,139,136,231,73,137,143,231,
  139,144,231,129,226,237,129,202,237,128,184,231,233,15,132,242,247,129,202,
  237,72,139,136,231,248,1,65,9,151,231,73,137,143,231,72,131,184,231,0,15,
  133,242,247,72,141,184,231,255,73,139,142,231,255,72,139,137,231,255,72,186,
  235,235,72,57,145,231,255,72,129,185,231,237,255,73,139,134,231,255,73,139,
  134,231,72,139,128,231,72,133,192,15,132,242,247,254,1,73,139,142,231,72,
  137,129,231,252,233,242,249,255,73,139,142,231,72,137,129,231,255,72,133,
  192,15,133,242,249,255,72,185,235,235,72,57,136,231,255,72,129,184,231,237,
  255,72,185,235,235,72,57,200,255,252,233,242,25,255,64,128,184,253,238,11,
  231,233,15,133,241,255,252,233,242,11,254,0,73,139,134,231,72,139,128,231,
  72,133,192,15,132,242,247,255,73,139,134,231,72,139,144,231,72,59,151,231,
  15,133,242,247,72,139,128,231,255,72,141,20,36,255,72,133,192,15,133,242,
  248,252,233,242,11,254,0,252,247,128,231,235,15,133,242,247,254,1,72,139,
  60,36,72,137,198,186,235,255,72,133,192,15,132,242,11,255,73,137,199,255,
  72,139,128,253,238,3,231,255,72,191,235,235,72,57,184,231,255,73,139,135,
  231,252,247,128,231,235,15,133,241,255,73,199,134,231,0,0,0,0,255,73,139,
  135,231,73,137,134,231,255,77,137,183,231,255,73,139,135,231,255,132,192,
  73,139,135,231,15,133,242,247,252,233,242,11,254,0,132,192,15,132,242,11,
  255,73,137,151,231,255,73,139,150,231,73,137,151,231,255,72,139,144,231,255,
  72,3,20,37,235,255,72,185,235,235,72,3,17,255,72,252,247,194,1,0,0,0,15,132,
  242,247,255,248,1,72,139,18,255,72,185,235,235,76,137,57,255,77,137,252,254,
  255,76,139,184,231,255,72,139,184,231,255,72,129,199,237,255,73,137,190,231,
  255,252,232,242,247,254,1,248,1,88,252,233,243,254,0,72,139,184,231,73,137,
  190,231,255,65,139,142,231,129,252,249,237,255,139,144,231,65,139,142,231,
  57,209,255,15,143,242,247,254,1,65,139,142,231,252,233,242,247,254,0,252,
  247,128,231,235,15,133,242,247,255,137,202,72,193,226,5,255,73,1,215,255,
  73,1,150,231,255,41,202,15,142,242,249,255,72,193,225,4,73,141,140,253,14,
  231,248,2,199,129,231,235,131,252,234,1,72,141,137,231,15,133,242,2,248,3,
  255,132,192,15,132,242,11,73,139,135,231,255,252,255,144,231,255,76,137,52,
  37,235,255,72,184,235,235,76,137,48,255,65,252,246,135,231,233,15,133,242,
  247,254,1,248,1,73,139,191,231,255,248,1,73,139,191,231,64,131,168,253,238,
  11,231,1,15,133,242,247,255,252,233,242,248,248,1,64,252,247,64,238,11,4,
  235,15,133,242,247,255,248,1,252,233,242,248,254,0,248,1,76,137,252,255,255,
  15,133,242,17,255,73,139,135,231,252,247,128,231,235,15,133,242,247,254,1,
  252,233,242,18,254,0,72,184,235,235,131,0,1,255,73,139,190,231,252,246,135,
  231,233,15,133,242,247,254,1,72,133,192,15,133,242,11,252,233,242,248,254,
  0,72,141,128,253,238,3,231,255,72,137,192,238,131,255,64,199,128,253,238,
  11,231,235,252,233,242,248,248,1,255,72,139,136,253,238,3,231,131,1,1,255,
  72,137,136,253,238,3,231,255,64,199,128,253,238,11,231,235,252,233,242,252,
  255,186,235,72,49,201,77,49,192,255,199,0,2,0,0,0,199,128,231,235,72,199,
  128,231,0,0,0,0,255,72,139,12,36,255,252,233,242,253,254,0,128,252,249,233,
  15,133,241,255,128,252,249,233,15,132,242,253,255,252,247,128,231,235,15,
  133,242,253,255,65,252,247,135,231,235,15,133,242,247,254,1,64,199,128,253,
  238,11,231,235,72,133,192,15,132,242,11,255,131,47,1,15,132,242,247,132,228,
  15,132,242,248,131,2,1,252,233,242,248,248,1,255,73,139,134,231,129,136,231,
  237,255,65,129,167,231,237,255,73,139,134,231,129,160,231,237,255,248,1,65,
  129,143,231,237,252,233,242,247,254,0,65,129,167,231,237,248,1,255,73,139,
  134,231,72,139,128,231,72,133,192,15,132,242,247,72,169,1,0,0,0,15,133,242,
  250,254,1,72,139,60,37,235,255,72,191,235,235,72,139,63,255,72,209,252,232,
  57,135,231,255,15,133,242,247,248,2,255,64,199,128,253,238,11,231,235,252,
  233,242,249,255,138,128,231,255,65,138,134,231,255,136,4,36,255,138,12,36,
  252,233,242,248,255,138,136,231,255,65,138,142,231,255,184,1,0,0,0,211,224,
  169,235,255,15,132,243,252,233,243,255,15,149,208,15,182,192,131,192,2,255,
  248,2,128,252,249,233,255,65,128,190,231,233,255,15,133,243,252,233,243,255,
  15,148,208,15,182,192,131,192,2,255,72,137,4,37,235,255,72,186,235,235,72,
  137,2,255,65,139,190,231,255,252,247,199,235,255,76,137,252,246,255,252,233,
  242,254,254,0,15,133,242,15,255,73,139,190,231,72,129,252,239,237,64,131,
  168,253,238,11,231,1,15,133,242,247,255,252,233,242,250,248,1,64,252,247,
  64,238,11,4,235,15,133,242,247,255,248,1,248,4,255,252,247,199,235,15,132,
  242,250,73,139,190,231,64,131,168,253,238,11,231,1,15,133,242,247,255,77,
  139,182,231,255,15,133,242,16,255,15,133,242,41,255,65,252,255,55,195,255,
  76,137,252,247,73,139,6,76,139,116,36,24,76,139,124,36,32,72,131,196,40,252,
  255,48,195,255,72,133,210,255,72,133,201,255,64,252,246,128,253,238,11,231,
  233,15,132,243,255,64,252,246,128,253,238,11,231,233,15,132,242,255,255,131,
  40,1,15,132,242,248,255,132,252,246,15,132,243,255,132,252,246,15,132,242,
  255,255,72,139,144,253,238,3,231,131,2,1,255,72,139,136,253,238,3,231,132,
  252,246,15,132,242,248,128,252,250,233,15,133,242,247,139,145,231,72,139,
  137,231,132,252,246,15,132,242,248,248,1,131,1,1,248,2,255,64,137,144,253,
  238,11,231,255,64,128,184,253,238,11,231,233,15,133,242,247,191,235,255,64,
  139,144,253,238,11,231,128,252,250,233,15,133,241,255,64,199,128,253,238,
  11,231,235,252,233,242,254,254,0,64,199,128,253,238,11,231,235,252,233,242,
  254,255,73,139,134,231,72,139,128,231,72,131,252,232,1,255,72,185,235,235,
  139,9,255,72,193,225,5,72,57,200,15,131,242,255,255,72,3,4,37,235,255,72,
  185,235,235,72,3,1,255,128,184,231,233,15,133,242,255,255,15,133,242,255,
  72,139,0,131,0,1,248,1,255,64,252,246,128,253,238,11,231,233,15,133,242,248,
  254,1,64,199,128,253,238,11,231,235,131,47,1,255,248,3,252,247,71,4,235,15,
  133,242,251,255,252,255,209,255,72,129,198,237,255,252,233,242,1,254,0,64,
  128,184,253,238,11,231,233,15,133,242,247,72,139,128,253,238,131,238,3,231,
  72,129,192,238,35,237,248,1,255,186,1,0,0,0,64,138,136,253,238,11,231,211,
  226,252,247,194,235,15,132,242,247,255,65,129,190,231,237,15,131,242,251,
  255,73,139,134,231,72,139,176,231,255,132,192,15,133,242,247,254,1,64,199,
  128,253,238,11,231,235,252,233,242,11,254,0,72,184,235,235,72,57,135,231,
  255,72,129,191,231,237,255,128,191,231,233,15,133,242,247,72,139,63,248,1,
  255,73,139,134,231,72,139,144,231,72,59,151,231,15,133,242,251,72,139,128,
  231,255,15,140,242,251,255,15,140,242,254,255,139,148,253,7,231,132,210,15,
  132,242,251,72,1,199,255,73,139,134,231,72,139,176,231,72,133,252,246,15,
  133,242,247,254,1,139,151,231,255,132,210,15,132,241,255,132,210,15,132,242,
  251,255,128,252,250,233,15,142,242,247,254,1,128,252,250,233,15,132,242,247,
  255,72,139,135,231,72,139,128,231,72,139,176,231,255,252,233,242,255,248,
  1,255,72,137,184,253,238,3,231,255,128,252,250,233,15,133,242,247,72,139,
  0,72,129,192,237,255,64,139,144,253,238,11,231,248,1,128,252,250,233,15,133,
  241,255,248,8,72,137,198,255,72,139,184,253,238,3,231,131,47,1,15,133,242,
  247,255,73,139,134,231,72,139,144,231,72,59,151,231,15,133,242,253,255,72,
  131,184,231,0,15,133,242,253,255,72,139,128,231,72,133,192,15,140,242,253,
  128,188,253,7,231,233,15,132,242,253,72,1,199,255,128,191,231,233,15,132,
  241,255,128,191,231,233,15,132,242,253,255,72,139,184,253,238,3,231,72,131,
  191,231,0,15,133,242,247,72,141,191,231,254,1,15,128,242,249,255,73,139,150,
  231,72,129,194,237,255,72,139,184,253,238,3,231,72,131,191,231,0,15,133,242,
  247,72,141,135,231,254,1,73,139,142,231,72,129,193,237,255,73,199,192,235,
  255,73,184,235,235,255,73,139,134,231,72,139,144,231,72,59,151,231,15,133,
  242,251,255,72,139,128,231,72,133,192,15,140,242,251,128,188,253,7,231,233,
  15,132,242,251,72,1,199,255,76,141,128,253,238,3,231,255,73,137,192,238,131,
  255,64,128,184,253,238,11,231,233,15,132,242,253,255,65,139,190,231,131,252,
  255,252,255,15,132,242,253,255,72,139,128,253,238,3,231,72,141,184,231,72,
  139,176,231,255,72,139,128,253,238,3,231,72,139,128,231,255,64,199,128,253,
  238,11,231,235,131,7,1,255,65,128,190,231,233,15,133,242,247,254,1,252,233,
  242,28,254,0,72,43,135,231,72,199,199,235,72,153,72,252,247,252,255,255,72,
  141,61,242,250,252,255,36,7,255,252,255,160,244,250,255,254,2,250,7,248,4,
  255,245,249,255,72,139,176,253,238,3,231,255,128,190,231,233,15,133,242,249,
  255,72,139,182,231,252,233,242,248,254,0,72,129,252,254,237,255,15,131,242,
  249,255,72,141,5,242,250,252,255,36,252,240,255,252,255,36,252,245,244,250,
  255,72,139,176,253,238,3,231,254,1,64,128,184,253,238,11,231,233,15,133,243,
  255,186,1,0,0,0,255,64,138,136,253,238,11,231,211,226,252,247,194,235,15,
  132,242,252,255,72,185,235,235,73,137,142,231,255,64,128,184,253,238,11,231,
  233,15,133,242,253,72,199,199,235,255,252,255,214,255,248,8,73,139,182,231,
  255,73,139,134,231,72,141,136,231,255,15,142,243,252,233,243,255,15,159,208,
  15,182,192,141,128,231,255,131,7,1,248,1,255,65,199,134,231,0,0,0,0,255,72,
  139,176,253,238,3,231,65,139,190,231,255,137,252,248,72,193,224,5,72,3,134,
  231,248,1,57,190,231,255,15,134,242,249,255,131,199,1,128,184,231,233,15,
  132,242,248,255,128,184,231,233,15,133,242,249,255,128,184,231,233,15,133,
  241,255,72,139,48,255,128,190,231,233,15,133,242,250,255,72,139,176,253,238,
  3,231,248,2,72,129,192,237,252,233,242,1,248,3,255,72,137,198,248,4,65,137,
  190,231,255,72,131,184,231,0,15,132,242,248,255,72,137,184,253,238,3,231,
  252,247,135,231,235,15,132,242,247,255,64,199,128,253,238,11,231,235,252,
  233,242,249,248,1,131,7,1,255,72,137,252,248,238,35,255,73,139,190,231,72,
  139,135,231,72,133,192,15,132,242,255,72,169,235,15,133,242,255,248,8,255,
  72,133,192,15,133,242,8,252,233,242,11,254,0,15,149,208,15,182,192,141,128,
  231,255,128,191,231,233,15,133,241,255
};

#line 162 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

//|.globals zend_lb
enum {
  zend_lbinterrupt_handler,
  zend_lbexception_handler,
  zend_lbexception_handler_undef,
  zend_lbexception_handler_free_op1_op2,
  zend_lbexception_handler_free_op2,
  zend_lbleave_function_handler,
  zend_lbleave_throw_handler,
  zend_lbicall_throw_handler,
  zend_lbthrow_cannot_pass_by_ref,
  zend_lbundefined_offset_ex,
  zend_lbundefined_offset,
  zend_lbundefined_index_ex,
  zend_lbundefined_index,
  zend_lbcannot_add_element_ex,
  zend_lbcannot_add_element,
  zend_lbundefined_function,
  zend_lbnegative_shift,
  zend_lbmod_by_zero,
  zend_lbinvalid_this,
  zend_lbone,
  zend_lbhybrid_runtime_jit,
  zend_lbhybrid_profile_jit,
  zend_lbhybrid_hot_code,
  zend_lbhybrid_func_hot_counter,
  zend_lbhybrid_loop_hot_counter,
  zend_lbhybrid_hot_trace,
  zend_lbhybrid_func_trace_counter,
  zend_lbhybrid_ret_trace_counter,
  zend_lbhybrid_loop_trace_counter,
  zend_lbtrace_halt,
  zend_lbtrace_exit,
  zend_lbtrace_escape,
  zend_lbcontext_threaded_call,
  zend_lbassign_const,
  zend_lbassign_tmp,
  zend_lbassign_var,
  zend_lbassign_cv_noref,
  zend_lbassign_cv,
  zend_lb_MAX
};
#line 164 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
static void* dasm_labels[zend_lb_MAX];

//|.section code, cold_code, jmp_table
#define DASM_SECTION_CODE	0
#define DASM_SECTION_COLD_CODE	1
#define DASM_SECTION_JMP_TABLE	2
#define DASM_MAXSECTION		3
#line 167 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

#define IS_32BIT(addr) (((uintptr_t)(addr)) <= 0x7fffffff)

#define IS_SIGNED_32BIT(val) ((((intptr_t)(val)) <= 0x7fffffff) && (((intptr_t)(val)) >= (-2147483647 - 1)))

#define BP_JIT_IS 6


#define CAN_USE_AVX() (JIT_G(opt_flags) & allowed_opt_flags & ZEND_JIT_CPU_AVX)

//|.macro ADD_HYBRID_SPAD
//||#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
//|		add r4, HYBRID_SPAD
//||#endif
//|.endmacro

//|.macro SUB_HYBRID_SPAD
//||#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
//|		sub r4, HYBRID_SPAD
//||#endif
//|.endmacro

//|.macro LOAD_ADDR, reg, addr
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			mov reg, ((ptrdiff_t)addr)    // 0x48 0xc7 0xc0 <imm-32-bit>
//||		} else {
//|			mov64 reg, ((ptrdiff_t)addr)  // 0x48 0xb8 <imm-64-bit>
//||		}
//|	.else
//|		mov reg, ((ptrdiff_t)addr)
//|	.endif
//|.endmacro

//|.macro LOAD_TSRM_CACHE, reg
//|	.if X64WIN
//|		gs
//|		mov reg, aword [0x58]
//|		mov reg, aword [reg+tsrm_tls_index]
//|		mov reg, aword [reg+tsrm_tls_offset]
//|	.elif WIN
//|		fs
//|		mov reg, aword [0x2c]
//|		mov reg, aword [reg+tsrm_tls_index]
//|		mov reg, aword [reg+tsrm_tls_offset]
//|	.elif X64APPLE
//|		gs
//||		if (tsrm_ls_cache_tcb_offset) {
//|			mov reg, aword [tsrm_ls_cache_tcb_offset]
//||		} else {
//|			mov reg, aword [tsrm_tls_index]
//|			mov reg, aword [reg+tsrm_tls_offset]
//||		}
//|	.elif X64
//|		fs
//||		if (tsrm_ls_cache_tcb_offset) {
//|			mov reg, aword [tsrm_ls_cache_tcb_offset]
//||		} else {
//|			mov reg, [0x8]
//|			mov reg, aword [reg+tsrm_tls_index]
//|			mov reg, aword [reg+tsrm_tls_offset]
//||		}
//|	.else
//|		gs
//||		if (tsrm_ls_cache_tcb_offset) {
//|			mov reg, aword [tsrm_ls_cache_tcb_offset]
//||		} else {
//|			mov reg, [0x4]
//|			mov reg, aword [reg+tsrm_tls_index]
//|			mov reg, aword [reg+tsrm_tls_offset]
//||		}
//|	.endif
//|.endmacro

//|.macro LOAD_ADDR_ZTS, reg, struct, field
//|	.if ZTS
//|		LOAD_TSRM_CACHE reg
//|		lea reg, aword [reg + (struct.._offset + offsetof(zend_..struct, field))]
//|	.else
//|		LOAD_ADDR reg, &struct.field
//|	.endif
//|.endmacro

//|.macro ADDR_OP1, addr_ins, addr, tmp_reg
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			addr_ins ((ptrdiff_t)addr)
//||		} else {
//|			mov64 tmp_reg, ((ptrdiff_t)addr)
//|			addr_ins tmp_reg
//||		}
//|	.else
//|		addr_ins ((ptrdiff_t)addr)
//|	.endif
//|.endmacro

//|.macro ADDR_OP2_2, addr_ins, op1, addr, tmp_reg
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			addr_ins op1, ((ptrdiff_t)addr)
//||		} else {
//|			mov64 tmp_reg, ((ptrdiff_t)addr)
//|			addr_ins op1, tmp_reg
//||		}
//|	.else
//|		addr_ins op1, ((ptrdiff_t)addr)
//|	.endif
//|.endmacro

//|.macro PUSH_ADDR, addr, tmp_reg
//|	ADDR_OP1 push, addr, tmp_reg
//|.endmacro

//|.macro PUSH_ADDR_ZTS, struct, field, tmp_reg
//|	.if ZTS
//|		LOAD_TSRM_CACHE tmp_reg
//|		lea tmp_reg, aword [tmp_reg + (struct.._offset + offsetof(zend_..struct, field))]
//|		push tmp_reg
//|	.else
//|		ADDR_OP1 push, &struct.field, tmp_reg
//|	.endif
//|.endmacro

//|.macro MEM_OP1, mem_ins, prefix, addr, tmp_reg
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			mem_ins prefix [addr]
//||		} else {
//|			mov64 tmp_reg, ((ptrdiff_t)addr)
//|			mem_ins prefix [tmp_reg]
//||		}
//|	.else
//|		mem_ins prefix [addr]
//|	.endif
//|.endmacro

//|.macro MEM_OP2_1, mem_ins, prefix, addr, op2, tmp_reg
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			mem_ins prefix [addr], op2
//||		} else {
//|			mov64 tmp_reg, ((ptrdiff_t)addr)
//|			mem_ins prefix [tmp_reg], op2
//||		}
//|	.else
//|		mem_ins prefix [addr], op2
//|	.endif
//|.endmacro

//|.macro MEM_OP2_2, mem_ins, op1, prefix, addr, tmp_reg
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			mem_ins op1, prefix [addr]
//||		} else {
//|			mov64 tmp_reg, ((ptrdiff_t)addr)
//|			mem_ins op1, prefix [tmp_reg]
//||		}
//|	.else
//|		mem_ins op1, prefix [addr]
//|	.endif
//|.endmacro

//|.macro MEM_OP2_1_ZTS, mem_ins, prefix, struct, field, op2, tmp_reg
//|	.if ZTS
//|		LOAD_TSRM_CACHE tmp_reg
//|		mem_ins prefix [tmp_reg+(struct.._offset+offsetof(zend_..struct, field))], op2
//|	.else
//|		MEM_OP2_1 mem_ins, prefix, &struct.field, op2, tmp_reg
//|	.endif
//|.endmacro

//|.macro MEM_OP2_2_ZTS, mem_ins, op1, prefix, struct, field, tmp_reg
//|	.if ZTS
//|		LOAD_TSRM_CACHE tmp_reg
//|		mem_ins op1, prefix [tmp_reg+(struct.._offset+offsetof(zend_..struct, field))]
//|	.else
//|		MEM_OP2_2 mem_ins, op1, prefix, &struct.field, tmp_reg
//|	.endif
//|.endmacro

//|.macro MEM_OP3_3, mem_ins, op1, op2, prefix, addr, tmp_reg
//|	.if X64
//||		if (IS_SIGNED_32BIT(addr)) {
//|			mem_ins op1, op2, prefix [addr]
//||		} else {
//|			mov64 tmp_reg, ((ptrdiff_t)addr)
//|			mem_ins op1, op2, prefix [tmp_reg]
//||		}
//|	.else
//|		mem_ins op1, op2, prefix [addr]
//|	.endif
//|.endmacro

//|.macro LOAD_BASE_ADDR, reg, base, offset
//||	if (offset) {
//|		lea reg, qword [Ra(base)+offset]
//||	} else {
//|		mov reg, Ra(base)
//||	}
//|.endmacro

//|.macro PUSH_BASE_ADDR, base, offset, tmp_reg
//||	if (offset) {
//|		lea tmp_reg, qword [Ra(base)+offset]
//|		push tmp_reg
//||	} else {
//|		push Ra(base)
//||	}
//|.endmacro

//|.macro EXT_CALL, func, tmp_reg
//|	.if X64
//||		if (IS_32BIT(dasm_end) && IS_32BIT(func)) {
//|			call qword &func
//||		} else {
//|			LOAD_ADDR tmp_reg, func
//|			call tmp_reg
//||		}
//|	.else
//|		call dword &func
//|	.endif
//|.endmacro

//|.macro EXT_JMP, func, tmp_reg
//|	.if X64
//||		if (IS_32BIT(dasm_end) && IS_32BIT(func)) {
//|			jmp qword &func
//||		} else {
//|			LOAD_ADDR tmp_reg, func
//|			jmp tmp_reg
//||		}
//|	.else
//|		jmp dword &func
//|	.endif
//|.endmacro

//|.macro SAVE_IP
//||	if (GCC_GLOBAL_REGS) {
//|		mov aword EX->opline, IP
//||	}
//|.endmacro

//|.macro LOAD_IP
//||	if (GCC_GLOBAL_REGS) {
//|		mov IP, aword EX->opline
//||	}
//|.endmacro

//|.macro LOAD_IP_ADDR, addr
//||	if (GCC_GLOBAL_REGS) {
//|		LOAD_ADDR IP, addr
//||	} else {
//|		ADDR_OP2_2 mov, aword EX->opline, addr, RX
//||	}
//|.endmacro

//|.macro LOAD_IP_ADDR_ZTS, struct, field
//|	.if ZTS
//||		if (GCC_GLOBAL_REGS) {
//|			LOAD_TSRM_CACHE IP
//|			mov IP, aword [IP + (struct.._offset + offsetof(zend_..struct, field))]
//||		} else {
//|			LOAD_TSRM_CACHE RX
//|			lea RX, aword [RX + (struct.._offset + offsetof(zend_..struct, field))]
//|			mov aword EX->opline, RX
//||		}
//|	.else
//|		LOAD_IP_ADDR &struct.field
//|	.endif
//|.endmacro

//|.macro GET_IP, reg
//||	if (GCC_GLOBAL_REGS) {
//|		mov reg, IP
//||	} else {
//|		mov reg, aword EX->opline
//||	}
//|.endmacro

//|.macro ADD_IP, val
//||	if (GCC_GLOBAL_REGS) {
//|		add IP, val
//||	} else {
//|		add aword EX->opline, val
//||	}
//|.endmacro

//|.macro JMP_IP
//||	if (GCC_GLOBAL_REGS) {
//|		jmp aword [IP]
//||	} else {
//|		mov r0, aword EX:FCARG1a->opline
//|		jmp aword [r0]
//||	}
//|.endmacro

/* In 64-bit build we compare only low 32-bits.
 * x86_64 cmp instruction doesn't support immediate 64-bit operand, and full
 * comparison would require an additional load of 64-bit address into register.
 * This is not a problem at all, while JIT buffer size is less than 4GB.
 */
//|.macro CMP_IP, addr
//||	if (GCC_GLOBAL_REGS) {
//|		cmp IPl, addr
//||	} else {
//|		cmp dword EX->opline, addr
//||	}
//|.endmacro

//|.macro LOAD_ZVAL_ADDR, reg, addr
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		LOAD_ADDR reg, Z_ZV(addr)
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		LOAD_BASE_ADDR reg, Z_REG(addr), Z_OFFSET(addr)
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro PUSH_ZVAL_ADDR, addr, tmp_reg
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		PUSH_ADDR Z_ZV(addr), tmp_reg
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		PUSH_BASE_ADDR Z_REG(addr), Z_OFFSET(addr), tmp_reg
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro GET_Z_TYPE_INFO, reg, zv
//|	mov reg, dword [zv+offsetof(zval,u1.type_info)]
//|.endmacro

//|.macro SET_Z_TYPE_INFO, zv, type
//|	mov dword [zv+offsetof(zval,u1.type_info)], type
//|.endmacro

//|.macro GET_ZVAL_TYPE, reg, addr
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov reg, byte [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval,u1.v.type)]
//|.endmacro

//|.macro GET_ZVAL_TYPE_INFO, reg, addr
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov reg, dword [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval,u1.type_info)]
//|.endmacro

//|.macro SET_ZVAL_TYPE_INFO, addr, type
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov dword [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval,u1.type_info)], type
//|.endmacro

//|.macro GET_Z_PTR, reg, zv
//|	mov reg, aword [zv]
//|.endmacro

//|.macro SET_Z_PTR, zv, val
//|	mov aword [zv], val
//|.endmacro

//|.macro GET_Z_W2, reg, zv
//|	mov reg, dword [zv+4]
//|.endmacro

//|.macro SET_Z_W2, zv, reg
//|	mov dword [zv+4], reg
//|.endmacro

//|.macro GET_ZVAL_PTR, reg, addr
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov reg, aword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//|.endmacro

//|.macro SET_ZVAL_PTR, addr, val
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov aword [Ra(Z_REG(addr))+Z_OFFSET(addr)], val
//|.endmacro

//|.macro GET_ZVAL_W2, reg, addr
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov reg, dword [Ra(Z_REG(addr))+Z_OFFSET(addr)+4]
//|.endmacro

//|.macro SET_ZVAL_W2, addr, val
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	mov dword [Ra(Z_REG(addr))+Z_OFFSET(addr)+4], val
//|.endmacro

//|.macro UNDEF_OPLINE_RESULT
//|	mov r0, EX->opline
//|	mov eax, dword OP:r0->result.var
//|	SET_Z_TYPE_INFO FP + r0, IS_UNDEF
//|.endmacro

//|.macro UNDEF_OPLINE_RESULT_IF_USED
//|	test byte OP:RX->result_type, (IS_TMP_VAR|IS_VAR)
//|	jz >1
//|	mov eax, dword OP:RX->result.var
//|	SET_Z_TYPE_INFO FP + r0, IS_UNDEF
//|1:
//|.endmacro

//|.macro SSE_AVX_INS, sse_ins, avx_ins, op1, op2
//||	if (CAN_USE_AVX()) {
//|		avx_ins op1, op2
//||	} else {
//|		sse_ins op1, op2
//||	}
//|.endmacro

//|.macro SSE_OP, sse_ins, reg, addr, tmp_reg
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		MEM_OP2_2 sse_ins, xmm(reg-ZREG_XMM0), qword, Z_ZV(addr), tmp_reg
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		sse_ins xmm(reg-ZREG_XMM0), qword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||	} else if (Z_MODE(addr) == IS_REG) {
//|		sse_ins xmm(reg-ZREG_XMM0), xmm(Z_REG(addr)-ZREG_XMM0)
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro SSE_AVX_OP, sse_ins, avx_ins, reg, addr
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		.if X64
//||			if (IS_SIGNED_32BIT(Z_ZV(addr))) {
//|				SSE_AVX_INS sse_ins, avx_ins, xmm(reg-ZREG_XMM0), qword [Z_ZV(addr)]
//||			} else {
//|				LOAD_ADDR r0, Z_ZV(addr)
//|				SSE_AVX_INS sse_ins, avx_ins, xmm(reg-ZREG_XMM0), qword [r0]
//||			}
//|		.else
//|			SSE_AVX_INS sse_ins, avx_ins, xmm(reg-ZREG_XMM0), qword [Z_ZV(addr)]
//|		.endif
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		SSE_AVX_INS sse_ins, avx_ins, xmm(reg-ZREG_XMM0), qword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||	} else if (Z_MODE(addr) == IS_REG) {
//|		SSE_AVX_INS sse_ins, avx_ins, xmm(reg-ZREG_XMM0), xmm(Z_REG(addr)-ZREG_XMM0)
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro SSE_GET_LONG, reg, lval, tmp_reg
//||		if (lval == 0) {
//||			if (CAN_USE_AVX()) {
//|				vxorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//||			} else {
//|				xorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//||			}
//||		} else {
//|.if X64
//||			if (!IS_SIGNED_32BIT(lval)) {
//|				mov64 Ra(tmp_reg), lval
//||			} else {
//|				mov Ra(tmp_reg), lval
//||			}
//|.else
//|			mov Ra(tmp_reg), lval
//|.endif
//||			if (CAN_USE_AVX()) {
//|				vxorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//|				vcvtsi2sd, xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), Ra(tmp_reg)
//||			} else {
//|				xorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//|				cvtsi2sd, xmm(reg-ZREG_XMM0), Ra(tmp_reg)
//||			}
//||		}
//|.endmacro

//|.macro SSE_GET_ZVAL_LVAL, reg, addr, tmp_reg
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		SSE_GET_LONG reg, Z_LVAL_P(Z_ZV(addr)), tmp_reg
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//||		if (CAN_USE_AVX()) {
//|			vxorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//|			vcvtsi2sd xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), aword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||		} else {
//|			xorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//|			cvtsi2sd xmm(reg-ZREG_XMM0), aword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||		}
//||	} else if (Z_MODE(addr) == IS_REG) {
//||		if (CAN_USE_AVX()) {
//|			vxorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//|			vcvtsi2sd xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0), Ra(Z_REG(addr))
//||		} else {
//|			xorps xmm(reg-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//|			cvtsi2sd xmm(reg-ZREG_XMM0), Ra(Z_REG(addr))
//||		}
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro SSE_GET_ZVAL_DVAL, reg, addr
//||	if (Z_MODE(addr) != IS_REG || reg != Z_REG(addr)) {
//||		if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|			.if X64
//||				if (IS_SIGNED_32BIT(Z_ZV(addr))) {
//|					SSE_AVX_INS movsd, vmovsd, xmm(reg-ZREG_XMM0), qword [Z_ZV(addr)]
//||				} else {
//|					LOAD_ADDR r0, Z_ZV(addr)
//|					SSE_AVX_INS movsd, vmovsd, xmm(reg-ZREG_XMM0), qword [r0]
//||				}
//|			.else
//|				SSE_AVX_INS movsd, vmovsd, xmm(reg-ZREG_XMM0), qword [Z_ZV(addr)]
//|			.endif
//||		} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|			SSE_AVX_INS movsd, vmovsd, xmm(reg-ZREG_XMM0), qword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||		} else if (Z_MODE(addr) == IS_REG) {
//|			SSE_AVX_INS movaps, vmovaps, xmm(reg-ZREG_XMM0), xmm(Z_REG(addr)-ZREG_XMM0)
//||		} else {
//||			ZEND_UNREACHABLE();
//||		}
//||	}
//|.endmacro

//|.macro SSE_MATH, opcode, reg, addr, tmp_reg
//||	switch (opcode) {
//||		case ZEND_ADD:
//|			SSE_OP addsd, reg, addr, tmp_reg
//||			break;
//||		case ZEND_SUB:
//|			SSE_OP subsd, reg, addr, tmp_reg
//||			break;
//||		case ZEND_MUL:
//|			SSE_OP mulsd, reg, addr, tmp_reg
//||			break;
//||		case ZEND_DIV:
//|			SSE_OP divsd, reg, addr, tmp_reg
//||			break;
//||	}
//|.endmacro

//|.macro SSE_MATH_REG, opcode, dst_reg, src_reg
//||	switch (opcode) {
//||		case ZEND_ADD:
//|			addsd xmm(dst_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||		case ZEND_SUB:
//|			subsd xmm(dst_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||		case ZEND_MUL:
//|			mulsd xmm(dst_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||		case ZEND_DIV:
//|			divsd xmm(dst_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||	}
//|.endmacro

//|.macro SSE_SET_ZVAL_DVAL, addr, reg
//||	if (Z_MODE(addr) == IS_REG) {
//||		if (reg != Z_REG(addr)) {
//|			SSE_AVX_INS movaps, vmovaps, xmm(Z_REG(addr)-ZREG_XMM0), xmm(reg-ZREG_XMM0)
//||		}
//||	} else {
//||		ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|		SSE_AVX_INS movsd, vmovsd, qword [Ra(Z_REG(addr))+Z_OFFSET(addr)], xmm(reg-ZREG_XMM0)
//||	}
//|.endmacro

//|.macro AVX_OP, avx_ins, reg, op1_reg, addr, tmp_reg
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		MEM_OP3_3 avx_ins, xmm(reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), qword, Z_ZV(addr), tmp_reg
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		avx_ins xmm(reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), qword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||	} else if (Z_MODE(addr) == IS_REG) {
//|		avx_ins xmm(reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), xmm(Z_REG(addr)-ZREG_XMM0)
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro AVX_MATH, opcode, reg, op1_reg, addr, tmp_reg
//||	switch (opcode) {
//||		case ZEND_ADD:
//|			AVX_OP vaddsd, reg, op1_reg, addr, tmp_reg
//||			break;
//||		case ZEND_SUB:
//|			AVX_OP vsubsd, reg, op1_reg, addr, tmp_reg
//||			break;
//||		case ZEND_MUL:
//|			AVX_OP vmulsd, reg, op1_reg, addr, tmp_reg
//||			break;
//||		case ZEND_DIV:
//|			AVX_OP vdivsd, reg, op1_reg, addr, tmp_reg
//||			break;
//||	}
//|.endmacro

//|.macro AVX_MATH_REG, opcode, dst_reg, op1_reg, src_reg
//||	switch (opcode) {
//||		case ZEND_ADD:
//|			vaddsd xmm(dst_reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||		case ZEND_SUB:
//|			vsubsd xmm(dst_reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||		case ZEND_MUL:
//|			vmulsd xmm(dst_reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||		case ZEND_DIV:
//|			vdivsd xmm(dst_reg-ZREG_XMM0), xmm(op1_reg-ZREG_XMM0), xmm(src_reg-ZREG_XMM0)
//||			break;
//||	}
//|.endmacro

//|.macro LONG_OP, long_ins, reg, addr, tmp_reg
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//|		.if X64
//||			if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(addr)))) {
//|				mov64 tmp_reg, Z_LVAL_P(Z_ZV(addr))
//|				long_ins Ra(reg), tmp_reg
//||			} else {
//|				long_ins Ra(reg), Z_LVAL_P(Z_ZV(addr))
//||			}
//|		.else
//|			long_ins Ra(reg), Z_LVAL_P(Z_ZV(addr))
//|		.endif
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		long_ins Ra(reg), aword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||	} else if (Z_MODE(addr) == IS_REG) {
//|		long_ins Ra(reg), Ra(Z_REG(addr))
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro LONG_OP_WITH_32BIT_CONST, long_ins, op1_addr, lval
//||	if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
//|		long_ins aword [Ra(Z_REG(op1_addr))+Z_OFFSET(op1_addr)], lval
//||	} else if (Z_MODE(op1_addr) == IS_REG) {
//|		long_ins Ra(Z_REG(op1_addr)), lval
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro LONG_OP_WITH_CONST, long_ins, op1_addr, lval
//||	if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
//|	   .if X64
//||			if (!IS_SIGNED_32BIT(lval)) {
//|				mov64 r0, lval
//|				long_ins aword [Ra(Z_REG(op1_addr))+Z_OFFSET(op1_addr)], r0
//||			} else {
//|				long_ins aword [Ra(Z_REG(op1_addr))+Z_OFFSET(op1_addr)], lval
//||			}
//|		.else
//|			long_ins aword [Ra(Z_REG(op1_addr))+Z_OFFSET(op1_addr)], lval
//|		.endif
//||	} else if (Z_MODE(op1_addr) == IS_REG) {
//|	   .if X64
//||			if (!IS_SIGNED_32BIT(lval)) {
//|				mov64 r0, lval
//|				long_ins Ra(Z_REG(op1_addr)), r0
//||			} else {
//|				long_ins Ra(Z_REG(op1_addr)), lval
//||			}
//|		.else
//|			long_ins Ra(Z_REG(op1_addr)), lval
//|		.endif
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro GET_ZVAL_LVAL, reg, addr
//||	if (Z_MODE(addr) == IS_CONST_ZVAL) {
//||		if (Z_LVAL_P(Z_ZV(addr)) == 0) {
//|			xor Ra(reg), Ra(reg)
//||		} else {
//|			.if X64
//||				if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(addr)))) {
//|					mov64 Ra(reg), Z_LVAL_P(Z_ZV(addr))
//||				} else {
//|					mov Ra(reg), Z_LVAL_P(Z_ZV(addr))
//||				}
//|			.else
//|				mov Ra(reg), Z_LVAL_P(Z_ZV(addr))
//|			.endif
//||		}
//||	} else if (Z_MODE(addr) == IS_MEM_ZVAL) {
//|		mov Ra(reg), aword [Ra(Z_REG(addr))+Z_OFFSET(addr)]
//||	} else if (Z_MODE(addr) == IS_REG) {
//||		if (reg != Z_REG(addr)) {
//|			mov Ra(reg), Ra(Z_REG(addr))
//||		}
//||	} else {
//||		ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro LONG_MATH, opcode, reg, addr, tmp_reg
//||	switch (opcode) {
//||		case ZEND_ADD:
//|			LONG_OP add, reg, addr, Ra(tmp_reg)
//||			break;
//||		case ZEND_SUB:
//|			LONG_OP sub, reg, addr, Ra(tmp_reg)
//||			break;
//||		case ZEND_MUL:
//|			LONG_OP imul, reg, addr, Ra(tmp_reg)
//||			break;
//||		case ZEND_BW_OR:
//|			LONG_OP or, reg, addr, Ra(tmp_reg)
//||			break;
//||		case ZEND_BW_AND:
//|			LONG_OP and, reg, addr, Ra(tmp_reg)
//||			break;
//||		case ZEND_BW_XOR:
//|			LONG_OP xor, reg, addr, Ra(tmp_reg)
//||			break;
//||		default:
//||			ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro LONG_MATH_REG, opcode, dst_reg, src_reg
//||	switch (opcode) {
//||		case ZEND_ADD:
//|			add dst_reg, src_reg
//||			break;
//||		case ZEND_SUB:
//|			sub dst_reg, src_reg
//||			break;
//||		case ZEND_MUL:
//|			imul dst_reg, src_reg
//||			break;
//||		case ZEND_BW_OR:
//|			or dst_reg, src_reg
//||			break;
//||		case ZEND_BW_AND:
//|			and dst_reg, src_reg
//||			break;
//||		case ZEND_BW_XOR:
//|			xor dst_reg, src_reg
//||			break;
//||		default:
//||			ZEND_UNREACHABLE();
//||	}
//|.endmacro

//|.macro SET_ZVAL_LVAL, addr, lval
//||	if (Z_MODE(addr) == IS_REG) {
//|		mov Ra(Z_REG(addr)), lval
//||	} else {
//||		ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|		mov aword [Ra(Z_REG(addr))+Z_OFFSET(addr)], lval
//||	}
//|.endmacro

//|.macro ZVAL_COPY_CONST, dst_addr, dst_info, dst_def_info, zv, tmp_reg
//||	if (Z_TYPE_P(zv) > IS_TRUE) {
//||		if (Z_TYPE_P(zv) == IS_DOUBLE) {
//||			zend_reg dst_reg = (Z_MODE(dst_addr) == IS_REG) ? Z_REG(dst_addr) : ZREG_XMM0;
//||			if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
//||				if (CAN_USE_AVX()) {
//|					vxorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)
//||				} else {
//|					xorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)
//||				}
//|			.if X64
//||			} else if (!IS_SIGNED_32BIT(zv)) {
//|				mov64 Ra(tmp_reg), ((uintptr_t)zv)
//|				SSE_AVX_INS movsd, vmovsd, xmm(dst_reg-ZREG_XMM0), qword [Ra(tmp_reg)]
//|			.endif
//||			} else {
//|				SSE_AVX_INS movsd, vmovsd, xmm(dst_reg-ZREG_XMM0), qword [((uint32_t)(uintptr_t)zv)]
//||			}
//|			SSE_SET_ZVAL_DVAL dst_addr, dst_reg
//||		} else if (Z_TYPE_P(zv) == IS_LONG && dst_def_info == MAY_BE_DOUBLE) {
//||			zend_reg dst_reg = (Z_MODE(dst_addr) == IS_REG) ? Z_REG(dst_addr) : ZREG_XMM0;
//|			SSE_GET_LONG dst_reg, Z_LVAL_P(zv), ZREG_R0
//|			SSE_SET_ZVAL_DVAL dst_addr, dst_reg
//||		} else if (Z_LVAL_P(zv) == 0 && Z_MODE(dst_addr) == IS_REG) {
//|			xor Ra(Z_REG(dst_addr)), Ra(Z_REG(dst_addr))
//||		} else {
//|			.if X64
//||				if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
//||					if (Z_MODE(dst_addr) == IS_REG) {
//|						mov64 Ra(Z_REG(dst_addr)), ((uintptr_t)Z_LVAL_P(zv))
//||					} else {
//|						mov64 Ra(tmp_reg), ((uintptr_t)Z_LVAL_P(zv))
//|						SET_ZVAL_LVAL dst_addr, Ra(tmp_reg)
//||					}
//||				} else {
//|					SET_ZVAL_LVAL dst_addr, Z_LVAL_P(zv)
//||				}
//|			.else
//|				SET_ZVAL_LVAL dst_addr, Z_LVAL_P(zv)
//|			.endif
//||		}
//||	}
//||	if (Z_MODE(dst_addr) == IS_MEM_ZVAL) {
//||		if (dst_def_info == MAY_BE_DOUBLE) {
//||			if ((dst_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
//|				SET_ZVAL_TYPE_INFO dst_addr, IS_DOUBLE
//||			}
//||		} else if (((dst_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (dst_info & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
//|			SET_ZVAL_TYPE_INFO dst_addr, Z_TYPE_INFO_P(zv)
//||		}
//||	}
//|.endmacro

//|.macro ZVAL_COPY_CONST_2, dst_addr, res_addr, dst_info, dst_def_info, zv, tmp_reg
//||	if (Z_TYPE_P(zv) > IS_TRUE) {
//||		if (Z_TYPE_P(zv) == IS_DOUBLE) {
//||			zend_reg dst_reg = (Z_MODE(dst_addr) == IS_REG) ?
//||				Z_REG(dst_addr) : ((Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0);
//||			if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
//||				if (CAN_USE_AVX()) {
//|					vxorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)
//||				} else {
//|					xorps xmm(dst_reg-ZREG_XMM0), xmm(dst_reg-ZREG_XMM0)
//||				}
//|			.if X64
//||			} else if (!IS_SIGNED_32BIT(zv)) {
//|				mov64 Ra(tmp_reg), ((uintptr_t)zv)
//|				SSE_AVX_INS movsd, vmovsd, xmm(dst_reg-ZREG_XMM0), qword [Ra(tmp_reg)]
//|			.endif
//||			} else {
//|				SSE_AVX_INS movsd, vmovsd, xmm(dst_reg-ZREG_XMM0), qword [((uint32_t)(uintptr_t)zv)]
//||			}
//|			SSE_SET_ZVAL_DVAL dst_addr, ZREG_XMM0
//|			SSE_SET_ZVAL_DVAL res_addr, ZREG_XMM0
//||		} else if (Z_TYPE_P(zv) == IS_LONG && dst_def_info == MAY_BE_DOUBLE) {
//||			if (Z_MODE(dst_addr) == IS_REG) {
//|				SSE_GET_LONG Z_REG(dst_addr), Z_LVAL_P(zv), ZREG_R0
//|				SSE_SET_ZVAL_DVAL res_addr, Z_REG(dst_addr)
//||			} else if (Z_MODE(res_addr) == IS_REG) {
//|				SSE_GET_LONG Z_REG(res_addr), Z_LVAL_P(zv), ZREG_R0
//|				SSE_SET_ZVAL_DVAL dst_addr, Z_REG(res_addr)
//||			} else {
//|				SSE_GET_LONG ZREG_XMM0, Z_LVAL_P(zv), ZREG_R0
//|				SSE_SET_ZVAL_DVAL dst_addr, ZREG_XMM0
//|				SSE_SET_ZVAL_DVAL res_addr, ZREG_XMM0
//||			}
//||		} else if (Z_LVAL_P(zv) == 0 && (Z_MODE(dst_addr) == IS_REG || Z_MODE(res_addr) == IS_REG)) {
//||				if (Z_MODE(dst_addr) == IS_REG) {
//|					xor Ra(Z_REG(dst_addr)), Ra(Z_REG(dst_addr))
//|					SET_ZVAL_LVAL res_addr, Ra(Z_REG(dst_addr))
//||				} else {
//|					xor Ra(Z_REG(res_addr)), Ra(Z_REG(res_addr))
//|					SET_ZVAL_LVAL dst_addr, Ra(Z_REG(res_addr))
//||				}
//||		} else {
//|			.if X64
//||				if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
//||					if (Z_MODE(dst_addr) == IS_REG) {
//|						mov64 Ra(Z_REG(dst_addr)), ((uintptr_t)Z_LVAL_P(zv))
//|						SET_ZVAL_LVAL res_addr, Ra(Z_REG(dst_addr))
//||					} else if (Z_MODE(res_addr) == IS_REG) {
//|						mov64 Ra(Z_REG(res_addr)), ((uintptr_t)Z_LVAL_P(zv))
//|						SET_ZVAL_LVAL dst_addr, Ra(Z_REG(res_addr))
//||					} else {
//|						mov64 Ra(tmp_reg), ((uintptr_t)Z_LVAL_P(zv))
//|						SET_ZVAL_LVAL dst_addr, Ra(tmp_reg)
//|						SET_ZVAL_LVAL res_addr, Ra(tmp_reg)
//||					}
//||				} else if (Z_MODE(dst_addr) == IS_REG) {
//|					SET_ZVAL_LVAL dst_addr, Z_LVAL_P(zv)
//|					SET_ZVAL_LVAL res_addr, Ra(Z_REG(dst_addr))
//||				} else if (Z_MODE(res_addr) == IS_REG) {
//|					SET_ZVAL_LVAL res_addr, Z_LVAL_P(zv)
//|					SET_ZVAL_LVAL dst_addr, Ra(Z_REG(res_addr))
//||				} else {
//|					SET_ZVAL_LVAL dst_addr, Z_LVAL_P(zv)
//|					SET_ZVAL_LVAL res_addr, Z_LVAL_P(zv)
//||				}
//|			.else
//||				if (Z_MODE(dst_addr) == IS_REG) {
//|					SET_ZVAL_LVAL dst_addr, Z_LVAL_P(zv)
//|					SET_ZVAL_LVAL res_addr, Ra(Z_REG(dst_addr))
//||				} else if (Z_MODE(res_addr) == IS_REG) {
//|					SET_ZVAL_LVAL res_addr, Z_LVAL_P(zv)
//|					SET_ZVAL_LVAL dst_addr, Ra(Z_REG(res_addr))
//||				} else {
//|					SET_ZVAL_LVAL dst_addr, Z_LVAL_P(zv)
//|					SET_ZVAL_LVAL res_addr, Z_LVAL_P(zv)
//||				}
//|			.endif
//||		}
//||	}
//||	if (Z_MODE(dst_addr) == IS_MEM_ZVAL) {
//||		if (dst_def_info == MAY_BE_DOUBLE) {
//||			if ((dst_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
//|				SET_ZVAL_TYPE_INFO dst_addr, IS_DOUBLE
//||			}
//||		} else if (((dst_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (dst_info & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
//|			SET_ZVAL_TYPE_INFO dst_addr, Z_TYPE_INFO_P(zv)
//||		}
//||	}
//||	if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
//||		if (dst_def_info == MAY_BE_DOUBLE) {
//|			SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
//||		} else {
//|			SET_ZVAL_TYPE_INFO res_addr, Z_TYPE_INFO_P(zv)
//||		}
//||	}
//|.endmacro

/* the same as above, but "src" may overlap with "tmp_reg1" */
//|.macro ZVAL_COPY_VALUE, dst_addr, dst_info, src_addr, src_info, tmp_reg1, tmp_reg2
//|	ZVAL_COPY_VALUE_V dst_addr, dst_info, src_addr, src_info, tmp_reg1, tmp_reg2
//||	if ((src_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
//||      !(src_info & MAY_BE_GUARD) &&
//||		has_concrete_type(src_info & MAY_BE_ANY)) {
//||		if (Z_MODE(dst_addr) == IS_MEM_ZVAL) {
//||			if ((dst_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (src_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
//||				zend_uchar type = concrete_type(src_info);
//|				SET_ZVAL_TYPE_INFO dst_addr, type
//||			}
//||		}
//||	} else {
//|		GET_ZVAL_TYPE_INFO Rd(tmp_reg1), src_addr
//|		SET_ZVAL_TYPE_INFO dst_addr, Rd(tmp_reg1)
//||	}
//|.endmacro

//|.macro ZVAL_COPY_VALUE_V, dst_addr, dst_info, src_addr, src_info, tmp_reg1, tmp_reg2
//||	if (src_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
//||		if ((src_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
//||			if (Z_MODE(src_addr) == IS_REG) {
//||				if (Z_MODE(dst_addr) != IS_REG || Z_REG(dst_addr) != Z_REG(src_addr)) {
//|					SET_ZVAL_LVAL dst_addr, Ra(Z_REG(src_addr))
//||				}
//||			} else if (Z_MODE(dst_addr) == IS_REG) {
//|				GET_ZVAL_LVAL Z_REG(dst_addr), src_addr
//||			} else {
//|				GET_ZVAL_LVAL tmp_reg2, src_addr
//|				SET_ZVAL_LVAL dst_addr, Ra(tmp_reg2)
//||			}
//||		} else if ((src_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
//||			if (Z_MODE(src_addr) == IS_REG) {
//|				SSE_SET_ZVAL_DVAL dst_addr, Z_REG(src_addr)
//||			} else if (Z_MODE(dst_addr) == IS_REG) {
//|				SSE_GET_ZVAL_DVAL Z_REG(dst_addr), src_addr
//||			} else {
//|				SSE_GET_ZVAL_DVAL ZREG_XMM0, src_addr
//|				SSE_SET_ZVAL_DVAL dst_addr, ZREG_XMM0
//||			}
//||		} else if (!(src_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
//|			GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|			SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//||		} else {
//|			.if X64
//|				GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|				SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//|			.else
//||				if ((tmp_reg1 == tmp_reg2 || tmp_reg1 == Z_REG(src_addr))) {
//|					GET_ZVAL_W2 Ra(tmp_reg2), src_addr
//|					SET_ZVAL_W2 dst_addr, Ra(tmp_reg2)
//|					GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|					SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//||				} else {
//|					GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|					GET_ZVAL_W2 Ra(tmp_reg1), src_addr
//|					SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//|					SET_ZVAL_W2 dst_addr, Ra(tmp_reg1)
//||				}
//|			.endif
//||		}
//||	}
//|.endmacro

//|.macro ZVAL_COPY_VALUE_2, dst_addr, dst_info, res_addr, src_addr, src_info, tmp_reg1, tmp_reg2
//||	if (src_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
//||		if ((src_info & MAY_BE_ANY) == MAY_BE_LONG) {
//||			if (Z_MODE(src_addr) == IS_REG) {
//||				if (Z_MODE(dst_addr) != IS_REG || Z_REG(dst_addr) != Z_REG(src_addr)) {
//|					SET_ZVAL_LVAL dst_addr, Ra(Z_REG(src_addr))
//||				}
//||				if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(src_addr)) {
//|					SET_ZVAL_LVAL res_addr, Ra(Z_REG(src_addr))
//||				}
//||			} else if (Z_MODE(dst_addr) == IS_REG) {
//|				GET_ZVAL_LVAL Z_REG(dst_addr), src_addr
//||				if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(dst_addr)) {
//|					SET_ZVAL_LVAL res_addr, Ra(Z_REG(dst_addr))
//||				}
//||			} else if (Z_MODE(res_addr) == IS_REG) {
//|				GET_ZVAL_LVAL Z_REG(res_addr), src_addr
//|				SET_ZVAL_LVAL dst_addr, Ra(Z_REG(res_addr))
//||			} else {
//|				GET_ZVAL_LVAL tmp_reg2, src_addr
//|				SET_ZVAL_LVAL dst_addr, Ra(tmp_reg2)
//|				SET_ZVAL_LVAL res_addr, Ra(tmp_reg2)
//||			}
//||		} else if ((src_info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
//||			if (Z_MODE(src_addr) == IS_REG) {
//|				SSE_SET_ZVAL_DVAL dst_addr, Z_REG(src_addr)
//|				SSE_SET_ZVAL_DVAL res_addr, Z_REG(src_addr)
//||			} else if (Z_MODE(dst_addr) == IS_REG) {
//|				SSE_GET_ZVAL_DVAL Z_REG(dst_addr), src_addr
//|				SSE_SET_ZVAL_DVAL res_addr, Z_REG(dst_addr)
//||			} else if (Z_MODE(res_addr) == IS_REG) {
//|				SSE_GET_ZVAL_DVAL Z_REG(res_addr), src_addr
//|				SSE_SET_ZVAL_DVAL dst_addr, Z_REG(res_addr)
//||			} else {
//|				SSE_GET_ZVAL_DVAL ZREG_XMM0, src_addr
//|				SSE_SET_ZVAL_DVAL dst_addr, ZREG_XMM0
//|				SSE_SET_ZVAL_DVAL res_addr, ZREG_XMM0
//||			}
//||		} else if (!(src_info & MAY_BE_DOUBLE)) {
//|			GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|			SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//|			SET_ZVAL_PTR res_addr, Ra(tmp_reg2)
//||		} else {
//|			.if X64
//|				GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|				SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//|				SET_ZVAL_PTR res_addr, Ra(tmp_reg2)
//|			.else
//||				if (tmp_reg1 == tmp_reg2 || tmp_reg1 == Z_REG(src_addr)) {
//|					GET_ZVAL_W2 Ra(tmp_reg2), src_addr
//|					SET_ZVAL_W2 dst_addr, Ra(tmp_reg2)
//|					SET_ZVAL_W2 res_addr, Ra(tmp_reg2)
//|					GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|					SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//|					SET_ZVAL_PTR res_addr, Ra(tmp_reg2)
//||				} else {
//|					GET_ZVAL_PTR Ra(tmp_reg2), src_addr
//|					GET_ZVAL_W2 Ra(tmp_reg1), src_addr
//|					SET_ZVAL_PTR dst_addr, Ra(tmp_reg2)
//|					SET_ZVAL_PTR res_addr, Ra(tmp_reg2)
//|					SET_ZVAL_W2 dst_addr, Ra(tmp_reg1)
//|					SET_ZVAL_W2 res_addr, Ra(tmp_reg1)
//||				}
//|			.endif
//||		}
//||	}
//||	if ((src_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
//||	    has_concrete_type(src_info & MAY_BE_ANY)) {
//||		zend_uchar type = concrete_type(src_info);
//||		if (Z_MODE(dst_addr) == IS_MEM_ZVAL) {
//||			if ((dst_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (src_info & (MAY_BE_ANY|MAY_BE_UNDEF))) {
//|				SET_ZVAL_TYPE_INFO dst_addr, type
//||			}
//||		}
//||		if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
//|			SET_ZVAL_TYPE_INFO res_addr, type
//||		}
//||	} else {
//|		GET_ZVAL_TYPE_INFO Rd(tmp_reg1), src_addr
//|		SET_ZVAL_TYPE_INFO dst_addr, Rd(tmp_reg1)
//|		SET_ZVAL_TYPE_INFO res_addr, Rd(tmp_reg1)
//||	}
//|.endmacro

//|.macro IF_UNDEF, type_reg, label
//|	test type_reg, type_reg
//|	je label
//|.endmacro

//|.macro IF_TYPE, type, val, label
//|	cmp type, val
//|	je label
//|.endmacro

//|.macro IF_NOT_TYPE, type, val, label
//|	cmp type, val
//|	jne label
//|.endmacro

//|.macro IF_Z_TYPE, zv, val, label
//|	IF_TYPE byte [zv+offsetof(zval, u1.v.type)], val, label
//|.endmacro

//|.macro IF_NOT_Z_TYPE, zv, val, label
//|	IF_NOT_TYPE byte [zv+offsetof(zval, u1.v.type)], val, label
//|.endmacro

//|.macro CMP_ZVAL_TYPE, addr, val
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	cmp byte [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval, u1.v.type)], val
//|.endmacro

//|.macro IF_ZVAL_TYPE, addr, val, label
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	IF_TYPE byte [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval, u1.v.type)], val, label
//|.endmacro

//|.macro IF_NOT_ZVAL_TYPE, addr, val, label
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	IF_NOT_TYPE byte [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval, u1.v.type)], val, label
//|.endmacro

//|.macro IF_FLAGS, type_flags, mask, label
//|	test type_flags, mask
//|	jnz label
//|.endmacro

//|.macro IF_NOT_FLAGS, type_flags, mask, label
//|	test type_flags, mask
//|	jz label
//|.endmacro

//|.macro IF_REFCOUNTED, type_flags, label
//|	IF_FLAGS type_flags, IS_TYPE_REFCOUNTED, label
//|.endmacro

//|.macro IF_NOT_REFCOUNTED, type_flags, label
//|	//IF_NOT_FLAGS type_flags, IS_TYPE_REFCOUNTED, label
//|	test type_flags, type_flags
//|	jz label
//|.endmacro

//|.macro IF_ZVAL_FLAGS, addr, mask, label
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	IF_FLAGS byte [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval, u1.v.type_flags)], mask, label
//|.endmacro

//|.macro IF_NOT_ZVAL_FLAGS, addr, mask, label
//||	ZEND_ASSERT(Z_MODE(addr) == IS_MEM_ZVAL);
//|	IF_NOT_FLAGS byte [Ra(Z_REG(addr))+Z_OFFSET(addr)+offsetof(zval, u1.v.type_flags)], mask, label
//|.endmacro

//|.macro IF_ZVAL_REFCOUNTED, addr, label
//|	IF_ZVAL_FLAGS addr, IS_TYPE_REFCOUNTED, label
//|.endmacro

//|.macro IF_NOT_ZVAL_REFCOUNTED, addr, label
//|	IF_NOT_ZVAL_FLAGS addr, IS_TYPE_REFCOUNTED, label
//|.endmacro

//|.macro IF_NOT_ZVAL_COLLECTABLE, addr, label
//|	IF_NOT_ZVAL_FLAGS addr, IS_TYPE_COLLECTABLE, label
//|.endmacro

//|.macro GC_ADDREF, zv
//|	add dword [zv], 1
//|.endmacro

//|.macro GC_DELREF, zv
//|	sub dword [zv], 1
//|.endmacro

//|.macro IF_GC_MAY_NOT_LEAK, ptr, label
//|	test dword [ptr+4],(GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT))
//|	jne label
//|.endmacro

//|.macro ADDREF_CONST, zv, tmp_reg
//|	.if X64
//||		if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
//|			mov64 tmp_reg, ((uintptr_t)Z_LVAL_P(zv))
//|			add dword [tmp_reg], 1
//||		} else {
//|			add dword [Z_LVAL_P(zv)], 1
//||		}
//|	.else
//|		add dword [Z_LVAL_P(zv)], 1
//|	.endif
//|.endmacro

//|.macro ADDREF_CONST_2, zv, tmp_reg
//|	.if X64
//||		if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
//|			mov64 tmp_reg, ((uintptr_t)Z_LVAL_P(zv))
//|			add dword [tmp_reg], 2
//||		} else {
//|			add dword [Z_LVAL_P(zv)], 2
//||		}
//|	.else
//|		add dword [Z_LVAL_P(zv)], 2
//|	.endif
//|.endmacro

//|.macro TRY_ADDREF, val_info, type_flags_reg, value_ptr_reg
//||	if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
//||		if (val_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
//|			IF_NOT_REFCOUNTED type_flags_reg, >1
//||		}
//|		GC_ADDREF value_ptr_reg
//|1:
//||	}
//|.endmacro

//|.macro TRY_ADDREF_2, val_info, type_flags_reg, value_ptr_reg
//||	if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
//||		if (val_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
//|			IF_NOT_REFCOUNTED type_flags_reg, >1
//||		}
//|		add dword [value_ptr_reg], 2
//|1:
//||	}
//|.endmacro

//|.macro ZVAL_DEREF, reg, info
//||	if (info & MAY_BE_REF) {
//|		IF_NOT_Z_TYPE, reg, IS_REFERENCE, >1
//|		GET_Z_PTR reg, reg
//|		add reg, offsetof(zend_reference, val)
//|1:
//||	}
//|.endmacro

//|.macro SET_EX_OPLINE, op, tmp_reg
//||	if (op == last_valid_opline) {
//||		zend_jit_use_last_valid_opline();
//|		SAVE_IP
//||	} else {
//|		ADDR_OP2_2 mov, aword EX->opline, op, tmp_reg
//||		if (!GCC_GLOBAL_REGS) {
//||			zend_jit_reset_last_valid_opline();
//||		}
//||	}
//|.endmacro

// zval should be in FCARG1a
//|.macro ZVAL_DTOR_FUNC, var_info, opline // arg1 must be in FCARG1a
//||	do {
//||		if (!((var_info) & MAY_BE_GUARD)
//||		 && has_concrete_type((var_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
//||			zend_uchar type = concrete_type((var_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
//||			if (type == IS_STRING && !ZEND_DEBUG) {
//|				EXT_CALL _efree, r0
//||				break;
//||			} else if (type == IS_ARRAY) {
//||				if ((var_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
//||					if (opline && ((var_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
//|						SET_EX_OPLINE opline, r0
//||					}
//|					EXT_CALL zend_array_destroy, r0
//||				} else {
//|					EXT_CALL zend_jit_array_free, r0
//||				}
//||				break;
//||			} else if (type == IS_OBJECT) {
//||				if (opline) {
//|					SET_EX_OPLINE opline, r0
//||				}
//|				EXT_CALL zend_objects_store_del, r0
//||				break;
//||			}
//||		}
//||		if (opline) {
//|			SET_EX_OPLINE opline, r0
//||		}
//|		EXT_CALL rc_dtor_func, r0
//||	} while(0);
//|.endmacro

//|.macro ZVAL_PTR_DTOR, addr, op_info, gc, cold, opline
//||	if ((op_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
//||		if ((op_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
//|			// if (Z_REFCOUNTED_P(cv)) {
//||			if (cold) {
//|				IF_ZVAL_REFCOUNTED addr, >1
//|.cold_code
//|1:
//||			} else {
//|				IF_NOT_ZVAL_REFCOUNTED addr, >4
//||			}
//||		}
//|		// if (!Z_DELREF_P(cv)) {
//|		GET_ZVAL_PTR FCARG1a, addr
//|		GC_DELREF FCARG1a
//||		if (((op_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op_info)) {
//||			if (((op_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op_info)) {
//||				if (gc && (((op_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op_info) && ((op_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
//|					jnz >3
//||				} else {
//|					jnz >4
//||				}
//||			}
//|			// zval_dtor_func(r);
//|			ZVAL_DTOR_FUNC op_info, opline
//||			if (gc && (((op_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op_info) && ((op_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
//|				jmp >4
//||			}
//|3:
//||		}
//||		if (gc && (((op_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op_info) && ((op_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
//||			if ((op_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
//||				zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
//|				IF_NOT_ZVAL_TYPE addr, IS_REFERENCE, >1
//|				IF_NOT_ZVAL_COLLECTABLE ref_addr, >4
//|				GET_ZVAL_PTR FCARG1a, ref_addr
//|1:
//||			}
//|			IF_GC_MAY_NOT_LEAK FCARG1a, >4
//|			// gc_possible_root(Z_COUNTED_P(z))
//|			EXT_CALL gc_possible_root, r0
//||		}
//||		if (cold && ((op_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
//|			jmp >4
//|.code
//||		}
//|4:
//||	}
//|.endmacro

//|.macro FREE_OP, op_type, op, op_info, cold, opline
//||	if (op_type & (IS_VAR|IS_TMP_VAR)) {
//|		ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_FP, op.var), op_info, 0, cold, opline
//||	}
//|.endmacro

//|.macro SEPARATE_ARRAY, addr, op_info, cold
//||	if (RC_MAY_BE_N(op_info)) {
//||		if (Z_REG(addr) != ZREG_FP) {
//|			GET_ZVAL_LVAL ZREG_R0, addr
//||			if (RC_MAY_BE_1(op_info)) {
//|				cmp dword [r0], 1 // if (GC_REFCOUNT() > 1)
//|				jbe >2
//||			}
//||			if (Z_REG(addr) != ZREG_FCARG1a || Z_OFFSET(addr) != 0) {
//|				LOAD_ZVAL_ADDR FCARG1a, addr
//||			}
//|			EXT_CALL zend_jit_zval_array_dup, r0
//|2:
//|			mov FCARG1a, r0
//||		} else {
//|			GET_ZVAL_LVAL ZREG_FCARG1a, addr
//||			if (RC_MAY_BE_1(op_info)) {
//|				cmp dword [FCARG1a], 1 // if (GC_REFCOUNT() > 1)
//||				if (cold) {
//|					ja >1
//|.cold_code
//|1:
//||				} else {
//|					jbe >2
//||				}
//||			}
//|			IF_NOT_ZVAL_REFCOUNTED addr, >1
//|			GC_DELREF FCARG1a
//|1:
//|			EXT_CALL zend_array_dup, r0
//|			SET_ZVAL_PTR addr, r0
//|			SET_ZVAL_TYPE_INFO addr, IS_ARRAY_EX
//|			mov FCARG1a, r0
//||			if (RC_MAY_BE_1(op_info)) {
//||				if (cold) {
//|					jmp >2
//|.code
//||				}
//||			}
//|2:
//||		}
//||	} else {
//|		GET_ZVAL_LVAL ZREG_FCARG1a, addr
//||	}
//|.endmacro

//|.macro EFREE_REG_REFERENCE
//||#if ZEND_DEBUG
//|		xor FCARG2a, FCARG2a // filename
//|		.if X64WIN
//|			xor CARG3d, CARG3d // lineno
//|			xor CARG4, CARG4
//|			mov aword A5, 0
//|			EXT_CALL _efree, r0
//|		.elif X64
//|			xor CARG3d, CARG3d // lineno
//|			xor CARG4, CARG4
//|			xor CARG5, CARG5
//|			EXT_CALL _efree, r0
//|		.else
//|			sub r4, 4
//|			push 0
//|			push 0
//|			push 0 // lineno
//|			EXT_CALL _efree, r0
//|			add r4, 4
//|		.endif
//||#else
//||#ifdef HAVE_BUILTIN_CONSTANT_P
//|		EXT_CALL _efree_32, r0
//||#else
//|		EXT_CALL _efree, r0
//||#endif
//||#endif
//|.endmacro

//|.macro EFREE_REFERENCE, ptr
//|	mov FCARG1a, ptr
//|	EFREE_REG_REFERENCE
//|.endmacro

//|.macro EMALLOC, size, op_array, opline
//||#if ZEND_DEBUG
//||		const char *filename = op_array->filename ? op_array->filename->val : NULL;
//|		mov FCARG1a, size
//|		LOAD_ADDR FCARG2a, filename
//|		.if X64WIN
//|			mov CARG3d, opline->lineno
//|			xor CARG4, CARG4
//|			mov aword A5, 0
//|			EXT_CALL _emalloc, r0
//|		.elif X64
//|			mov CARG3d, opline->lineno
//|			xor CARG4, CARG4
//|			xor CARG5, CARG5
//|			EXT_CALL _emalloc, r0
//|		.else
//|			sub r4, 4
//|			push 0
//|			push 0
//|			push opline->lineno
//|			EXT_CALL _emalloc, r0
//|			add r4, 4
//|		.endif
//||#else
//||#ifdef HAVE_BUILTIN_CONSTANT_P
//||	if (size > 24 && size <= 32) {
//|		EXT_CALL _emalloc_32, r0
//||	} else {
//|		mov FCARG1a, size
//|		EXT_CALL _emalloc, r0
//||	}
//||#else
//|		mov FCARG1a, size
//|		EXT_CALL _emalloc, r0
//||#endif
//||#endif
//|.endmacro

//|.macro OBJ_RELEASE, reg, exit_label
//|	GC_DELREF Ra(reg)
//|	jne >1
//|	// zend_objects_store_del(obj);
//||	if (reg != ZREG_FCARG1a) {
//|		mov FCARG1a, Ra(reg)
//||	}
//|	EXT_CALL zend_objects_store_del, r0
//|	jmp exit_label
//|1:
//|	IF_GC_MAY_NOT_LEAK Ra(reg), >1
//|	// gc_possible_root(obj)
//||	if (reg != ZREG_FCARG1a) {
//|		mov FCARG1a, Ra(reg)
//||	}
//|	EXT_CALL gc_possible_root, r0
//|1:
//|.endmacro

//|.macro UNDEFINED_OFFSET, opline
//||	if (opline == last_valid_opline) {
//||		zend_jit_use_last_valid_opline();
//|		call ->undefined_offset_ex
//||	} else {
//|		SET_EX_OPLINE  opline, r0
//|		call ->undefined_offset
//||	}
//|.endmacro

//|.macro UNDEFINED_INDEX, opline
//||	if (opline == last_valid_opline) {
//||		zend_jit_use_last_valid_opline();
//|		call ->undefined_index_ex
//||	} else {
//|		SET_EX_OPLINE opline, r0
//|		call ->undefined_index
//||	}
//|.endmacro

//|.macro CANNOT_ADD_ELEMENT, opline
//||	if (opline == last_valid_opline) {
//||		zend_jit_use_last_valid_opline();
//|		call ->cannot_add_element_ex
//||	} else {
//|		SET_EX_OPLINE opline, r0
//|		call ->cannot_add_element
//||	}
//|.endmacro

static zend_bool reuse_ip = 0;
static zend_bool delayed_call_chain = 0;
static uint32_t  delayed_call_level = 0;
static const zend_op *last_valid_opline = NULL;
static zend_bool use_last_vald_opline = 0;
static zend_bool track_last_valid_opline = 0;
static int jit_return_label = -1;
static uint32_t current_trace_num = 0;
static uint32_t allowed_opt_flags = 0;

static void zend_jit_track_last_valid_opline(void)
{
	use_last_vald_opline = 0;
	track_last_valid_opline = 1;
}

static void zend_jit_use_last_valid_opline(void)
{
	if (track_last_valid_opline) {
		use_last_vald_opline = 1;
		track_last_valid_opline = 0;
	}
}

static zend_bool zend_jit_trace_uses_initial_ip(void)
{
	return use_last_vald_opline;
}

static void zend_jit_set_last_valid_opline(const zend_op *target_opline)
{
	if (!reuse_ip) {
		track_last_valid_opline = 0;
		last_valid_opline = target_opline;
	}
}

static void zend_jit_reset_last_valid_opline(void)
{
	track_last_valid_opline = 0;
	last_valid_opline = NULL;
}

static void zend_jit_start_reuse_ip(void)
{
	zend_jit_reset_last_valid_opline();
	reuse_ip = 1;
}

static int zend_jit_reuse_ip(dasm_State **Dst)
{
	if (!reuse_ip) {
		zend_jit_start_reuse_ip();
		//|	// call = EX(call);
		//|	mov RX, EX->call
		dasm_put(Dst, 0, Dt1(->call));
#line 1690 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static void zend_jit_stop_reuse_ip(void)
{
	reuse_ip = 0;
}

/* bit helpers */

/* from http://aggregate.org/MAGIC/ */
static uint32_t ones32(uint32_t x)
{
	x -= ((x >> 1) & 0x55555555);
	x = (((x >> 2) & 0x33333333) + (x & 0x33333333));
	x = (((x >> 4) + x) & 0x0f0f0f0f);
	x += (x >> 8);
	x += (x >> 16);
	return x & 0x0000003f;
}

static uint32_t floor_log2(uint32_t x)
{
	ZEND_ASSERT(x != 0);
	x |= (x >> 1);
	x |= (x >> 2);
	x |= (x >> 4);
	x |= (x >> 8);
	x |= (x >> 16);
	return ones32(x) - 1;
}

static zend_bool is_power_of_two(uint32_t x)
{
	return !(x & (x - 1)) && x != 0;
}

static zend_bool has_concrete_type(uint32_t value_type)
{
	return is_power_of_two (value_type & (MAY_BE_ANY|MAY_BE_UNDEF));
}

static uint32_t concrete_type(uint32_t value_type)
{
	return floor_log2(value_type & (MAY_BE_ANY|MAY_BE_UNDEF));
}

static inline zend_bool is_signed(double d)
{
	return (((unsigned char*)&d)[sizeof(double)-1] & 0x80) != 0;
}

static int zend_jit_interrupt_handler_stub(dasm_State **Dst)
{
	//|->interrupt_handler:
	//|	SAVE_IP
	dasm_put(Dst, 5);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
#line 1747 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	//EG(vm_interrupt) = 0;
	//|	MEM_OP2_1_ZTS mov, byte, executor_globals, vm_interrupt, 0, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_interrupt)) {
	dasm_put(Dst, 13, &executor_globals.vm_interrupt);
			} else {
	dasm_put(Dst, 19, (unsigned int)(((ptrdiff_t)&executor_globals.vm_interrupt)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_interrupt))>>32));
			}
#line 1749 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	//if (EG(timed_out)) {
	//|	MEM_OP2_1_ZTS cmp, byte, executor_globals, timed_out, 0, r0
			if (IS_SIGNED_32BIT(&executor_globals.timed_out)) {
	dasm_put(Dst, 27, &executor_globals.timed_out);
			} else {
	dasm_put(Dst, 33, (unsigned int)(((ptrdiff_t)&executor_globals.timed_out)), (unsigned int)((((ptrdiff_t)&executor_globals.timed_out))>>32));
			}
#line 1751 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	je >1
	//|	//zend_timeout();
	//|	EXT_CALL zend_timeout, r0
	dasm_put(Dst, 41);
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_timeout)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_timeout));
			} else {
			if (IS_SIGNED_32BIT(zend_timeout)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_timeout));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_timeout)), (unsigned int)((((ptrdiff_t)zend_timeout))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 1754 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|1:
	//|	//} else if (zend_interrupt_function) {
	dasm_put(Dst, 64);
#line 1756 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (zend_interrupt_function) {
		//|	//zend_interrupt_function(execute_data);
		//|.if X64
			//|	mov CARG1, FP
			//|	EXT_CALL zend_interrupt_function, r0
			dasm_put(Dst, 67);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_interrupt_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_interrupt_function));
					} else {
					if (IS_SIGNED_32BIT(zend_interrupt_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_interrupt_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_interrupt_function)), (unsigned int)((((ptrdiff_t)zend_interrupt_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 1761 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	mov aword A1, FP
			//|	EXT_CALL zend_interrupt_function, r0
		//|.endif
		//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.exception)) {
		dasm_put(Dst, 72, &executor_globals.exception);
				} else {
		dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
				}
#line 1766 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	je >1
		//|	EXT_CALL zend_jit_exception_in_interrupt_handler_helper, r0
		dasm_put(Dst, 41);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_exception_in_interrupt_handler_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_exception_in_interrupt_handler_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_exception_in_interrupt_handler_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_exception_in_interrupt_handler_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_exception_in_interrupt_handler_helper)), (unsigned int)((((ptrdiff_t)zend_jit_exception_in_interrupt_handler_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 1768 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	//ZEND_VM_ENTER();
		//|	//execute_data = EG(current_execute_data);
		//|	MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0
		dasm_put(Dst, 64);
				if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
		dasm_put(Dst, 88, &executor_globals.current_execute_data);
				} else {
		dasm_put(Dst, 94, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
				}
#line 1772 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	LOAD_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 0, Dt1(->opline));
			}
#line 1773 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	//ZEND_VM_CONTINUE()
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 1777 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 1778 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		//|	JMP_IP
		dasm_put(Dst, 120);
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 1781 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, 1 // ZEND_VM_ENTER
		//|	ret
		dasm_put(Dst, 125);
#line 1787 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_exception_handler_stub(dasm_State **Dst)
{
	//|->exception_handler:
	dasm_put(Dst, 148);
#line 1795 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		const void *handler = zend_get_opcode_handler_func(EG(exception_op));

		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 1799 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL handler, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
		dasm_put(Dst, 46, (ptrdiff_t)(handler));
				} else {
				if (IS_SIGNED_32BIT(handler)) {
		dasm_put(Dst, 50, ((ptrdiff_t)handler));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 1800 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 1801 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		const void *handler = EG(exception_op)->handler;

		if (GCC_GLOBAL_REGS) {
			//|	add r4, SPAD // stack alignment
			//|	EXT_JMP handler, r0
			dasm_put(Dst, 120);
					if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
			dasm_put(Dst, 151, (ptrdiff_t)(handler));
					} else {
					if (IS_SIGNED_32BIT(handler)) {
			dasm_put(Dst, 50, ((ptrdiff_t)handler));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
					}
			dasm_put(Dst, 155);
					}
#line 1807 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov FCARG1a, FP
			//|	EXT_CALL handler, r0
			dasm_put(Dst, 67);
					if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
			dasm_put(Dst, 46, (ptrdiff_t)(handler));
					} else {
					if (IS_SIGNED_32BIT(handler)) {
			dasm_put(Dst, 50, ((ptrdiff_t)handler));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 1810 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FP, aword T2 // restore FP
			//|	mov RX, aword T3 // restore IP
			//|	add r4, NR_SPAD // stack alignment
			//|	test eax, eax
			//|	jl >1
			//|	mov r0, 1 // ZEND_VM_ENTER
			//|1:
			//|	ret
			dasm_put(Dst, 159);
#line 1818 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_exception_handler_undef_stub(dasm_State **Dst)
{
	//|->exception_handler_undef:
	//|	MEM_OP2_2_ZTS mov, r0, aword, executor_globals, opline_before_exception, r0
	dasm_put(Dst, 190);
			if (IS_SIGNED_32BIT(&executor_globals.opline_before_exception)) {
	dasm_put(Dst, 193, &executor_globals.opline_before_exception);
			} else {
	dasm_put(Dst, 199, (unsigned int)(((ptrdiff_t)&executor_globals.opline_before_exception)), (unsigned int)((((ptrdiff_t)&executor_globals.opline_before_exception))>>32));
			}
#line 1828 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	test byte OP:r0->result_type, (IS_TMP_VAR|IS_VAR)
	//|	jz >1
	//|	mov eax, dword OP:r0->result.var
	//|	SET_Z_TYPE_INFO FP + r0, IS_UNDEF
	//|1:
	//|	jmp ->exception_handler
	dasm_put(Dst, 207, Dt2(->result_type), (IS_TMP_VAR|IS_VAR), Dt2(->result.var), offsetof(zval,u1.type_info), IS_UNDEF);
#line 1834 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}


static int zend_jit_exception_handler_free_op1_op2_stub(dasm_State **Dst)
{
	//|->exception_handler_free_op1_op2:
	//|	UNDEF_OPLINE_RESULT_IF_USED
	//|	test byte OP:RX->op1_type, (IS_TMP_VAR|IS_VAR)
	//|	je >9
	//|	mov eax, dword OP:RX->op1.var
	//|	add r0, FP
	//|	ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0), MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF, 0, 0, NULL
	dasm_put(Dst, 233, Dt2(->result_type), (IS_TMP_VAR|IS_VAR), Dt2(->result.var), offsetof(zval,u1.type_info), IS_UNDEF, Dt2(->op1_type), (IS_TMP_VAR|IS_VAR), Dt2(->op1.var));
		if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)));
			if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_1(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
				if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
					if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD)
			 && has_concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (NULL && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
#line 1848 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9:
	//|	test byte OP:RX->op2_type, (IS_TMP_VAR|IS_VAR)
	//|	je >9
	//|	mov eax, dword OP:RX->op2.var
	//|	add r0, FP
	//|	ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0), MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF, 0, 0, NULL
	dasm_put(Dst, 392, Dt2(->op2_type), (IS_TMP_VAR|IS_VAR), Dt2(->op2.var));
		if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)));
			if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_1(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
				if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
					if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD)
			 && has_concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (NULL && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
#line 1854 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9:
	//|	jmp ->exception_handler
	dasm_put(Dst, 413);
#line 1856 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_exception_handler_free_op2_stub(dasm_State **Dst)
{
	//|->exception_handler_free_op2:
	//|	MEM_OP2_2_ZTS mov, RX, aword, executor_globals, opline_before_exception, r0
	dasm_put(Dst, 420);
			if (IS_SIGNED_32BIT(&executor_globals.opline_before_exception)) {
	dasm_put(Dst, 423, &executor_globals.opline_before_exception);
			} else {
	dasm_put(Dst, 429, (unsigned int)(((ptrdiff_t)&executor_globals.opline_before_exception)), (unsigned int)((((ptrdiff_t)&executor_globals.opline_before_exception))>>32));
			}
#line 1863 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	UNDEF_OPLINE_RESULT_IF_USED
	//|	test byte OP:RX->op2_type, (IS_TMP_VAR|IS_VAR)
	//|	je >9
	//|	mov eax, dword OP:RX->op2.var
	//|	add r0, FP
	//|	ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0), MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF, 0, 0, NULL
	dasm_put(Dst, 235, Dt2(->result_type), (IS_TMP_VAR|IS_VAR), Dt2(->result.var), offsetof(zval,u1.type_info), IS_UNDEF, Dt2(->op2_type), (IS_TMP_VAR|IS_VAR), Dt2(->op2.var));
		if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)));
			if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_1(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
				if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
					if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD)
			 && has_concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (NULL && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
#line 1869 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9:
	//|	jmp ->exception_handler
	dasm_put(Dst, 413);
#line 1871 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_leave_function_stub(dasm_State **Dst)
{
	//|->leave_function_handler:
	dasm_put(Dst, 437);
#line 1877 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	test FCARG1d, ZEND_CALL_TOP
		//|	jnz >1
		//|	EXT_CALL zend_jit_leave_nested_func_helper, r0
		dasm_put(Dst, 440, ZEND_CALL_TOP);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_leave_nested_func_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_leave_nested_func_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_leave_nested_func_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_leave_nested_func_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_leave_nested_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_leave_nested_func_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 1881 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 1882 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 1883 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	EXT_CALL zend_jit_leave_top_func_helper, r0
		dasm_put(Dst, 64);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_leave_top_func_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_leave_top_func_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_leave_top_func_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_leave_top_func_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_leave_top_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_leave_top_func_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 1885 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 1886 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 1887 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (GCC_GLOBAL_REGS) {
			//|	add r4, SPAD
			dasm_put(Dst, 120);
#line 1890 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov FCARG2a, FP
			//|	mov FP, aword T2 // restore FP
			//|	mov RX, aword T3 // restore IP
			//|	add r4, NR_SPAD
			dasm_put(Dst, 449);
#line 1895 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	test FCARG1d, ZEND_CALL_TOP
		//|	jnz >1
		//|	EXT_JMP zend_jit_leave_nested_func_helper, r0
		dasm_put(Dst, 440, ZEND_CALL_TOP);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_leave_nested_func_helper)) {
		dasm_put(Dst, 151, (ptrdiff_t)(zend_jit_leave_nested_func_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_leave_nested_func_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_leave_nested_func_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_leave_nested_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_leave_nested_func_helper))>>32));
				}
		dasm_put(Dst, 155);
				}
#line 1899 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	EXT_JMP zend_jit_leave_top_func_helper, r0
		dasm_put(Dst, 64);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_leave_top_func_helper)) {
		dasm_put(Dst, 151, (ptrdiff_t)(zend_jit_leave_top_func_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_leave_top_func_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_leave_top_func_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_leave_top_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_leave_top_func_helper))>>32));
				}
		dasm_put(Dst, 155);
				}
#line 1901 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_leave_throw_stub(dasm_State **Dst)
{
	//|->leave_throw_handler:
	//|	// if (opline->opcode != ZEND_HANDLE_EXCEPTION) {
	dasm_put(Dst, 468);
#line 1910 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (GCC_GLOBAL_REGS) {
		//|	cmp byte OP:IP->opcode, ZEND_HANDLE_EXCEPTION
		//|	je >5
		//|	// EG(opline_before_exception) = opline;
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, opline_before_exception, IP, r0
		dasm_put(Dst, 471, Dt2(->opcode), ZEND_HANDLE_EXCEPTION);
				if (IS_SIGNED_32BIT(&executor_globals.opline_before_exception)) {
		dasm_put(Dst, 481, &executor_globals.opline_before_exception);
				} else {
		dasm_put(Dst, 487, (unsigned int)(((ptrdiff_t)&executor_globals.opline_before_exception)), (unsigned int)((((ptrdiff_t)&executor_globals.opline_before_exception))>>32));
				}
#line 1915 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|5:
		//|	// opline = EG(exception_op);
		//|	LOAD_IP_ADDR_ZTS executor_globals, exception_op
		dasm_put(Dst, 495);
			if (GCC_GLOBAL_REGS) {
				if (IS_SIGNED_32BIT(&executor_globals.exception_op)) {
		dasm_put(Dst, 498, ((ptrdiff_t)&executor_globals.exception_op));
				} else {
		dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)&executor_globals.exception_op)), (unsigned int)((((ptrdiff_t)&executor_globals.exception_op))>>32));
				}
			} else {
				if (IS_SIGNED_32BIT(&executor_globals.exception_op)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)&executor_globals.exception_op));
				} else {
		dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)&executor_globals.exception_op)), (unsigned int)((((ptrdiff_t)&executor_globals.exception_op))>>32), Dt1(->opline));
				}
			}
#line 1918 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// HANDLE_EXCEPTION()
		//|	jmp ->exception_handler
		dasm_put(Dst, 228);
#line 1920 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	GET_IP FCARG1a
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 517);
			} else {
		dasm_put(Dst, 522, Dt1(->opline));
			}
#line 1922 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	cmp byte OP:FCARG1a->opcode, ZEND_HANDLE_EXCEPTION
		//|	je >5
		//|	// EG(opline_before_exception) = opline;
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, opline_before_exception, FCARG1a, r0
		dasm_put(Dst, 472, Dt2(->opcode), ZEND_HANDLE_EXCEPTION);
				if (IS_SIGNED_32BIT(&executor_globals.opline_before_exception)) {
		dasm_put(Dst, 527, &executor_globals.opline_before_exception);
				} else {
		dasm_put(Dst, 533, (unsigned int)(((ptrdiff_t)&executor_globals.opline_before_exception)), (unsigned int)((((ptrdiff_t)&executor_globals.opline_before_exception))>>32));
				}
#line 1926 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|5:
		//|	// opline = EG(exception_op);
		//|	LOAD_IP_ADDR_ZTS executor_globals, exception_op
		dasm_put(Dst, 495);
			if (GCC_GLOBAL_REGS) {
				if (IS_SIGNED_32BIT(&executor_globals.exception_op)) {
		dasm_put(Dst, 498, ((ptrdiff_t)&executor_globals.exception_op));
				} else {
		dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)&executor_globals.exception_op)), (unsigned int)((((ptrdiff_t)&executor_globals.exception_op))>>32));
				}
			} else {
				if (IS_SIGNED_32BIT(&executor_globals.exception_op)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)&executor_globals.exception_op));
				} else {
		dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)&executor_globals.exception_op)), (unsigned int)((((ptrdiff_t)&executor_globals.exception_op))>>32), Dt1(->opline));
				}
			}
#line 1929 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, 2 // ZEND_VM_LEAVE
		//|	ret
		dasm_put(Dst, 541);
#line 1934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_icall_throw_stub(dasm_State **Dst)
{
	//|->icall_throw_handler:
	//|	// zend_rethrow_exception(zend_execute_data *execute_data)
	//|	mov IP, aword EX->opline
	//|	// if (EX(opline)->opcode != ZEND_HANDLE_EXCEPTION) {
	//|	cmp byte OP:IP->opcode, ZEND_HANDLE_EXCEPTION
	//|	je >1
	//|	// EG(opline_before_exception) = opline;
	//|	MEM_OP2_1_ZTS mov, aword, executor_globals, opline_before_exception, IP, r0
	dasm_put(Dst, 564, Dt1(->opline), Dt2(->opcode), ZEND_HANDLE_EXCEPTION);
			if (IS_SIGNED_32BIT(&executor_globals.opline_before_exception)) {
	dasm_put(Dst, 481, &executor_globals.opline_before_exception);
			} else {
	dasm_put(Dst, 487, (unsigned int)(((ptrdiff_t)&executor_globals.opline_before_exception)), (unsigned int)((((ptrdiff_t)&executor_globals.opline_before_exception))>>32));
			}
#line 1949 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|1:
	//|	// opline = EG(exception_op);
	//|	LOAD_IP_ADDR_ZTS executor_globals, exception_op
	dasm_put(Dst, 64);
		if (GCC_GLOBAL_REGS) {
			if (IS_SIGNED_32BIT(&executor_globals.exception_op)) {
	dasm_put(Dst, 498, ((ptrdiff_t)&executor_globals.exception_op));
			} else {
	dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)&executor_globals.exception_op)), (unsigned int)((((ptrdiff_t)&executor_globals.exception_op))>>32));
			}
		} else {
			if (IS_SIGNED_32BIT(&executor_globals.exception_op)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)&executor_globals.exception_op));
			} else {
	dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)&executor_globals.exception_op)), (unsigned int)((((ptrdiff_t)&executor_globals.exception_op))>>32), Dt1(->opline));
			}
		}
#line 1952 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (GCC_GLOBAL_REGS) {
	//|		mov aword EX->opline, IP
	dasm_put(Dst, 8, Dt1(->opline));
		}
#line 1955 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// HANDLE_EXCEPTION()
	//|	jmp ->exception_handler
	dasm_put(Dst, 228);
#line 1957 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_throw_cannot_pass_by_ref_stub(dasm_State **Dst)
{
	//|->throw_cannot_pass_by_ref:
	//|	mov r0, EX->opline
	//|	mov ecx, dword OP:r0->result.var
	//|	SET_Z_TYPE_INFO RX+r1, IS_UNDEF
	//|	// last EX(call) frame may be delayed
	//|	cmp RX, EX->call
	//|	je >1
	//|	mov r1, EX->call
	//|	mov EX:RX->prev_execute_data, r1
	//|	mov EX->call, RX
	//|1:
	//|	mov RX, r0
	//|	mov FCARG1d, dword OP:r0->op2.num
	//|	EXT_CALL zend_cannot_pass_by_reference, r0
	dasm_put(Dst, 580, Dt1(->opline), Dt2(->result.var), offsetof(zval,u1.type_info), IS_UNDEF, Dt1(->call), Dt1(->call), Dt1(->prev_execute_data), Dt1(->call), Dt2(->op2.num));
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_cannot_pass_by_reference)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_cannot_pass_by_reference));
			} else {
			if (IS_SIGNED_32BIT(zend_cannot_pass_by_reference)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_cannot_pass_by_reference));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_cannot_pass_by_reference)), (unsigned int)((((ptrdiff_t)zend_cannot_pass_by_reference))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 1977 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	cmp byte OP:RX->op1_type, IS_TMP_VAR
	//|	jne >9
	//|	mov eax, dword OP:RX->op1.var
	//|	add r0, FP
	//|	ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0), MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF, 0, 0, NULL
	dasm_put(Dst, 625, Dt2(->op1_type), IS_TMP_VAR, Dt2(->op1.var));
		if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)));
			if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_1(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
				if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF)) {
					if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD)
			 && has_concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (NULL && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (NULL) {
		if (NULL == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(NULL)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
#line 1982 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9:
	//|	jmp ->exception_handler
	dasm_put(Dst, 413);
#line 1984 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_undefined_offset_ex_stub(dasm_State **Dst)
{
	//|->undefined_offset_ex:
	//|	SAVE_IP
	dasm_put(Dst, 643);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
#line 1992 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jmp ->undefined_offset
	dasm_put(Dst, 646);
#line 1993 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_undefined_offset_stub(dasm_State **Dst)
{
	//|->undefined_offset:
	//|.if X64WIN
		//|	sub r4, 0x28
	//|.elif X64
		//|	sub r4, 8
	//|.else
		//|	sub r4, 12
	//|.endif
	//|	mov r0, EX->opline
	//|	mov ecx, dword OP:r0->result.var
	//|	cmp byte OP:r0->op2_type, IS_CONST
	//|	SET_Z_TYPE_INFO FP + r1, IS_NULL
	//|	jne >2
	//|.if X64
		//|	movsxd r1, dword OP:r0->op2.constant
		//|	add r0, r1
	//|.else
		//|	mov r0, aword OP:r0->op2.zv
	//|.endif
	//|	jmp >3
	//|2:
	//|	mov eax, dword OP:r0->op2.var
	//|	add r0, FP
	//|3:
	//|.if X64WIN
		//|	mov CARG1, E_WARNING
		//|	LOAD_ADDR CARG2, "Undefined array key " ZEND_LONG_FMT
		//|	mov CARG3, aword [r0]
		//|	EXT_CALL zend_error, r0
		//|	add r4, 0x28 // stack alignment
	//|.elif X64
		//|	mov CARG1, E_WARNING
		//|	LOAD_ADDR CARG2, "Undefined array key " ZEND_LONG_FMT
		dasm_put(Dst, 651, Dt1(->opline), Dt2(->result.var), Dt2(->op2_type), IS_CONST, offsetof(zval,u1.type_info), IS_NULL, Dt2(->op2.constant), Dt2(->op2.var), E_WARNING);
				if (IS_SIGNED_32BIT("Undefined array key " ZEND_LONG_FMT)) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Undefined array key " ZEND_LONG_FMT));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Undefined array key " ZEND_LONG_FMT)), (unsigned int)((((ptrdiff_t)"Undefined array key " ZEND_LONG_FMT))>>32));
				}
#line 2032 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov CARG3, aword [r0]
		//|	EXT_CALL zend_error, r0
		dasm_put(Dst, 717);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_error));
				} else {
				if (IS_SIGNED_32BIT(zend_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_error)), (unsigned int)((((ptrdiff_t)zend_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2034 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	add r4, 8 // stack alignment
	//|.else
		//|	sub r4, 4
		//|	push aword [r0]
		//|	push "Undefined array key " ZEND_LONG_FMT
		//|	push E_WARNING
		//|	EXT_CALL zend_error, r0
		//|	add r4, 28
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2044 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_undefined_index_ex_stub(dasm_State **Dst)
{
	//|->undefined_index_ex:
	//|	SAVE_IP
	dasm_put(Dst, 727);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
#line 2052 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jmp ->undefined_index
	dasm_put(Dst, 730);
#line 2053 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_undefined_index_stub(dasm_State **Dst)
{
	//|->undefined_index:
	//|.if X64WIN
		//|	sub r4, 0x28
	//|.elif X64
		//|	sub r4, 8
	//|.else
		//|	sub r4, 12
	//|.endif
	//|	mov r0, EX->opline
	//|	mov ecx, dword OP:r0->result.var
	//|	cmp byte OP:r0->op2_type, IS_CONST
	//|	SET_Z_TYPE_INFO FP + r1, IS_NULL
	//|	jne >2
	//|.if X64
		//|	movsxd r1, dword OP:r0->op2.constant
		//|   add r0, r1
	//|.else
		//|	mov r0, aword OP:r0->op2.zv
	//|.endif
	//|	jmp >3
	//|2:
	//|	mov eax, dword OP:r0->op2.var
	//|	add r0, FP
	//|3:
	//|.if X64WIN
		//|	mov CARG1, E_WARNING
		//|	LOAD_ADDR CARG2, "Undefined array key \"%s\""
		//|	mov CARG3, aword [r0]
		//|	add CARG3, offsetof(zend_string, val)
		//|	EXT_CALL zend_error, r0
		//|	add r4, 0x28
	//|.elif X64
		//|	mov CARG1, E_WARNING
		//|	LOAD_ADDR CARG2, "Undefined array key \"%s\""
		dasm_put(Dst, 735, Dt1(->opline), Dt2(->result.var), Dt2(->op2_type), IS_CONST, offsetof(zval,u1.type_info), IS_NULL, Dt2(->op2.constant), Dt2(->op2.var), E_WARNING);
				if (IS_SIGNED_32BIT("Undefined array key \"%s\"")) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Undefined array key \"%s\""));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Undefined array key \"%s\"")), (unsigned int)((((ptrdiff_t)"Undefined array key \"%s\""))>>32));
				}
#line 2093 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov CARG3, aword [r0]
		//|	add CARG3, offsetof(zend_string, val)
		//|	EXT_CALL zend_error, r0
		dasm_put(Dst, 791, offsetof(zend_string, val));
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_error));
				} else {
				if (IS_SIGNED_32BIT(zend_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_error)), (unsigned int)((((ptrdiff_t)zend_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2096 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	add r4, 8
	//|.else
		//|	sub r4, 4
		//|	mov r0, aword [r0]
		//|	add r0, offsetof(zend_string, val)
		//|	push r0
		//|	push "Undefined array key \"%s\""
		//|	push E_WARNING
		//|	EXT_CALL zend_error, r0
		//|	add r4, 28
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2108 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_cannot_add_element_ex_stub(dasm_State **Dst)
{
	//|->cannot_add_element_ex:
	//|	SAVE_IP
	dasm_put(Dst, 799);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
#line 2116 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jmp ->cannot_add_element
	dasm_put(Dst, 802);
#line 2117 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_cannot_add_element_stub(dasm_State **Dst)
{
	//|->cannot_add_element:
	//|.if X64WIN
		//|	sub r4, 0x28
	//|.elif X64
		//|	sub r4, 8
	//|.else
		//|	sub r4, 12
	//|.endif
	//|	mov r0, EX->opline
	//|	cmp byte OP:r0->result_type, IS_UNUSED
	//|	jz >1
	//|	mov eax, dword OP:r0->result.var
	//|	SET_Z_TYPE_INFO FP + r0, IS_NULL
	//|1:
	//|.if X64WIN
		//|	xor CARG1, CARG1
		//|	LOAD_ADDR CARG2, "Cannot add element to the array as the next element is already occupied"
		//|	EXT_CALL zend_throw_error, r0
		//|	add r4, 0x28
	//|.elif X64
		//|	xor CARG1, CARG1
		//|	LOAD_ADDR CARG2, "Cannot add element to the array as the next element is already occupied"
		dasm_put(Dst, 807, Dt1(->opline), Dt2(->result_type), IS_UNUSED, Dt2(->result.var), offsetof(zval,u1.type_info), IS_NULL);
				if (IS_SIGNED_32BIT("Cannot add element to the array as the next element is already occupied")) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Cannot add element to the array as the next element is already occupied"));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Cannot add element to the array as the next element is already occupied")), (unsigned int)((((ptrdiff_t)"Cannot add element to the array as the next element is already occupied"))>>32));
				}
#line 2145 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_throw_error, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_throw_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_throw_error));
				} else {
				if (IS_SIGNED_32BIT(zend_throw_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_throw_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_throw_error)), (unsigned int)((((ptrdiff_t)zend_throw_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2146 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	add r4, 8
	//|.else
		//|	sub r4, 8
		//|	push "Cannot add element to the array as the next element is already occupied"
		//|	push 0
		//|	EXT_CALL zend_throw_error, r0
		//|	add r4, 28
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2155 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_undefined_function_stub(dasm_State **Dst)
{
	//|->undefined_function:
	//|	mov r0, aword EX->opline
	//|.if X64
		//|	xor CARG1, CARG1
		//|	LOAD_ADDR CARG2, "Call to undefined function %s()"
		dasm_put(Dst, 843, Dt1(->opline));
				if (IS_SIGNED_32BIT("Call to undefined function %s()")) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Call to undefined function %s()"));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Call to undefined function %s()")), (unsigned int)((((ptrdiff_t)"Call to undefined function %s()"))>>32));
				}
#line 2166 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	movsxd CARG3, dword [r0 + offsetof(zend_op, op2.constant)]
		//|	mov CARG3, aword [r0 + CARG3]
		//|	add CARG3, offsetof(zend_string, val)
		//|	EXT_CALL zend_throw_error, r0
		dasm_put(Dst, 854, offsetof(zend_op, op2.constant), offsetof(zend_string, val));
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_throw_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_throw_error));
				} else {
				if (IS_SIGNED_32BIT(zend_throw_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_throw_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_throw_error)), (unsigned int)((((ptrdiff_t)zend_throw_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2170 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.else
		//|	mov r0, aword [r0 + offsetof(zend_op, op2.zv)]
		//|	mov r0, aword [r0]
		//|	add r0, offsetof(zend_string, val)
		//|	mov aword A3, r0
		//|	mov aword A2, "Call to undefined function %s()"
		//|	mov aword A1, 0
		//|	EXT_CALL zend_throw_error, r0
	//|.endif
	//|	jmp ->exception_handler
	dasm_put(Dst, 228);
#line 2180 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_negative_shift_stub(dasm_State **Dst)
{
	//|->negative_shift:
	//|	mov RX, EX->opline
	//|.if X64
		//|.if WIN
		//|	LOAD_ADDR CARG1, &zend_ce_arithmetic_error
		//|	mov CARG1, aword [CARG1]
		//|.else
		//|	LOAD_ADDR CARG1, zend_ce_arithmetic_error
		dasm_put(Dst, 867, Dt1(->opline));
				if (IS_SIGNED_32BIT(zend_ce_arithmetic_error)) {
		dasm_put(Dst, 702, ((ptrdiff_t)zend_ce_arithmetic_error));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)zend_ce_arithmetic_error)), (unsigned int)((((ptrdiff_t)zend_ce_arithmetic_error))>>32));
				}
#line 2193 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.endif
		//|	LOAD_ADDR CARG2, "Bit shift by negative number"
				if (IS_SIGNED_32BIT("Bit shift by negative number")) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Bit shift by negative number"));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Bit shift by negative number")), (unsigned int)((((ptrdiff_t)"Bit shift by negative number"))>>32));
				}
#line 2195 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_throw_error, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_throw_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_throw_error));
				} else {
				if (IS_SIGNED_32BIT(zend_throw_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_throw_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_throw_error)), (unsigned int)((((ptrdiff_t)zend_throw_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2196 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.else
		//|	sub r4, 8
		//|	push "Bit shift by negative number"
		//|.if WIN
		//|	LOAD_ADDR r0, &zend_ce_arithmetic_error
		//|	push aword [r0]
		//|.else
		//|	PUSH_ADDR zend_ce_arithmetic_error, r0
		//|.endif
		//|	EXT_CALL zend_throw_error, r0
		//|	add r4, 16
	//|.endif
	//|	jmp ->exception_handler_free_op1_op2
	dasm_put(Dst, 879);
#line 2209 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_mod_by_zero_stub(dasm_State **Dst)
{
	//|->mod_by_zero:
	//|	mov RX, EX->opline
	//|.if X64
		//|.if WIN
		//|	LOAD_ADDR CARG1, &zend_ce_division_by_zero_error
		//|	mov CARG1, aword [CARG1]
		//|.else
		//|	LOAD_ADDR CARG1, zend_ce_division_by_zero_error
		dasm_put(Dst, 884, Dt1(->opline));
				if (IS_SIGNED_32BIT(zend_ce_division_by_zero_error)) {
		dasm_put(Dst, 702, ((ptrdiff_t)zend_ce_division_by_zero_error));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)zend_ce_division_by_zero_error)), (unsigned int)((((ptrdiff_t)zend_ce_division_by_zero_error))>>32));
				}
#line 2222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.endif
		//|	LOAD_ADDR CARG2, "Modulo by zero"
				if (IS_SIGNED_32BIT("Modulo by zero")) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Modulo by zero"));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Modulo by zero")), (unsigned int)((((ptrdiff_t)"Modulo by zero"))>>32));
				}
#line 2224 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_throw_error, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_throw_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_throw_error));
				} else {
				if (IS_SIGNED_32BIT(zend_throw_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_throw_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_throw_error)), (unsigned int)((((ptrdiff_t)zend_throw_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2225 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.else
		//|	sub r4, 8
		//|	push "Modulo by zero"
		//|.if WIN
		//|	LOAD_ADDR r0, &zend_ce_division_by_zero_error
		//|	push aword [r0]
		//|.else
		//|	PUSH_ADDR zend_ce_division_by_zero_error, r0
		//|.endif
		//|	EXT_CALL zend_throw_error, r0
		//|	add r4, 16
	//|.endif
	//|	jmp ->exception_handler_free_op1_op2
	dasm_put(Dst, 879);
#line 2238 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_invalid_this_stub(dasm_State **Dst)
{
	//|->invalid_this:
	//|	UNDEF_OPLINE_RESULT
	//|.if X64
		//|	xor CARG1, CARG1
		//|	LOAD_ADDR CARG2, "Using $this when not in object context"
		dasm_put(Dst, 891, Dt1(->opline), Dt2(->result.var), offsetof(zval,u1.type_info), IS_UNDEF);
				if (IS_SIGNED_32BIT("Using $this when not in object context")) {
		dasm_put(Dst, 707, ((ptrdiff_t)"Using $this when not in object context"));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)"Using $this when not in object context")), (unsigned int)((((ptrdiff_t)"Using $this when not in object context"))>>32));
				}
#line 2248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_throw_error, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_throw_error)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_throw_error));
				} else {
				if (IS_SIGNED_32BIT(zend_throw_error)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_throw_error));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_throw_error)), (unsigned int)((((ptrdiff_t)zend_throw_error))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 2249 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.else
		//|	sub r4, 8
		//|	push "Using $this when not in object context"
		//|	push 0
		//|	EXT_CALL zend_throw_error, r0
		//|	add r4, 16
	//|.endif
	//|	jmp ->exception_handler
	dasm_put(Dst, 228);
#line 2257 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_double_one_stub(dasm_State **Dst)
{
	//|->one:
	//|.dword 0, 0x3ff00000
	dasm_put(Dst, 912);
#line 2264 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_hybrid_runtime_jit_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID) {
		return 1;
	}

	//|->hybrid_runtime_jit:
	//|	EXT_CALL zend_runtime_jit, r0
	dasm_put(Dst, 924);
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_runtime_jit)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_runtime_jit));
			} else {
			if (IS_SIGNED_32BIT(zend_runtime_jit)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_runtime_jit));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_runtime_jit)), (unsigned int)((((ptrdiff_t)zend_runtime_jit))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 2275 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	JMP_IP
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 107);
		} else {
	dasm_put(Dst, 112, Dt1(->opline));
		}
#line 2276 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_hybrid_profile_jit_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID) {
		return 1;
	}

	//|->hybrid_profile_jit:
	//|	// ++zend_jit_profile_counter;
	//|	.if X64
	//|		LOAD_ADDR r0, &zend_jit_profile_counter
	dasm_put(Dst, 927);
			if (IS_SIGNED_32BIT(&zend_jit_profile_counter)) {
	dasm_put(Dst, 50, ((ptrdiff_t)&zend_jit_profile_counter));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)&zend_jit_profile_counter)), (unsigned int)((((ptrdiff_t)&zend_jit_profile_counter))>>32));
			}
#line 2289 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|		inc aword [r0]
	//|	.else
	//|		inc aword [&zend_jit_profile_counter]
	//|	.endif
	//|	// op_array = (zend_op_array*)EX(func);
	//|	mov r0, EX->func
	//|	// run_time_cache = EX(run_time_cache);
	//|	mov r2, EX->run_time_cache
	//|	// jit_extension = (const void*)ZEND_FUNC_INFO(op_array);
	//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
	//|	// ++ZEND_COUNTER_INFO(op_array)
	//|	inc aword [r2 + zend_jit_profile_counter_rid * sizeof(void*)]
	//|	// return ((zend_vm_opcode_handler_t)jit_extension->orig_handler)()
	//|	jmp aword [r0 + offsetof(zend_jit_op_array_extension, orig_handler)]
	dasm_put(Dst, 930, Dt1(->func), Dt1(->run_time_cache), offsetof(zend_op_array, reserved[zend_func_info_rid]), zend_jit_profile_counter_rid * sizeof(void*), offsetof(zend_jit_op_array_extension, orig_handler));
#line 2303 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_hybrid_hot_code_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID) {
		return 1;
	}

	//|->hybrid_hot_code:
	//|	mov word [r2], ZEND_JIT_COUNTER_INIT
	//|	mov FCARG1a, FP
	//|	GET_IP FCARG2a
	dasm_put(Dst, 956, ZEND_JIT_COUNTER_INIT);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 967);
		} else {
	dasm_put(Dst, 972, Dt1(->opline));
		}
#line 2316 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	EXT_CALL zend_jit_hot_func, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_hot_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_hot_func));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_hot_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_hot_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_hot_func)), (unsigned int)((((ptrdiff_t)zend_jit_hot_func))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 2317 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	JMP_IP
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 107);
		} else {
	dasm_put(Dst, 112, Dt1(->opline));
		}
#line 2318 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

/*
 * This code is based Mike Pall's "Hashed profile counters" idea, implemented
 * in LuaJIT. The full description may be found in "LuaJIT 2.0 intellectual
 * property disclosure and research opportunities" email
 * at http://lua-users.org/lists/lua-l/2009-11/msg00089.html
 *
 * In addition we use a variation of Knuth's multiplicative hash function
 * described at https://code.i-harness.com/en/q/a21ce
 *
 * uint64_t hash(uint64_t x) {
 *    x = (x ^ (x >> 30)) * 0xbf58476d1ce4e5b9;
 *    x = (x ^ (x >> 27)) * 0x94d049bb133111eb;
 *    x = x ^ (x >> 31);
 *    return x;
 * }
 *
 * uint_32_t hash(uint32_t x) {
 *    x = ((x >> 16) ^ x) * 0x45d9f3b;
 *    x = ((x >> 16) ^ x) * 0x45d9f3b;
 *    x = (x >> 16) ^ x;
 *    return x;
 * }
 *
 */
static int zend_jit_hybrid_hot_counter_stub(dasm_State **Dst, uint32_t cost)
{
	//|	mov r0, EX->func
	//|	mov r1, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
	//|	mov r2, aword [r1 + offsetof(zend_jit_op_array_hot_extension, counter)]
	//|	sub word [r2], cost
	//|	jle ->hybrid_hot_code
	//|	GET_IP r2
	dasm_put(Dst, 977, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_hot_extension, counter), cost);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 998);
		} else {
	dasm_put(Dst, 1003, Dt1(->opline));
		}
#line 2353 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	sub r2, aword [r0 + offsetof(zend_op_array, opcodes)]
	//|	// divide by sizeof(zend_op)
	//|	.if X64
	dasm_put(Dst, 1008, offsetof(zend_op_array, opcodes));
			ZEND_ASSERT(sizeof(zend_op) == 32);
#line 2357 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|		sar r2, 2
	//|	.else
#line 2360 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|		imul r2, 0xb6db6db7
	//|	.endif
	//|	.if X64
	//|		jmp aword [r1+r2+offsetof(zend_jit_op_array_hot_extension, orig_handlers)]
	//|	.else
	//|		jmp aword [r1+r2+offsetof(zend_jit_op_array_hot_extension, orig_handlers)]
	//|	.endif
	dasm_put(Dst, 1013, offsetof(zend_jit_op_array_hot_extension, orig_handlers));
#line 2367 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_hybrid_func_hot_counter_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID || !JIT_G(hot_func)) {
		return 1;
	}

	//|->hybrid_func_hot_counter:
	dasm_put(Dst, 1025);
#line 2377 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_hybrid_hot_counter_stub(Dst,
		((ZEND_JIT_COUNTER_INIT + JIT_G(hot_func) - 1) / JIT_G(hot_func)));
}

static int zend_jit_hybrid_loop_hot_counter_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID || !JIT_G(hot_loop)) {
		return 1;
	}

	//|->hybrid_loop_hot_counter:
	dasm_put(Dst, 1028);
#line 2389 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_hybrid_hot_counter_stub(Dst,
		((ZEND_JIT_COUNTER_INIT + JIT_G(hot_loop) - 1) / JIT_G(hot_loop)));
}

static int zend_jit_hybrid_hot_trace_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID) {
		return 1;
	}

	//|->hybrid_hot_trace:
	//|	mov word [r2], ZEND_JIT_COUNTER_INIT
	//|	mov FCARG1a, FP
	//|	GET_IP FCARG2a
	dasm_put(Dst, 1031, ZEND_JIT_COUNTER_INIT);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 967);
		} else {
	dasm_put(Dst, 972, Dt1(->opline));
		}
#line 2404 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	EXT_CALL zend_jit_trace_hot_root, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_trace_hot_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_trace_hot_root));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_trace_hot_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_trace_hot_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_trace_hot_root)), (unsigned int)((((ptrdiff_t)zend_jit_trace_hot_root))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 2405 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	test eax, eax // TODO : remove this check at least for HYBRID VM ???
	//|	jl >1
	//|	MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0
	dasm_put(Dst, 1042);
			if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
	dasm_put(Dst, 88, &executor_globals.current_execute_data);
			} else {
	dasm_put(Dst, 94, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
			}
#line 2408 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	LOAD_IP
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 0, Dt1(->opline));
		}
#line 2409 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	JMP_IP
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 107);
		} else {
	dasm_put(Dst, 112, Dt1(->opline));
		}
#line 2410 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|1:
	//|	EXT_JMP zend_jit_halt_op->handler, r0
	dasm_put(Dst, 64);
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_halt_op->handler)) {
	dasm_put(Dst, 151, (ptrdiff_t)(zend_jit_halt_op->handler));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_halt_op->handler)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_halt_op->handler));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_halt_op->handler)), (unsigned int)((((ptrdiff_t)zend_jit_halt_op->handler))>>32));
			}
	dasm_put(Dst, 155);
			}
#line 2412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_hybrid_trace_counter_stub(dasm_State **Dst, uint32_t cost)
{
	//|	mov r0, EX->func
	//|	mov r1, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
	//|	mov r1, aword [r1 + offsetof(zend_jit_op_array_trace_extension, offset)]
	//|	mov r2, aword [IP + r1 + offsetof(zend_op_trace_info, counter)]
	//|	sub word [r2], cost
	//|	jle ->hybrid_hot_trace
	//|	jmp aword [IP + r1]
	dasm_put(Dst, 1049, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset), offsetof(zend_op_trace_info, counter), cost);
#line 2424 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_hybrid_func_trace_counter_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID || !JIT_G(hot_func)) {
		return 1;
	}

	//|->hybrid_func_trace_counter:
	dasm_put(Dst, 1081);
#line 2434 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_hybrid_trace_counter_stub(Dst,
		((ZEND_JIT_COUNTER_INIT + JIT_G(hot_func) - 1)  / JIT_G(hot_func)));
}

static int zend_jit_hybrid_ret_trace_counter_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID || !JIT_G(hot_return)) {
		return 1;
	}

	//|->hybrid_ret_trace_counter:
	dasm_put(Dst, 1084);
#line 2446 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_hybrid_trace_counter_stub(Dst,
		((ZEND_JIT_COUNTER_INIT + JIT_G(hot_return) - 1) / JIT_G(hot_return)));
}

static int zend_jit_hybrid_loop_trace_counter_stub(dasm_State **Dst)
{
	if (zend_jit_vm_kind != ZEND_VM_KIND_HYBRID || !JIT_G(hot_loop)) {
		return 1;
	}

	//|->hybrid_loop_trace_counter:
	dasm_put(Dst, 1087);
#line 2458 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_hybrid_trace_counter_stub(Dst,
		((ZEND_JIT_COUNTER_INIT + JIT_G(hot_loop) - 1) / JIT_G(hot_loop)));
}

static int zend_jit_trace_halt_stub(dasm_State **Dst)
{
	//|->trace_halt:
	dasm_put(Dst, 1090);
#line 2466 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 2468 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_JMP zend_jit_halt_op->handler, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_halt_op->handler)) {
		dasm_put(Dst, 151, (ptrdiff_t)(zend_jit_halt_op->handler));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_halt_op->handler)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_halt_op->handler));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_halt_op->handler)), (unsigned int)((((ptrdiff_t)zend_jit_halt_op->handler))>>32));
				}
		dasm_put(Dst, 155);
				}
#line 2469 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		//|	xor IP, IP // PC must be zero
		//|	ret
		dasm_put(Dst, 1093);
#line 2473 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, -1 // ZEND_VM_RETURN
		//|	ret
		dasm_put(Dst, 1103);
#line 2479 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_trace_exit_stub(dasm_State **Dst)
{
	//|->trace_exit:
	//|
	//|	// Save CPU registers
	//|.if X64
	//|	sub r4, 16*8+16*8-8 /* CPU regs + SSE regs */
	//|	mov aword [r4+15*8], r15
	//|	mov aword [r4+11*8], r11
	//|	mov aword [r4+10*8], r10
	//|	mov aword [r4+9*8], r9
	//|	mov aword [r4+8*8], r8
	//|	mov aword [r4+7*8], rdi
	//|	mov aword [r4+6*8], rsi
	//|	mov aword [r4+2*8], rdx
	//|	mov aword [r4+1*8], rcx
	//|	mov aword [r4+0*8], rax
	//|	mov FCARG1a, aword [r4+16*8+16*8-8] // exit_num = POP
	//|	mov FCARG2a, r4
	//|	movsd qword [r4+16*8+15*8], xmm15
	//|	movsd qword [r4+16*8+14*8], xmm14
	//|	movsd qword [r4+16*8+13*8], xmm13
	//|	movsd qword [r4+16*8+12*8], xmm12
	//|	movsd qword [r4+16*8+11*8], xmm11
	//|	movsd qword [r4+16*8+10*8], xmm10
	//|	movsd qword [r4+16*8+9*8], xmm9
	dasm_put(Dst, 1130, 16*8+16*8-8 /* CPU regs + SSE regs */, 15*8, 11*8, 10*8, 9*8, 8*8, 7*8, 6*8, 2*8, 1*8, 0*8, 16*8+16*8-8, 16*8+15*8, 16*8+14*8, 16*8+13*8, 16*8+12*8, 16*8+11*8, 16*8+10*8);
#line 2509 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	movsd qword [r4+16*8+8*8], xmm8
	//|	movsd qword [r4+16*8+7*8], xmm7
	//|	movsd qword [r4+16*8+6*8], xmm6
	//|	movsd qword [r4+16*8+5*8], xmm5
	//|	movsd qword [r4+16*8+4*8], xmm4
	//|	movsd qword [r4+16*8+3*8], xmm3
	//|	movsd qword [r4+16*8+2*8], xmm2
	//|	movsd qword [r4+16*8+1*8], xmm1
	//|	movsd qword [r4+16*8+0*8], xmm0
	//|.if X64WIN
	//|	sub r4, 32 /* shadow space */
	//|.endif
	//|.else
	//|	sub r4, 8*4+8*8-4 /* CPU regs + SSE regs */
	//|	mov aword [r4+7*4], edi
	//|	mov aword [r4+2*4], edx
	//|	mov aword [r4+1*4], ecx
	//|	mov aword [r4+0*4], eax
	//|	mov FCARG1a, aword [r4+8*4+8*8-4] // exit_num = POP
	//|	mov FCARG2a, r4
	//|	movsd qword [r4+8*4+7*8], xmm7
	//|	movsd qword [r4+8*4+6*8], xmm6
	//|	movsd qword [r4+8*4+5*8], xmm5
	//|	movsd qword [r4+8*4+4*8], xmm4
	//|	movsd qword [r4+8*4+3*8], xmm3
	//|	movsd qword [r4+8*4+2*8], xmm2
	//|	movsd qword [r4+8*4+1*8], xmm1
	//|	movsd qword [r4+8*4+0*8], xmm0
	//|.endif
	//|
	//|	// EX(opline) = opline
	//|	SAVE_IP
	dasm_put(Dst, 1261, 16*8+9*8, 16*8+8*8, 16*8+7*8, 16*8+6*8, 16*8+5*8, 16*8+4*8, 16*8+3*8, 16*8+2*8, 16*8+1*8, 16*8+0*8);
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
#line 2541 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// zend_jit_trace_exit(trace_num, exit_num)
	//|	EXT_CALL zend_jit_trace_exit, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_trace_exit)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_trace_exit));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_trace_exit)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_trace_exit));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_trace_exit)), (unsigned int)((((ptrdiff_t)zend_jit_trace_exit))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 2543 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.if X64WIN
	//|	add r4, 16*8+16*8+32 /* CPU regs + SSE regs + shadow space */
	//|.elif X64
	//|	add r4, 16*8+16*8 /* CPU regs + SSE regs */
	//|.else
	//|	add r4, 8*4+8*8 /* CPU regs + SSE regs */
	//|.endif
	dasm_put(Dst, 1344, 16*8+16*8 /* CPU regs + SSE regs */);
#line 2550 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	//|	test eax, eax
	//|	jne >1
	dasm_put(Dst, 1349);
#line 2553 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	//|	// execute_data = EG(current_execute_data)
	//|	MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0
			if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
	dasm_put(Dst, 88, &executor_globals.current_execute_data);
			} else {
	dasm_put(Dst, 94, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
			}
#line 2556 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// opline = EX(opline)
	//|	LOAD_IP
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 0, Dt1(->opline));
		}
#line 2558 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 2561 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 2562 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		//|	JMP_IP
		dasm_put(Dst, 120);
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 2565 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, 1 // ZEND_VM_ENTER
		//|	ret
		dasm_put(Dst, 125);
#line 2571 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|1:
	//|	jl ->trace_halt
	dasm_put(Dst, 1356);
#line 2575 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	//|	// execute_data = EG(current_execute_data)
	//|	MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0
			if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
	dasm_put(Dst, 88, &executor_globals.current_execute_data);
			} else {
	dasm_put(Dst, 94, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
			}
#line 2578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// opline = EX(opline)
	//|	LOAD_IP
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 0, Dt1(->opline));
		}
#line 2580 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	//|	// check for interrupt (try to avoid this ???)
	//|	MEM_OP2_1_ZTS cmp, byte, executor_globals, vm_interrupt, 0, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_interrupt)) {
	dasm_put(Dst, 27, &executor_globals.vm_interrupt);
			} else {
	dasm_put(Dst, 33, (unsigned int)(((ptrdiff_t)&executor_globals.vm_interrupt)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_interrupt))>>32));
			}
#line 2583 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jne ->interrupt_handler
	dasm_put(Dst, 1363);
#line 2584 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 2587 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov r0, EX->func
		//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
		//|	mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
		//|	jmp aword [IP + r0]
		dasm_put(Dst, 1368, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset));
#line 2591 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		//|	mov r0, EX->func
		//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
		//|	mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
		//|	jmp aword [IP + r0]
		dasm_put(Dst, 1386, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset));
#line 2597 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	mov IP, aword EX->opline
		//|	mov FCARG1a, FP
		//|	mov r0, EX->func
		//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
		//|	mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
		//|	call aword [IP + r0]
		//|	test eax, eax
		//|	jl ->trace_halt
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, 1 // ZEND_VM_ENTER
		//|	ret
		dasm_put(Dst, 1408, Dt1(->opline), Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset));
#line 2611 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_trace_escape_stub(dasm_State **Dst)
{
	//|->trace_escape:
	//|
	dasm_put(Dst, 1462);
#line 2620 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 2622 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 2623 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		//|	JMP_IP
		dasm_put(Dst, 120);
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 2626 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, 1 // ZEND_VM_ENTER
		//|	ret
		dasm_put(Dst, 125);
#line 2632 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

/* Keep 32 exit points in a single code block */
#define ZEND_JIT_EXIT_POINTS_SPACING   4  // push byte + short jmp = bytes
#define ZEND_JIT_EXIT_POINTS_PER_GROUP 32 // number of continuous exit points

static int zend_jit_trace_exit_group_stub(dasm_State **Dst, uint32_t n)
{
	uint32_t i;

	for (i = 0; i < ZEND_JIT_EXIT_POINTS_PER_GROUP - 1; i++) {
		//|	push byte i
		//|	.byte 0xeb, (4*(ZEND_JIT_EXIT_POINTS_PER_GROUP-i)-6) // jmp >1
		dasm_put(Dst, 1465, i, (4*(ZEND_JIT_EXIT_POINTS_PER_GROUP-i)-6));
#line 2648 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	push byte i
	//|// 1:
	//|	add aword [r4], n
	//|	jmp ->trace_exit
	dasm_put(Dst, 1471, i, n);
#line 2653 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

#ifdef CONTEXT_THREADED_JIT
static int zend_jit_context_threaded_call_stub(dasm_State **Dst)
{
	//|->context_threaded_call:
	//|	pop r0
	dasm_put(Dst, 1484);
#line 2662 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 2664 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp aword [IP]
		dasm_put(Dst, 107);
#line 2665 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		//|	jmp aword [IP]
		dasm_put(Dst, 1488);
#line 2668 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		ZEND_UNREACHABLE();
		// TODO: context threading can't work without GLOBAL REGS because we have to change
		//       the value of execute_data in execute_ex()
		//|	mov FCARG1a, FP
		//|	mov r0, aword [FP]
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	jmp aword [r0]
		dasm_put(Dst, 1497);
#line 2678 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}
#endif

static int zend_jit_assign_to_variable(dasm_State    **Dst,
                                       const zend_op  *opline,
                                       zend_jit_addr   var_use_addr,
                                       zend_jit_addr   var_addr,
                                       uint32_t        var_info,
                                       uint32_t        var_def_info,
                                       zend_uchar      val_type,
                                       zend_jit_addr   val_addr,
                                       uint32_t        val_info,
                                       zend_jit_addr   res_addr,
                                       zend_bool       check_exception);

static int zend_jit_assign_const_stub(dasm_State **Dst)
{
	zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
	uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN;

	//|->assign_const:
	//|.if X64WIN
	//|	sub r4, 0x28
	//|.elif X64
	//|	sub r4, 8
	//|.else
	//|	sub r4, 12
	//|.endif
	dasm_put(Dst, 1522);
#line 2709 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!zend_jit_assign_to_variable(
			Dst, NULL,
			var_addr, var_addr, -1, -1,
			IS_CONST, val_addr, val_info,
			0, 0)) {
		return 0;
	}
	//|.if X64WIN
	//|	add r4, 0x28
	//|.elif X64
	//|	add r4, 8
	//|.else
	//|	add r4, 12
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2724 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_assign_tmp_stub(dasm_State **Dst)
{
	zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
	uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN;

	//|->assign_tmp:
	//|.if X64WIN
	//|	sub r4, 0x28
	//|.elif X64
	//|	sub r4, 8
	//|.else
	//|	sub r4, 12
	//|.endif
	dasm_put(Dst, 1530);
#line 2741 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!zend_jit_assign_to_variable(
			Dst, NULL,
			var_addr, var_addr, -1, -1,
			IS_TMP_VAR, val_addr, val_info,
			0, 0)) {
		return 0;
	}
	//|.if X64WIN
	//|	add r4, 0x28
	//|.elif X64
	//|	add r4, 8
	//|.else
	//|	add r4, 12
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2756 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_assign_var_stub(dasm_State **Dst)
{
	zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
	uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF;

	//|->assign_var:
	//|.if X64WIN
	//|	sub r4, 0x28
	//|.elif X64
	//|	sub r4, 8
	//|.else
	//|	sub r4, 12
	//|.endif
	dasm_put(Dst, 1538);
#line 2773 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!zend_jit_assign_to_variable(
			Dst, NULL,
			var_addr, var_addr, -1, -1,
			IS_VAR, val_addr, val_info,
			0, 0)) {
		return 0;
	}
	//|.if X64WIN
	//|	add r4, 0x28
	//|.elif X64
	//|	add r4, 8
	//|.else
	//|	add r4, 12
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2788 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_assign_cv_noref_stub(dasm_State **Dst)
{
	zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
	uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN/*|MAY_BE_UNDEF*/;

	//|->assign_cv_noref:
	//|.if X64WIN
	//|	sub r4, 0x28
	//|.elif X64
	//|	sub r4, 8
	//|.else
	//|	sub r4, 12
	//|.endif
	dasm_put(Dst, 1546);
#line 2805 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!zend_jit_assign_to_variable(
			Dst, NULL,
			var_addr, var_addr, -1, -1,
			IS_CV, val_addr, val_info,
			0, 0)) {
		return 0;
	}
	//|.if X64WIN
	//|	add r4, 0x28
	//|.elif X64
	//|	add r4, 8
	//|.else
	//|	add r4, 12
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2820 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_assign_cv_stub(dasm_State **Dst)
{
	zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
	uint32_t val_info = MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN|MAY_BE_REF/*|MAY_BE_UNDEF*/;

	//|->assign_cv:
	//|.if X64WIN
	//|	sub r4, 0x28
	//|.elif X64
	//|	sub r4, 8
	//|.else
	//|	sub r4, 12
	//|.endif
	dasm_put(Dst, 1554);
#line 2837 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!zend_jit_assign_to_variable(
			Dst, NULL,
			var_addr, var_addr, -1, -1,
			IS_CV, val_addr, val_info,
			0, 0)) {
		return 0;
	}
	//|.if X64WIN
	//|	add r4, 0x28
	//|.elif X64
	//|	add r4, 8
	//|.else
	//|	add r4, 12
	//|.endif
	//|	ret
	dasm_put(Dst, 721);
#line 2852 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static const zend_jit_stub zend_jit_stubs[] = {
	JIT_STUB(interrupt_handler),
	JIT_STUB(exception_handler),
	JIT_STUB(exception_handler_undef),
	JIT_STUB(exception_handler_free_op1_op2),
	JIT_STUB(exception_handler_free_op2),
	JIT_STUB(leave_function),
	JIT_STUB(leave_throw),
	JIT_STUB(icall_throw),
	JIT_STUB(throw_cannot_pass_by_ref),
	JIT_STUB(undefined_offset),
	JIT_STUB(undefined_index),
	JIT_STUB(cannot_add_element),
	JIT_STUB(undefined_offset_ex),
	JIT_STUB(undefined_index_ex),
	JIT_STUB(cannot_add_element_ex),
	JIT_STUB(undefined_function),
	JIT_STUB(negative_shift),
	JIT_STUB(mod_by_zero),
	JIT_STUB(invalid_this),
	JIT_STUB(trace_halt),
	JIT_STUB(trace_exit),
	JIT_STUB(trace_escape),
	JIT_STUB(hybrid_runtime_jit),
	JIT_STUB(hybrid_profile_jit),
	JIT_STUB(hybrid_hot_code),
	JIT_STUB(hybrid_func_hot_counter),
	JIT_STUB(hybrid_loop_hot_counter),
	JIT_STUB(hybrid_hot_trace),
	JIT_STUB(hybrid_func_trace_counter),
	JIT_STUB(hybrid_ret_trace_counter),
	JIT_STUB(hybrid_loop_trace_counter),
	JIT_STUB(assign_const),
	JIT_STUB(assign_tmp),
	JIT_STUB(assign_var),
	JIT_STUB(assign_cv_noref),
	JIT_STUB(assign_cv),
	JIT_STUB(double_one),
#ifdef CONTEXT_THREADED_JIT
	JIT_STUB(context_threaded_call),
#endif
};

#if ZTS && defined(ZEND_WIN32)
extern uint32_t _tls_index;
extern char *_tls_start;
extern char *_tls_end;
#endif

static int zend_jit_setup(void)
{
	if (!zend_cpu_supports_sse2()) {
		zend_error(E_CORE_ERROR, "CPU doesn't support SSE2");
		return FAILURE;
	}
	allowed_opt_flags = 0;
	if (zend_cpu_supports_avx()) {
		allowed_opt_flags |= ZEND_JIT_CPU_AVX;
	}

#if ZTS
# ifdef _WIN64
	tsrm_tls_index  = _tls_index * sizeof(void*);

	/* To find offset of "_tsrm_ls_cache" in TLS segment we perform a linear scan of local TLS memory */
	/* Probably, it might be better solution */
	do {
		void ***tls_mem = ((void**)__readgsqword(0x58))[_tls_index];
		void *val = _tsrm_ls_cache;
		size_t offset = 0;
		size_t size = (char*)&_tls_end - (char*)&_tls_start;

		while (offset < size) {
			if (*tls_mem == val) {
				tsrm_tls_offset = offset;
				break;
			}
			tls_mem++;
			offset += sizeof(void*);
		}
		if (offset >= size) {
			// TODO: error message ???
			return FAILURE;
		}
	} while(0);
# elif ZEND_WIN32
	tsrm_tls_index  = _tls_index * sizeof(void*);

	/* To find offset of "_tsrm_ls_cache" in TLS segment we perform a linear scan of local TLS memory */
	/* Probably, it might be better solution */
	do {
		void ***tls_mem = ((void***)__readfsdword(0x2c))[_tls_index];
		void *val = _tsrm_ls_cache;
		size_t offset = 0;
		size_t size = (char*)&_tls_end - (char*)&_tls_start;

		while (offset < size) {
			if (*tls_mem == val) {
				tsrm_tls_offset = offset;
				break;
			}
			tls_mem++;
			offset += sizeof(void*);
		}
		if (offset >= size) {
			// TODO: error message ???
			return FAILURE;
		}
	} while(0);
# elif defined(__APPLE__) && defined(__x86_64__)
	tsrm_ls_cache_tcb_offset = tsrm_get_ls_cache_tcb_offset();
	if (tsrm_ls_cache_tcb_offset == 0) {
		size_t *ti;
		__asm__(
			"leaq __tsrm_ls_cache(%%rip),%0"
			: "=r" (ti));
		tsrm_tls_offset = ti[2];
		tsrm_tls_index = ti[1] * 8;
	}
# elif defined(__GNUC__) && defined(__x86_64__)
	tsrm_ls_cache_tcb_offset = tsrm_get_ls_cache_tcb_offset();
	if (tsrm_ls_cache_tcb_offset == 0) {
#if defined(__has_attribute) && __has_attribute(tls_model) && !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__)
		size_t ret;

		asm ("movq _tsrm_ls_cache@gottpoff(%%rip),%0"
			: "=r" (ret));
		tsrm_ls_cache_tcb_offset = ret;
#else
		size_t *ti;

		__asm__(
			"leaq _tsrm_ls_cache@tlsgd(%%rip), %0\n"
			: "=a" (ti));
		tsrm_tls_offset = ti[1];
		tsrm_tls_index = ti[0] * 16;
#endif
	}
# elif defined(__GNUC__) && defined(__i386__)
	tsrm_ls_cache_tcb_offset = tsrm_get_ls_cache_tcb_offset();
	if (tsrm_ls_cache_tcb_offset == 0) {
#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__MUSL__)
		size_t ret;

		asm ("leal _tsrm_ls_cache@ntpoff,%0\n"
			: "=a" (ret));
		tsrm_ls_cache_tcb_offset = ret;
#else
		size_t *ti, _ebx, _ecx, _edx;

		__asm__(
			"call 1f\n"
			".subsection 1\n"
			"1:\tmovl (%%esp), %%ebx\n\t"
			"ret\n"
			".previous\n\t"
			"addl $_GLOBAL_OFFSET_TABLE_, %%ebx\n\t"
			"leal _tsrm_ls_cache@tlsldm(%%ebx), %0\n\t"
			"call ___tls_get_addr@plt\n\t"
			"leal _tsrm_ls_cache@tlsldm(%%ebx), %0\n"
			: "=a" (ti), "=&b" (_ebx), "=&c" (_ecx), "=&d" (_edx));
		tsrm_tls_offset = ti[1];
		tsrm_tls_index = ti[0] * 8;
#endif
	}
# endif
#endif

	return SUCCESS;
}

static ZEND_ATTRIBUTE_UNUSED int zend_jit_trap(dasm_State **Dst)
{
	//|	int3
	dasm_put(Dst, 1562);
#line 3029 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_align_func(dasm_State **Dst)
{
	reuse_ip = 0;
	delayed_call_chain = 0;
	last_valid_opline = NULL;
	use_last_vald_opline = 0;
	track_last_valid_opline = 0;
	jit_return_label = -1;
	//|.align 16
	dasm_put(Dst, 1564);
#line 3041 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_prologue(dasm_State **Dst)
{
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	SUB_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 1567);
		#endif
#line 3048 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (GCC_GLOBAL_REGS) {
		//|	sub r4, SPAD // stack alignment
		dasm_put(Dst, 1573);
#line 3050 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	sub r4, NR_SPAD // stack alignment
		//|	mov aword T2, FP // save FP
		//|	mov aword T3, RX // save IP
		//|	mov FP, FCARG1a
		dasm_put(Dst, 1579);
#line 3055 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_label(dasm_State **Dst, unsigned int label)
{
	//|=>label:
	dasm_put(Dst, 320, label);
#line 3062 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_save_call_chain(dasm_State **Dst, uint32_t call_level)
{
	//|	// call->prev_execute_data = EX(call);
	if (call_level == 1) {
		//|	mov aword EX:RX->prev_execute_data, 0
		dasm_put(Dst, 1599, Dt1(->prev_execute_data));
#line 3070 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	mov r0, EX->call
		//|	mov EX:RX->prev_execute_data, r0
		dasm_put(Dst, 1608, Dt1(->call), Dt1(->prev_execute_data));
#line 3073 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	// EX(call) = call;
	//|	mov EX->call, RX
	dasm_put(Dst, 8, Dt1(->call));
#line 3076 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	delayed_call_chain = 0;

	return 1;
}

static int zend_jit_set_ip(dasm_State **Dst, const zend_op *opline)
{
	if (last_valid_opline == opline) {
		zend_jit_use_last_valid_opline();
	} else if (GCC_GLOBAL_REGS && last_valid_opline) {
		zend_jit_use_last_valid_opline();
		//|	ADD_IP (opline - last_valid_opline) * sizeof(zend_op);
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 1617, (opline - last_valid_opline) * sizeof(zend_op));
			} else {
		dasm_put(Dst, 1622, Dt1(->opline), (opline - last_valid_opline) * sizeof(zend_op));
			}
#line 3089 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	LOAD_IP_ADDR opline
			if (GCC_GLOBAL_REGS) {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 498, ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32));
				}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
			}
#line 3091 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	zend_jit_set_last_valid_opline(opline);

	return 1;
}

static int zend_jit_set_ip_ex(dasm_State **Dst, const zend_op *opline, bool set_ip_reg)
{
	if (last_valid_opline == opline) {
		zend_jit_use_last_valid_opline();
	} else if (GCC_GLOBAL_REGS && last_valid_opline) {
		zend_jit_use_last_valid_opline();
		//|	ADD_IP (opline - last_valid_opline) * sizeof(zend_op);
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 1617, (opline - last_valid_opline) * sizeof(zend_op));
			} else {
		dasm_put(Dst, 1622, Dt1(->opline), (opline - last_valid_opline) * sizeof(zend_op));
			}
#line 3104 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (!GCC_GLOBAL_REGS && set_ip_reg) {
		//|	LOAD_ADDR RX, opline
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 498, ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32));
				}
#line 3106 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov aword EX->opline, RX
		dasm_put(Dst, 8, Dt1(->opline));
#line 3107 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	LOAD_IP_ADDR opline
			if (GCC_GLOBAL_REGS) {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 498, ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32));
				}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
			}
#line 3109 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	zend_jit_set_last_valid_opline(opline);

	return 1;
}

static int zend_jit_set_valid_ip(dasm_State **Dst, const zend_op *opline)
{
	if (delayed_call_chain) {
		if (!zend_jit_save_call_chain(Dst, delayed_call_level)) {
			return 0;
		}
	}
	if (!zend_jit_set_ip(Dst, opline)) {
		return 0;
	}
	reuse_ip = 0;
	return 1;
}

static int zend_jit_check_timeout(dasm_State **Dst, const zend_op *opline, const void *exit_addr)
{
#if 0
	if (!zend_jit_set_valid_ip(Dst, opline)) {
		return 0;
	}
	//|	MEM_OP2_1_ZTS cmp, byte, executor_globals, vm_interrupt, 0, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_interrupt)) {
	dasm_put(Dst, 27, &executor_globals.vm_interrupt);
			} else {
	dasm_put(Dst, 33, (unsigned int)(((ptrdiff_t)&executor_globals.vm_interrupt)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_interrupt))>>32));
			}
#line 3136 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jne ->interrupt_handler
	dasm_put(Dst, 1363);
#line 3137 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
	//|	MEM_OP2_1_ZTS cmp, byte, executor_globals, vm_interrupt, 0, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_interrupt)) {
	dasm_put(Dst, 27, &executor_globals.vm_interrupt);
			} else {
	dasm_put(Dst, 33, (unsigned int)(((ptrdiff_t)&executor_globals.vm_interrupt)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_interrupt))>>32));
			}
#line 3139 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (exit_addr) {
		//|	jne &exit_addr
		dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 3141 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (last_valid_opline == opline) {
				zend_jit_use_last_valid_opline();
		//|	jne ->interrupt_handler
		dasm_put(Dst, 1363);
#line 3144 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	jne >1
		//|.cold_code
		dasm_put(Dst, 286);
#line 3147 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	LOAD_IP_ADDR opline
		dasm_put(Dst, 64);
			if (GCC_GLOBAL_REGS) {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 498, ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32));
				}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
			}
#line 3149 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp ->interrupt_handler
		//|.code
		dasm_put(Dst, 1632);
#line 3151 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
#endif
	return 1;
}

static int zend_jit_trace_end_loop(dasm_State **Dst, int loop_label, const void *timeout_exit_addr)
{
	if (timeout_exit_addr) {
		//|	MEM_OP2_1_ZTS cmp, byte, executor_globals, vm_interrupt, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.vm_interrupt)) {
		dasm_put(Dst, 27, &executor_globals.vm_interrupt);
				} else {
		dasm_put(Dst, 33, (unsigned int)(((ptrdiff_t)&executor_globals.vm_interrupt)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_interrupt))>>32));
				}
#line 3160 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	je =>loop_label
		//|	jmp &timeout_exit_addr
		dasm_put(Dst, 1638, loop_label, (ptrdiff_t)(timeout_exit_addr));
#line 3162 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	jmp =>loop_label
		dasm_put(Dst, 1645, loop_label);
#line 3164 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_check_exception(dasm_State **Dst)
{
	//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
			if (IS_SIGNED_32BIT(&executor_globals.exception)) {
	dasm_put(Dst, 72, &executor_globals.exception);
			} else {
	dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
			}
#line 3171 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jne ->exception_handler
	dasm_put(Dst, 1649);
#line 3172 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_check_exception_undef_result(dasm_State **Dst, const zend_op *opline)
{
	if (opline->result_type & (IS_TMP_VAR|IS_VAR)) {
		//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.exception)) {
		dasm_put(Dst, 72, &executor_globals.exception);
				} else {
		dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
				}
#line 3179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jne ->exception_handler_undef
		dasm_put(Dst, 1654);
#line 3180 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		return 1;
	}
	return zend_jit_check_exception(Dst);
}

static int zend_jit_trace_begin(dasm_State **Dst, uint32_t trace_num, zend_jit_trace_info *parent, uint32_t exit_num)
{
	zend_regset regset = ZEND_REGSET_SCRATCH;

#if ZTS
	if (1) {
#else
	if ((sizeof(void*) == 8 && !IS_SIGNED_32BIT(&EG(jit_trace_num)))) {
#endif
		/* assignment to EG(jit_trace_num) shouldn't clober CPU register used by deoptimizer */
		if (parent) {
			int i;
			int parent_vars_count = parent->exit_info[exit_num].stack_size;
			zend_jit_trace_stack *parent_stack =
				parent->stack_map +
				parent->exit_info[exit_num].stack_offset;

			for (i = 0; i < parent_vars_count; i++) {
				if (STACK_REG(parent_stack, i) != ZREG_NONE) {
					if (STACK_REG(parent_stack, i) < ZREG_NUM) {
						ZEND_REGSET_EXCL(regset, STACK_REG(parent_stack, i));
					} else if (STACK_REG(parent_stack, i) == ZREG_ZVAL_COPY_R0) {
						ZEND_REGSET_EXCL(regset, ZREG_R0);
					}
				}
			}
		}
	}

	if (parent && parent->exit_info[exit_num].flags & ZEND_JIT_EXIT_METHOD_CALL) {
		ZEND_REGSET_EXCL(regset, ZREG_R0);
	}

	current_trace_num = trace_num;

	//|	// EG(jit_trace_num) = trace_num;
	if (regset == ZEND_REGSET_EMPTY) {
		//|	push r0
		//|	MEM_OP2_1_ZTS mov, dword, executor_globals, jit_trace_num, trace_num, r0
		dasm_put(Dst, 1659);
				if (IS_SIGNED_32BIT(&executor_globals.jit_trace_num)) {
		dasm_put(Dst, 1661, &executor_globals.jit_trace_num, trace_num);
				} else {
		dasm_put(Dst, 1667, (unsigned int)(((ptrdiff_t)&executor_globals.jit_trace_num)), (unsigned int)((((ptrdiff_t)&executor_globals.jit_trace_num))>>32), trace_num);
				}
#line 3224 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	pop r0
		dasm_put(Dst, 1486);
#line 3225 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		zend_reg tmp = ZEND_REGSET_FIRST(regset);

		//|	MEM_OP2_1_ZTS mov, dword, executor_globals, jit_trace_num, trace_num, Ra(tmp)
				if (IS_SIGNED_32BIT(&executor_globals.jit_trace_num)) {
		dasm_put(Dst, 1661, &executor_globals.jit_trace_num, trace_num);
				} else {
		dasm_put(Dst, 1675, (tmp), (unsigned int)(((ptrdiff_t)&executor_globals.jit_trace_num)), (unsigned int)((((ptrdiff_t)&executor_globals.jit_trace_num))>>32), (tmp), 0, trace_num);
				}
#line 3229 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		(void)tmp;
	}

	return 1;
}

/* This taken from LuaJIT. Thanks to Mike Pall. */
static uint32_t _asm_x86_inslen(const uint8_t* p)
{
	static const uint8_t map_op1[256] = {
		0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x20,
		0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x51,0x51,
		0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51,
		0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51,0x92,0x92,0x92,0x92,0x52,0x45,0x10,0x51,
#if defined(__x86_64__) || defined(_M_X64)
		0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x14,0x14,0x14,0x14,0x14,0x14,0x14,0x14,
#else
		0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,
#endif
		0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,
		0x51,0x51,0x92,0x92,0x10,0x10,0x12,0x11,0x45,0x86,0x52,0x93,0x51,0x51,0x51,0x51,
		0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,
		0x93,0x86,0x93,0x93,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
		0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x51,0x47,0x51,0x51,0x51,0x51,0x51,
#if defined(__x86_64__) || defined(_M_X64)
		0x59,0x59,0x59,0x59,0x51,0x51,0x51,0x51,0x52,0x45,0x51,0x51,0x51,0x51,0x51,0x51,
#else
		0x55,0x55,0x55,0x55,0x51,0x51,0x51,0x51,0x52,0x45,0x51,0x51,0x51,0x51,0x51,0x51,
#endif
		0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x05,0x05,0x05,0x05,0x05,0x05,0x05,0x05,
		0x93,0x93,0x53,0x51,0x70,0x71,0x93,0x86,0x54,0x51,0x53,0x51,0x51,0x52,0x51,0x51,
		0x92,0x92,0x92,0x92,0x52,0x52,0x51,0x51,0x92,0x92,0x92,0x92,0x92,0x92,0x92,0x92,
		0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x45,0x45,0x47,0x52,0x51,0x51,0x51,0x51,
		0x10,0x51,0x10,0x10,0x51,0x51,0x63,0x66,0x51,0x51,0x51,0x51,0x51,0x51,0x92,0x92
	};
	static const uint8_t map_op2[256] = {
		0x93,0x93,0x93,0x93,0x52,0x52,0x52,0x52,0x52,0x52,0x51,0x52,0x51,0x93,0x52,0x94,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x53,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x34,0x51,0x35,0x51,0x51,0x51,0x51,0x51,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x53,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x94,0x54,0x54,0x54,0x93,0x93,0x93,0x52,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,0x46,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x52,0x52,0x52,0x93,0x94,0x93,0x51,0x51,0x52,0x52,0x52,0x93,0x94,0x93,0x93,0x93,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x94,0x93,0x93,0x93,0x93,0x93,
		0x93,0x93,0x94,0x93,0x94,0x94,0x94,0x93,0x52,0x52,0x52,0x52,0x52,0x52,0x52,0x52,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,
		0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x93,0x52
	};
	uint32_t result = 0;
	uint32_t prefixes = 0;
	uint32_t x = map_op1[*p];

	for (;;) {
		switch (x >> 4) {
			case 0:
				return result + x + (prefixes & 4);
			case 1:
				prefixes |= x;
				x = map_op1[*++p];
				result++;
				break;
			case 2:
				x = map_op2[*++p];
				break;
			case 3:
				p++;
				goto mrm;
			case 4:
				result -= (prefixes & 2);
				/* fallthrough */
			case 5:
				return result + (x & 15);
			case 6: /* Group 3. */
				if (p[1] & 0x38) {
					x = 2;
				} else if ((prefixes & 2) && (x == 0x66)) {
					x = 4;
				}
				goto mrm;
			case 7: /* VEX c4/c5. */
#if !defined(__x86_64__) && !defined(_M_X64)
				if (p[1] < 0xc0) {
					x = 2;
					goto mrm;
				}
#endif
				if (x == 0x70) {
					x = *++p & 0x1f;
					result++;
					if (x >= 2) {
						p += 2;
						result += 2;
						goto mrm;
					}
				}
				p++;
				result++;
				x = map_op2[*++p];
				break;
			case 8:
				result -= (prefixes & 2);
				/* fallthrough */
			case 9:
mrm:
				/* ModR/M and possibly SIB. */
				result += (x & 15);
				x = *++p;
				switch (x >> 6) {
					case 0:
						if ((x & 7) == 5) {
							return result + 4;
						}
						break;
					case 1:
						result++;
						break;
					case 2:
						result += 4;
						break;
					case 3:
						return result;
				}
				if ((x & 7) == 4) {
					result++;
					if (x < 0x40 && (p[1] & 7) == 5) {
						result += 4;
					}
				}
				return result;
		}
	}
}

typedef ZEND_SET_ALIGNED(1, uint16_t unaligned_uint16_t);
typedef ZEND_SET_ALIGNED(1, int32_t unaligned_int32_t);

static int zend_jit_patch(const void *code, size_t size, uint32_t jmp_table_size, const void *from_addr, const void *to_addr)
{
	int ret = 0;
	uint8_t *p, *end;

	if (jmp_table_size) {
		const void **jmp_slot = (const void **)((char*)code + size);

		size -= jmp_table_size * sizeof(void*);
		do {
			jmp_slot--;
			if (*jmp_slot == from_addr) {
				*jmp_slot = to_addr;
				ret++;
			}
		} while (--jmp_table_size);
	}

	p = (uint8_t*)code;
	end = p + size - 5;
	while (p < end) {
		if ((*(unaligned_uint16_t*)p & 0xf0ff) == 0x800f && p + *(unaligned_int32_t*)(p+2) == (uint8_t*)from_addr - 6) {
			*(unaligned_int32_t*)(p+2) = ((uint8_t*)to_addr - (p + 6));
			ret++;
		} else if (*p == 0xe9 && p + *(unaligned_int32_t*)(p+1) == (uint8_t*)from_addr - 5) {
			*(unaligned_int32_t*)(p+1) = ((uint8_t*)to_addr - (p + 5));
			ret++;
		}
		p += _asm_x86_inslen(p);
	}
#ifdef HAVE_VALGRIND
	VALGRIND_DISCARD_TRANSLATIONS(code, size);
#endif
	return ret;
}

static int zend_jit_link_side_trace(const void *code, size_t size, uint32_t jmp_table_size, uint32_t exit_num, const void *addr)
{
	return zend_jit_patch(code, size, jmp_table_size, zend_jit_trace_get_exit_addr(exit_num), addr);
}

static int zend_jit_trace_link_to_root(dasm_State **Dst, zend_jit_trace_info *t, const void *timeout_exit_addr)
{
	const void *link_addr;
	size_t prologue_size;

	/* Skip prologue. */
	// TODO: don't hardcode this ???
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
#ifdef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		prologue_size = 0;
#elif defined(__x86_64__) || defined(_M_X64)
		// sub r4, HYBRID_SPAD
		prologue_size = 4;
#else
		// sub r4, HYBRID_SPAD
		prologue_size = 3;
#endif
	} else if (GCC_GLOBAL_REGS) {
		// sub r4, SPAD // stack alignment
#if defined(__x86_64__) || defined(_M_X64)
		prologue_size = 4;
#else
		prologue_size = 3;
#endif
	} else {
		// sub r4, NR_SPAD // stack alignment
		// mov aword T2, FP // save FP
		// mov aword T3, RX // save IP
		// mov FP, FCARG1a
#if defined(__x86_64__) || defined(_M_X64)
		prologue_size = 17;
#else
		prologue_size = 13;
#endif
	}
	link_addr = (const void*)((const char*)t->code_start + prologue_size);

	if (timeout_exit_addr) {
		/* Check timeout for links to LOOP */
		//|	MEM_OP2_1_ZTS cmp, byte, executor_globals, vm_interrupt, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.vm_interrupt)) {
		dasm_put(Dst, 27, &executor_globals.vm_interrupt);
				} else {
		dasm_put(Dst, 33, (unsigned int)(((ptrdiff_t)&executor_globals.vm_interrupt)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_interrupt))>>32));
				}
#line 3451 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	je &link_addr
		//|	jmp &timeout_exit_addr
		dasm_put(Dst, 1690, (ptrdiff_t)(link_addr), (ptrdiff_t)(timeout_exit_addr));
#line 3453 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	jmp &link_addr
		dasm_put(Dst, 151, (ptrdiff_t)(link_addr));
#line 3455 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_trace_return(dasm_State **Dst, zend_bool original_handler, const zend_op *opline)
{
#if 0
	//|	jmp ->trace_escape
	dasm_put(Dst, 1697);
#line 3463 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 3466 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!original_handler) {
			//|	JMP_IP
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 107);
				} else {
			dasm_put(Dst, 112, Dt1(->opline));
				}
#line 3468 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov r0, EX->func
			//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
			//|	mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
			//|	jmp aword [IP + r0]
			dasm_put(Dst, 1368, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset));
#line 3473 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		dasm_put(Dst, 120);
#line 3476 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!original_handler) {
			//|	JMP_IP
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 107);
				} else {
			dasm_put(Dst, 112, Dt1(->opline));
				}
#line 3478 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov r0, EX->func
			//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
			//|	mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
			//|	jmp aword [IP + r0]
			dasm_put(Dst, 1368, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset));
#line 3483 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		if (original_handler) {
			//|	mov FCARG1a, FP
			//|	mov r0, EX->func
			//|	mov r0, aword [r0 + offsetof(zend_op_array, reserved[zend_func_info_rid])]
			//|	mov r0, aword [r0 + offsetof(zend_jit_op_array_trace_extension, offset)]
			//|	call aword [IP + r0]
			dasm_put(Dst, 1702, Dt1(->func), offsetof(zend_op_array, reserved[zend_func_info_rid]), offsetof(zend_jit_op_array_trace_extension, offset));
#line 3491 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		dasm_put(Dst, 453);
#line 3495 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!original_handler || !opline ||
		    (opline->opcode != ZEND_RETURN
		  && opline->opcode != ZEND_RETURN_BY_REF
		  && opline->opcode != ZEND_GENERATOR_RETURN
		  && opline->opcode != ZEND_GENERATOR_CREATE
		  && opline->opcode != ZEND_YIELD
		  && opline->opcode != ZEND_YIELD_FROM)) {
			//|	mov r0, 2 // ZEND_VM_LEAVE
			dasm_put(Dst, 1724);
#line 3503 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	ret
		dasm_put(Dst, 146);
#line 3505 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
#endif
	return 1;
}

static int zend_jit_type_guard(dasm_State **Dst, const zend_op *opline, uint32_t var, uint8_t type)
{
	int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);
	const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

	if (!exit_addr) {
		return 0;
	}
	//|	IF_NOT_Z_TYPE FP + var, type, &exit_addr
	dasm_put(Dst, 1732, var+offsetof(zval, u1.v.type), type, (ptrdiff_t)(exit_addr));
#line 3519 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_packed_guard(dasm_State **Dst, const zend_op *opline, uint32_t var, uint32_t op_info)
{
	int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_PACKED_GUARD);
	const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

	if (!exit_addr) {
		return 0;
	}

	//|	GET_ZVAL_LVAL ZREG_FCARG1a, ZEND_ADDR_MEM_ZVAL(ZREG_FP, var)
		if (Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var)) == IS_CONST_ZVAL) {
			if (Z_LVAL_P(Z_ZV(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))) == 0) {
	dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
			} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))))) {
	dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var)))), (unsigned int)((Z_LVAL_P(Z_ZV(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))))>>32));
					} else {
	dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))));
					}
			}
		} else if (Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var)) == IS_MEM_ZVAL) {
	dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var)));
		} else if (Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var)) == IS_REG) {
			if (ZREG_FCARG1a != Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))) {
	dasm_put(Dst, 1773, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var))), (ZREG_FCARG1a));
			}
		} else {
			ZEND_UNREACHABLE();
		}
#line 3533 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (op_info & MAY_BE_ARRAY_PACKED) {
		//|	test dword [FCARG1a + offsetof(zend_array, u.flags)], HASH_FLAG_PACKED
		//|	jz &exit_addr
		dasm_put(Dst, 1781, offsetof(zend_array, u.flags), HASH_FLAG_PACKED, (ptrdiff_t)(exit_addr));
#line 3536 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	test dword [FCARG1a + offsetof(zend_array, u.flags)], HASH_FLAG_PACKED
		//|	jnz &exit_addr
		dasm_put(Dst, 1790, offsetof(zend_array, u.flags), HASH_FLAG_PACKED, (ptrdiff_t)(exit_addr));
#line 3539 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_trace_handler(dasm_State **Dst, const zend_op_array *op_array, const zend_op *opline, int may_throw, zend_jit_trace_rec *trace)
{
	zend_jit_op_array_trace_extension *jit_extension =
		(zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(op_array);
	size_t offset = jit_extension->offset;
	const void *handler =
		(zend_vm_opcode_handler_t)ZEND_OP_TRACE_INFO(opline, offset)->call_handler;

	if (!zend_jit_set_valid_ip(Dst, opline)) {
		return 0;
	}
	if (!GCC_GLOBAL_REGS) {
		//|	mov FCARG1a, FP
		dasm_put(Dst, 67);
#line 3557 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	EXT_CALL handler, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
	dasm_put(Dst, 46, (ptrdiff_t)(handler));
			} else {
			if (IS_SIGNED_32BIT(handler)) {
	dasm_put(Dst, 50, ((ptrdiff_t)handler));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 3559 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (may_throw
	 && opline->opcode != ZEND_RETURN
	 && opline->opcode != ZEND_RETURN_BY_REF) {
		//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r1
				if (IS_SIGNED_32BIT(&executor_globals.exception)) {
		dasm_put(Dst, 72, &executor_globals.exception);
				} else {
		dasm_put(Dst, 1799, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
				}
#line 3563 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jne ->exception_handler
		dasm_put(Dst, 1649);
#line 3564 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	while (trace->op != ZEND_JIT_TRACE_VM && trace->op != ZEND_JIT_TRACE_END) {
		trace++;
	}

	if (!GCC_GLOBAL_REGS
	 && (trace->op != ZEND_JIT_TRACE_END || trace->stop != ZEND_JIT_TRACE_STOP_RETURN)) {
		if (opline->opcode == ZEND_RETURN ||
		    opline->opcode == ZEND_RETURN_BY_REF ||
		    opline->opcode == ZEND_DO_UCALL ||
		    opline->opcode == ZEND_DO_FCALL_BY_NAME ||
		    opline->opcode == ZEND_DO_FCALL ||
		    opline->opcode == ZEND_GENERATOR_CREATE) {
			//|	MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r1
					if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
			dasm_put(Dst, 88, &executor_globals.current_execute_data);
					} else {
			dasm_put(Dst, 1808, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
					}
#line 3579 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (zend_jit_trace_may_exit(op_array, opline)) {
		if (opline->opcode == ZEND_RETURN ||
		    opline->opcode == ZEND_RETURN_BY_REF ||
		    opline->opcode == ZEND_GENERATOR_CREATE) {

			if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
#if 0
				/* this check should be handled by the following OPLINE guard or jmp [IP] */
				//|	cmp IP, zend_jit_halt_op
				//|	je ->trace_halt
				dasm_put(Dst, 1816, zend_jit_halt_op);
#line 3592 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
			} else if (GCC_GLOBAL_REGS) {
				//|	test IP, IP
				//|	je ->trace_halt
				dasm_put(Dst, 1826);
#line 3596 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	test eax, eax
				//|	jl ->trace_halt
				dasm_put(Dst, 1835);
#line 3599 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (opline->opcode == ZEND_EXIT ||
		           opline->opcode == ZEND_GENERATOR_RETURN ||
		           opline->opcode == ZEND_YIELD ||
		           opline->opcode == ZEND_YIELD_FROM) {
			//|	jmp ->trace_halt
			dasm_put(Dst, 1842);
#line 3605 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (trace->op != ZEND_JIT_TRACE_END ||
		    (trace->stop != ZEND_JIT_TRACE_STOP_RETURN &&
		     trace->stop != ZEND_JIT_TRACE_STOP_INTERPRETER)) {

			const zend_op *next_opline = trace->opline;
			const zend_op *exit_opline = NULL;
			uint32_t exit_point;
			const void *exit_addr;
			uint32_t old_info = 0;
			uint32_t old_res_info = 0;
			zend_jit_trace_stack *stack = JIT_G(current_frame)->stack;

			if (zend_is_smart_branch(opline)) {
				zend_bool exit_if_true = 0;
				exit_opline = zend_jit_trace_get_exit_opline(trace, opline + 1, &exit_if_true);
			} else {
				switch (opline->opcode) {
					case ZEND_JMPZ:
					case ZEND_JMPNZ:
					case ZEND_JMPZ_EX:
					case ZEND_JMPNZ_EX:
					case ZEND_JMP_SET:
					case ZEND_COALESCE:
					case ZEND_JMP_NULL:
					case ZEND_FE_RESET_R:
					case ZEND_FE_RESET_RW:
						exit_opline = (trace->opline == opline + 1) ?
							OP_JMP_ADDR(opline, opline->op2) :
							opline + 1;
						break;
					case ZEND_JMPZNZ:
						exit_opline = (trace->opline == OP_JMP_ADDR(opline, opline->op2)) ?
							ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value) :
							OP_JMP_ADDR(opline, opline->op2);
						break;
					case ZEND_FE_FETCH_R:
					case ZEND_FE_FETCH_RW:
						exit_opline = (trace->opline == opline + 1) ?
							ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value) :
							opline + 1;
						break;

				}
			}

			switch (opline->opcode) {
				case ZEND_FE_FETCH_R:
				case ZEND_FE_FETCH_RW:
					if (opline->op2_type != IS_UNUSED) {
						old_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->op2.var));
						SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->op2.var), IS_UNKNOWN, 1);
					}
					break;
			}

			if (opline->result_type == IS_VAR || opline->result_type == IS_TMP_VAR) {
				old_res_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var));
				SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_UNKNOWN, 1);
			}
			exit_point = zend_jit_trace_get_exit_point(exit_opline, 0);
			exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (opline->result_type == IS_VAR || opline->result_type == IS_TMP_VAR) {
				SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var), old_res_info);
			}
			switch (opline->opcode) {
				case ZEND_FE_FETCH_R:
				case ZEND_FE_FETCH_RW:
					if (opline->op2_type != IS_UNUSED) {
						SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->op2.var), old_info);
					}
					break;
			}

			if (!exit_addr) {
				return 0;
			}
			//|	CMP_IP next_opline
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 1847, next_opline);
				} else {
			dasm_put(Dst, 1853, Dt1(->opline), next_opline);
				}
#line 3684 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jne &exit_addr
			dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 3685 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	zend_jit_set_last_valid_opline(trace->opline);

	return 1;
}

static int zend_jit_handler(dasm_State **Dst, const zend_op *opline, int may_throw)
{
	const void *handler;

	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		handler = zend_get_opcode_handler_func(opline);
	} else {
		handler = opline->handler;
	}

	if (!zend_jit_set_valid_ip(Dst, opline)) {
		return 0;
	}
	if (!GCC_GLOBAL_REGS) {
		//|	mov FCARG1a, FP
		dasm_put(Dst, 67);
#line 3708 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	EXT_CALL handler, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
	dasm_put(Dst, 46, (ptrdiff_t)(handler));
			} else {
			if (IS_SIGNED_32BIT(handler)) {
	dasm_put(Dst, 50, ((ptrdiff_t)handler));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 3710 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (may_throw) {
		zend_jit_check_exception(Dst);
	}

	/* Skip the following OP_DATA */
	switch (opline->opcode) {
		case ZEND_ASSIGN_DIM:
		case ZEND_ASSIGN_OBJ:
		case ZEND_ASSIGN_STATIC_PROP:
		case ZEND_ASSIGN_DIM_OP:
		case ZEND_ASSIGN_OBJ_OP:
		case ZEND_ASSIGN_STATIC_PROP_OP:
		case ZEND_ASSIGN_STATIC_PROP_REF:
		case ZEND_ASSIGN_OBJ_REF:
			zend_jit_set_last_valid_opline(opline + 2);
			break;
		default:
			zend_jit_set_last_valid_opline(opline + 1);
			break;
	}

	return 1;
}

static int zend_jit_tail_handler(dasm_State **Dst, const zend_op *opline)
{
	if (!zend_jit_set_valid_ip(Dst, opline)) {
		return 0;
	}
	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		if (opline->opcode == ZEND_DO_UCALL ||
		    opline->opcode == ZEND_DO_FCALL_BY_NAME ||
		    opline->opcode == ZEND_DO_FCALL ||
		    opline->opcode == ZEND_RETURN) {

			/* Use inlined HYBRID VM handler */
			const void *handler = opline->handler;

			//|	ADD_HYBRID_SPAD
			#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
			dasm_put(Dst, 102);
			#endif
#line 3749 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_JMP handler, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
			dasm_put(Dst, 151, (ptrdiff_t)(handler));
					} else {
					if (IS_SIGNED_32BIT(handler)) {
			dasm_put(Dst, 50, ((ptrdiff_t)handler));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
					}
			dasm_put(Dst, 155);
					}
#line 3750 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			const void *handler = zend_get_opcode_handler_func(opline);

			//|	EXT_CALL handler, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
			dasm_put(Dst, 46, (ptrdiff_t)(handler));
					} else {
					if (IS_SIGNED_32BIT(handler)) {
			dasm_put(Dst, 50, ((ptrdiff_t)handler));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 3754 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	ADD_HYBRID_SPAD
			#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
			dasm_put(Dst, 102);
			#endif
#line 3755 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	JMP_IP
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 107);
				} else {
			dasm_put(Dst, 112, Dt1(->opline));
				}
#line 3756 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		const void *handler = opline->handler;

		if (GCC_GLOBAL_REGS) {
			//|	add r4, SPAD // stack alignment
			dasm_put(Dst, 120);
#line 3762 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov FCARG1a, FP
			//|	mov FP, aword T2 // restore FP
			//|	mov RX, aword T3 // restore IP
			//|	add r4, NR_SPAD // stack alignment
			dasm_put(Dst, 1859);
#line 3767 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	EXT_JMP handler, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(handler)) {
		dasm_put(Dst, 151, (ptrdiff_t)(handler));
				} else {
				if (IS_SIGNED_32BIT(handler)) {
		dasm_put(Dst, 50, ((ptrdiff_t)handler));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)handler)), (unsigned int)((((ptrdiff_t)handler))>>32));
				}
		dasm_put(Dst, 155);
				}
#line 3769 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	zend_jit_reset_last_valid_opline();
	return 1;
}

static int zend_jit_trace_opline_guard(dasm_State **Dst, const zend_op *opline)
{
	uint32_t exit_point = zend_jit_trace_get_exit_point(NULL, 0);
	const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

	if (!exit_addr) {
		return 0;
	}
	//|	CMP_IP opline
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 1847, opline);
		} else {
	dasm_put(Dst, 1853, Dt1(->opline), opline);
		}
#line 3783 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jne &exit_addr
	dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 3784 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	zend_jit_set_last_valid_opline(opline);

	return 1;
}

static int zend_jit_jmp(dasm_State **Dst, unsigned int target_label)
{
	//|	jmp =>target_label
	dasm_put(Dst, 1645, target_label);
#line 3793 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_cond_jmp(dasm_State **Dst, const zend_op *next_opline, unsigned int target_label)
{
	//|	CMP_IP next_opline
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 1847, next_opline);
		} else {
	dasm_put(Dst, 1853, Dt1(->opline), next_opline);
		}
#line 3799 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jne =>target_label
	dasm_put(Dst, 1878, target_label);
#line 3800 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	zend_jit_set_last_valid_opline(next_opline);

	return 1;
}

#ifdef CONTEXT_THREADED_JIT
static int zend_jit_context_threaded_call(dasm_State **Dst, const zend_op *opline, unsigned int next_block)
{
	if (!zend_jit_handler(Dst, opline, 1)) return 0;
	if (opline->opcode == ZEND_DO_UCALL) {
		//|	call ->context_threaded_call
		dasm_put(Dst, 1882);
#line 3812 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		const zend_op *next_opline = opline + 1;

		//|	CMP_IP next_opline
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 1847, next_opline);
			} else {
		dasm_put(Dst, 1853, Dt1(->opline), next_opline);
			}
#line 3816 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	je =>next_block
		//|	call ->context_threaded_call
		dasm_put(Dst, 1887, next_block);
#line 3818 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}
#endif

static int zend_jit_call(dasm_State **Dst, const zend_op *opline, unsigned int next_block)
{
#ifdef CONTEXT_THREADED_JIT
	return zend_jit_context_threaded_call(Dst, opline, next_block);
#else
	return zend_jit_tail_handler(Dst, opline);
#endif
}

static int zend_jit_spill_store(dasm_State **Dst, zend_jit_addr src, zend_jit_addr dst, uint32_t info, zend_bool set_type)
{
	ZEND_ASSERT(Z_MODE(src) == IS_REG);
	ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);

	if ((info & MAY_BE_ANY) == MAY_BE_LONG) {
		//|	SET_ZVAL_LVAL dst, Ra(Z_REG(src))
			if (Z_MODE(dst) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(src)), (Z_REG(dst)));
			} else {
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(src)), (Z_REG(dst)), Z_OFFSET(dst));
			}
#line 3839 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (set_type) {
			//|	SET_ZVAL_TYPE_INFO dst, IS_LONG
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_LONG);
#line 3841 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if ((info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
		//|	SSE_SET_ZVAL_DVAL dst, Z_REG(src)
			if (Z_MODE(dst) == IS_REG) {
				if (Z_REG(src) != Z_REG(dst)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(src)-ZREG_XMM0), (Z_REG(dst)), Z_OFFSET(dst));
			} else {
		dasm_put(Dst, 1937, (Z_REG(src)-ZREG_XMM0), (Z_REG(dst)), Z_OFFSET(dst));
			}
			}
#line 3844 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (set_type) {
			//|	SET_ZVAL_TYPE_INFO dst, IS_DOUBLE
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 3846 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		ZEND_UNREACHABLE();
	}
	return 1;
}

static int zend_jit_load_reg(dasm_State **Dst, zend_jit_addr src, zend_jit_addr dst, uint32_t info)
{
	ZEND_ASSERT(Z_MODE(src) == IS_MEM_ZVAL);
	ZEND_ASSERT(Z_MODE(dst) == IS_REG);

	if ((info & MAY_BE_ANY) == MAY_BE_LONG) {
		//|	GET_ZVAL_LVAL Z_REG(dst), src
			if (Z_MODE(src) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(src)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(dst)), (Z_REG(dst)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(src)))) {
		dasm_put(Dst, 1749, (Z_REG(dst)), (unsigned int)(Z_LVAL_P(Z_ZV(src))), (unsigned int)((Z_LVAL_P(Z_ZV(src)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(dst)), Z_LVAL_P(Z_ZV(src)));
						}
				}
			} else if (Z_MODE(src) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(dst)), (Z_REG(src)), Z_OFFSET(src));
			} else if (Z_MODE(src) == IS_REG) {
				if (Z_REG(dst) != Z_REG(src)) {
		dasm_put(Dst, 1773, (Z_REG(src)), (Z_REG(dst)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 3860 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if ((info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
		//|	SSE_GET_ZVAL_DVAL Z_REG(dst), src
			if (Z_MODE(src) != IS_REG || Z_REG(dst) != Z_REG(src)) {
				if (Z_MODE(src) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(src))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(dst)-ZREG_XMM0), Z_ZV(src));
			} else {
		dasm_put(Dst, 1960, (Z_REG(dst)-ZREG_XMM0), Z_ZV(src));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(src))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(src)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(src))), (unsigned int)((((ptrdiff_t)Z_ZV(src)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(dst)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(dst)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(src) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)), Z_OFFSET(src));
			} else {
		dasm_put(Dst, 2000, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)), Z_OFFSET(src));
			}
				} else if (Z_MODE(src) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
#line 3862 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		ZEND_UNREACHABLE();
	}
	return 1;
}

static int zend_jit_store_var(dasm_State **Dst, uint32_t info, int var, zend_reg reg, zend_bool set_type)
{
	zend_jit_addr src = ZEND_ADDR_REG(reg);
	zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, EX_NUM_TO_VAR(var));

	return zend_jit_spill_store(Dst, src, dst, info, set_type);
}

static int zend_jit_store_var_type(dasm_State **Dst, int var, uint8_t type)
{
	zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, EX_NUM_TO_VAR(var));

	//|	SET_ZVAL_TYPE_INFO dst, type
		ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
	dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), type);
#line 3881 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_store_var_if_necessary(dasm_State **Dst, int var, zend_jit_addr src, uint32_t info)
{
	if (Z_MODE(src) == IS_REG && Z_STORE(src)) {
		zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, var);
		return zend_jit_spill_store(Dst, src, dst, info, 1);
	}
	return 1;
}

static int zend_jit_store_var_if_necessary_ex(dasm_State **Dst, int var, zend_jit_addr src, uint32_t info, zend_jit_addr old, uint32_t old_info)
{
	if (Z_MODE(src) == IS_REG && Z_STORE(src)) {
		zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, var);
		zend_bool set_type = 1;

		if ((info & (MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)) ==
		    (old_info & (MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF))) {
			if (Z_MODE(old) != IS_REG || Z_LOAD(old) || Z_STORE(old)) {
				set_type = 0;
			}
		}
		return zend_jit_spill_store(Dst, src, dst, info, set_type);
	}
	return 1;
}

static int zend_jit_load_var(dasm_State **Dst, uint32_t info, int var, zend_reg reg)
{
	zend_jit_addr src = ZEND_ADDR_MEM_ZVAL(ZREG_FP, EX_NUM_TO_VAR(var));
	zend_jit_addr dst = ZEND_ADDR_REG(reg);

	return zend_jit_load_reg(Dst, src, dst, info);
}

static int zend_jit_invalidate_var_if_necessary(dasm_State **Dst, zend_uchar op_type, zend_jit_addr addr, znode_op op)
{
	if ((op_type & (IS_TMP_VAR|IS_VAR)) && Z_MODE(addr) == IS_REG && !Z_LOAD(addr) && !Z_STORE(addr)) {
		zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, op.var);
		//|	SET_ZVAL_TYPE_INFO dst, IS_UNDEF
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_UNDEF);
#line 3923 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_update_regs(dasm_State **Dst, uint32_t var, zend_jit_addr src, zend_jit_addr dst, uint32_t info)
{
	if (!zend_jit_same_addr(src, dst)) {
		if (Z_MODE(src) == IS_REG) {
			if (Z_MODE(dst) == IS_REG) {
				if ((info & MAY_BE_ANY) == MAY_BE_LONG) {
					//|	mov Ra(Z_REG(dst)), Ra(Z_REG(src))
					dasm_put(Dst, 1773, (Z_REG(src)), (Z_REG(dst)));
#line 3934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if ((info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
					//|	SSE_AVX_INS movaps, vmovaps, xmm(Z_REG(dst)-ZREG_XMM0), xmm(Z_REG(src)-ZREG_XMM0)
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(dst)-ZREG_XMM0), (Z_REG(src)-ZREG_XMM0));
						}
#line 3936 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					ZEND_UNREACHABLE();
				}
				if (!Z_LOAD(src) && !Z_STORE(src) && Z_STORE(dst)) {
					zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, var);

					if (!zend_jit_spill_store(Dst, dst, var_addr, info,
							JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
							JIT_G(current_frame) == NULL ||
							STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(var)) == IS_UNKNOWN ||
							(1 << STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(var))) != (info & MAY_BE_ANY)
					)) {
						return 0;
					}
				}
			} else if (Z_MODE(dst) == IS_MEM_ZVAL) {
				if (!Z_LOAD(src) && !Z_STORE(src)) {
					if (!zend_jit_spill_store(Dst, src, dst, info,
							JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
							JIT_G(current_frame) == NULL ||
							STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(var)) == IS_UNKNOWN ||
							(1 << STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(var))) != (info & MAY_BE_ANY)
					)) {
						return 0;
					}
				}
			} else {
				ZEND_UNREACHABLE();
			}
		} else if (Z_MODE(src) == IS_MEM_ZVAL) {
			if (Z_MODE(dst) == IS_REG) {
				if (!zend_jit_load_reg(Dst, src, dst, info)) {
					return 0;
				}
			} else {
				ZEND_UNREACHABLE();
			}
		} else {
			ZEND_UNREACHABLE();
		}
	} else if (Z_MODE(dst) == IS_REG && Z_STORE(dst)) {
		dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, var);
		if (!zend_jit_spill_store(Dst, src, dst, info,
				JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
				JIT_G(current_frame) == NULL ||
				STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(var)) == IS_UNKNOWN ||
				(1 << STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(var))) != (info & MAY_BE_ANY)
		)) {
			return 0;
		}
	}
	return 1;
}

static int zend_jit_escape_if_undef_r0(dasm_State **Dst, int var, uint32_t flags, const zend_op *opline)
{
	zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

	//|	IF_NOT_ZVAL_TYPE val_addr, IS_UNDEF, >1
		ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 3995 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (flags & ZEND_JIT_EXIT_RESTORE_CALL) {
		if (!zend_jit_save_call_chain(Dst, -1)) {
			return 0;
		}
	}

	ZEND_ASSERT(opline);

	if ((opline-1)->opcode != ZEND_FETCH_CONSTANT
	 && (opline-1)->opcode != ZEND_FETCH_LIST_R
	 && ((opline-1)->op1_type & (IS_VAR|IS_TMP_VAR))
	 && !(flags & ZEND_JIT_EXIT_FREE_OP1)) {
		val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline-1)->op1.var);

		//|	IF_NOT_ZVAL_REFCOUNTED val_addr, >2
			ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 4011 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GET_ZVAL_PTR r0, val_addr
		dasm_put(Dst, 2013, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 4012 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GC_ADDREF r0
		//|2:
		dasm_put(Dst, 2027, (Z_REG(val_addr)), Z_OFFSET(val_addr));
#line 4014 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|	LOAD_IP_ADDR (opline - 1)
		if (GCC_GLOBAL_REGS) {
			if (IS_SIGNED_32BIT((opline - 1))) {
	dasm_put(Dst, 498, ((ptrdiff_t)(opline - 1)));
			} else {
	dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(opline - 1))), (unsigned int)((((ptrdiff_t)(opline - 1)))>>32));
			}
		} else {
			if (IS_SIGNED_32BIT((opline - 1))) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(opline - 1)));
			} else {
	dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(opline - 1))), (unsigned int)((((ptrdiff_t)(opline - 1)))>>32), Dt1(->opline));
			}
		}
#line 4017 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jmp ->trace_escape
	//|1:
	dasm_put(Dst, 2040);
#line 4019 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_store_const(dasm_State **Dst, int var, zend_reg reg)
{
	zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, EX_NUM_TO_VAR(var));

	if (reg == ZREG_LONG_MIN_MINUS_1) {
		//|.if X64
			//|	SET_ZVAL_LVAL dst, 0x00000000
				if (Z_MODE(dst) == IS_REG) {
			dasm_put(Dst, 2047, (Z_REG(dst)));
				} else {
					ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			dasm_put(Dst, 2057, (Z_REG(dst)), Z_OFFSET(dst));
				}
#line 4030 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_W2 dst, 0xc3e00000
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
#line 4031 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	SET_ZVAL_LVAL dst, 0x00200000
			//|	SET_ZVAL_W2 dst, 0xc1e00000
		//|.endif
		//|	SET_ZVAL_TYPE_INFO dst, IS_DOUBLE
		dasm_put(Dst, 2069, (Z_REG(dst)), Z_OFFSET(dst)+4);
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4036 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (reg == ZREG_LONG_MIN) {
		//|.if X64
			//|	SET_ZVAL_LVAL dst, 0x00000000
				if (Z_MODE(dst) == IS_REG) {
			dasm_put(Dst, 2047, (Z_REG(dst)));
				} else {
					ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			dasm_put(Dst, 2057, (Z_REG(dst)), Z_OFFSET(dst));
				}
#line 4039 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_W2 dst, 0x80000000
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
#line 4040 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	SET_ZVAL_LVAL dst, ZEND_LONG_MIN
		//|.endif
		//|	SET_ZVAL_TYPE_INFO dst, IS_LONG
		dasm_put(Dst, 2081, (Z_REG(dst)), Z_OFFSET(dst)+4);
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_LONG);
#line 4044 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (reg == ZREG_LONG_MAX) {
		//|.if X64
			//|	SET_ZVAL_LVAL dst, 0xffffffff
				if (Z_MODE(dst) == IS_REG) {
			dasm_put(Dst, 2093, (Z_REG(dst)));
				} else {
					ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			dasm_put(Dst, 2107, (Z_REG(dst)), Z_OFFSET(dst));
				}
#line 4047 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_W2 dst, 0x7fffffff
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
#line 4048 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	SET_ZVAL_LVAL dst, ZEND_LONG_MAX
		//|.endif
		//|	SET_ZVAL_TYPE_INFO dst, IS_LONG
		dasm_put(Dst, 2123, (Z_REG(dst)), Z_OFFSET(dst)+4);
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_LONG);
#line 4052 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (reg == ZREG_LONG_MAX_PLUS_1) {
		//|.if X64
			//|	SET_ZVAL_LVAL dst, 0
				if (Z_MODE(dst) == IS_REG) {
			dasm_put(Dst, 2047, (Z_REG(dst)));
				} else {
					ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			dasm_put(Dst, 2057, (Z_REG(dst)), Z_OFFSET(dst));
				}
#line 4055 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_W2 dst, 0x43e00000
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
#line 4056 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	SET_ZVAL_LVAL dst, 0
			//|	SET_ZVAL_W2 dst, 0x41e00000
		//|.endif
		//|	SET_ZVAL_TYPE_INFO dst, IS_DOUBLE
		dasm_put(Dst, 2138, (Z_REG(dst)), Z_OFFSET(dst)+4);
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4061 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (reg == ZREG_NULL) {
		//|	SET_ZVAL_TYPE_INFO dst, IS_NULL
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), IS_NULL);
#line 4063 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (reg == ZREG_ZVAL_TRY_ADDREF) {
		//|	IF_NOT_ZVAL_REFCOUNTED dst, >1
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
#line 4065 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GET_ZVAL_PTR r1, dst
		dasm_put(Dst, 2150, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
#line 4066 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GC_ADDREF r1
		//|1:
		dasm_put(Dst, 2164, (Z_REG(dst)), Z_OFFSET(dst));
#line 4068 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (reg == ZREG_ZVAL_COPY_R0) {
		zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

		//|	ZVAL_COPY_VALUE dst, -1, val_addr, -1, ZREG_R1, ZREG_R2
			if (-1 & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((-1 & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(val_addr) == IS_REG) {
						if (Z_MODE(dst) != IS_REG || Z_REG(dst) != Z_REG(val_addr)) {
			if (Z_MODE(dst) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(dst)));
			} else {
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(dst)), Z_OFFSET(dst));
			}
						}
					} else if (Z_MODE(dst) == IS_REG) {
			if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(dst)), (Z_REG(dst)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(dst)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(dst)), Z_LVAL_P(Z_ZV(val_addr)));
						}
				}
			} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(dst)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			} else if (Z_MODE(val_addr) == IS_REG) {
				if (Z_REG(dst) != Z_REG(val_addr)) {
		dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(dst)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(val_addr)));
						}
				}
			} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			} else if (Z_MODE(val_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(val_addr)) {
		dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(dst) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(dst)));
			} else {
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(dst)), Z_OFFSET(dst));
			}
					}
				} else if ((-1 & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(val_addr) == IS_REG) {
			if (Z_MODE(dst) == IS_REG) {
				if (Z_REG(val_addr) != Z_REG(dst)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(dst)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(dst)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(dst)), Z_OFFSET(dst));
			} else {
		dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(dst)), Z_OFFSET(dst));
			}
			}
					} else if (Z_MODE(dst) == IS_REG) {
			if (Z_MODE(val_addr) != IS_REG || Z_REG(dst) != Z_REG(val_addr)) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(dst)-ZREG_XMM0), Z_ZV(val_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(dst)-ZREG_XMM0), Z_ZV(val_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(dst)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(dst)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(dst)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(dst)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			}
				} else if (Z_MODE(val_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(dst)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(dst)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			}
				} else if (Z_MODE(val_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(dst) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(dst)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(dst)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(dst)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(dst)), Z_OFFSET(dst));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(dst)), Z_OFFSET(dst));
			}
			}
					}
				} else if (!(-1 & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(dst)), Z_OFFSET(dst));
				} else {
			ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(dst)), Z_OFFSET(dst));
				}
			}
			if ((-1 & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(-1 & MAY_BE_GUARD) &&
				has_concrete_type(-1 & MAY_BE_ANY)) {
				if (Z_MODE(dst) == IS_MEM_ZVAL) {
					if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(-1);
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(dst) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(dst)), Z_OFFSET(dst)+offsetof(zval,u1.type_info));
			}
#line 4072 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	TRY_ADDREF -1, ch, r2
			if (-1 & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				if (-1 & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
		dasm_put(Dst, 2197);
				}
		dasm_put(Dst, 2205);
			}
#line 4073 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		ZEND_UNREACHABLE();
	}
	return 1;
}

static int zend_jit_free_trampoline(dasm_State **Dst)
{
	//|	/// if (UNEXPECTED(func->common.fn_flags & ZEND_ACC_CALL_VIA_TRAMPOLINE))
	//|	test dword [r0 + offsetof(zend_function, common.fn_flags)], ZEND_ACC_CALL_VIA_TRAMPOLINE
	//|	jz >1
	//|	mov FCARG1a, r0
	//|	EXT_CALL zend_jit_free_trampoline_helper, r0
	dasm_put(Dst, 2211, offsetof(zend_function, common.fn_flags), ZEND_ACC_CALL_VIA_TRAMPOLINE);
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_free_trampoline_helper)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_free_trampoline_helper));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_free_trampoline_helper)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_free_trampoline_helper));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_free_trampoline_helper)), (unsigned int)((((ptrdiff_t)zend_jit_free_trampoline_helper))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 4086 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|1:
	dasm_put(Dst, 64);
#line 4087 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_inc_dec(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr, uint32_t op1_def_info, zend_jit_addr op1_def_addr, uint32_t res_use_info, uint32_t res_info, zend_jit_addr res_addr, int may_overflow, int may_throw)
{
	if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)-MAY_BE_LONG)) {
		//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >2
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2224, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4094 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (opline->opcode == ZEND_POST_INC || opline->opcode == ZEND_POST_DEC) {
		//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_addr, MAY_BE_LONG, ZREG_R0, ZREG_R1
			if (MAY_BE_LONG & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
						}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(res_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R1 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R1));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
					}
				} else if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(res_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(res_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					}
				} else if (!(MAY_BE_LONG & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
			}
			if ((MAY_BE_LONG & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(MAY_BE_LONG & MAY_BE_GUARD) &&
				has_concrete_type(MAY_BE_LONG & MAY_BE_ANY)) {
				if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(MAY_BE_LONG);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
			}
#line 4097 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (!zend_jit_update_regs(Dst, opline->op1.var, op1_addr, op1_def_addr, MAY_BE_LONG)) {
		return 0;
	}
	if (opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_POST_INC) {
		//|	LONG_OP_WITH_32BIT_CONST add, op1_def_addr, Z_L(1)
			if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2237, (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr), Z_L(1));
			} else if (Z_MODE(op1_def_addr) == IS_REG) {
		dasm_put(Dst, 2246, (Z_REG(op1_def_addr)), Z_L(1));
			} else {
				ZEND_UNREACHABLE();
			}
#line 4103 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	LONG_OP_WITH_32BIT_CONST sub, op1_def_addr, Z_L(1)
			if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2253, (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr), Z_L(1));
			} else if (Z_MODE(op1_def_addr) == IS_REG) {
		dasm_put(Dst, 2262, (Z_REG(op1_def_addr)), Z_L(1));
			} else {
				ZEND_UNREACHABLE();
			}
#line 4105 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (may_overflow &&
	    (((op1_def_info & MAY_BE_GUARD) && (op1_def_info & MAY_BE_LONG)) ||
	     ((opline->result_type != IS_UNUSED && (res_info & MAY_BE_GUARD) && (res_info & MAY_BE_LONG))))) {
		int32_t exit_point;
		const void *exit_addr;
		zend_jit_trace_stack *stack;
		uint32_t old_op1_info, old_res_info = 0;

		stack = JIT_G(current_frame)->stack;
		old_op1_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->op1.var));
		SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->op1.var), IS_DOUBLE, 0);
		if (opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_POST_INC) {
			SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->op1.var), ZREG_LONG_MAX_PLUS_1);
		} else {
			SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->op1.var), ZREG_LONG_MIN_MINUS_1);
		}
		if (opline->result_type != IS_UNUSED) {
			old_res_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var));
			if (opline->opcode == ZEND_PRE_INC) {
				SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_DOUBLE, 0);
				SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_LONG_MAX_PLUS_1);
			} else if (opline->opcode == ZEND_PRE_DEC) {
				SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_DOUBLE, 0);
				SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_LONG_MIN_MINUS_1);
			} else if (opline->opcode == ZEND_POST_INC) {
				SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_LONG, 0);
				SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_LONG_MAX);
			} else if (opline->opcode == ZEND_POST_DEC) {
				SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_LONG, 0);
				SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_LONG_MIN);
			}
		}

		exit_point = zend_jit_trace_get_exit_point(opline + 1, 0);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		//|	jo &exit_addr
		dasm_put(Dst, 2270, (ptrdiff_t)(exit_addr));
#line 4143 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if ((opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_PRE_DEC) &&
		    opline->result_type != IS_UNUSED) {
			//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_def_addr, MAY_BE_LONG, ZREG_R0, ZREG_R1
				if (MAY_BE_LONG & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_def_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (ZREG_R1 != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (ZREG_R1));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(op1_def_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_def_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(MAY_BE_LONG & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((MAY_BE_LONG & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(MAY_BE_LONG & MAY_BE_GUARD) &&
					has_concrete_type(MAY_BE_LONG & MAY_BE_ANY)) {
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(MAY_BE_LONG);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 4147 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->op1.var), old_op1_info);
		if (opline->result_type != IS_UNUSED) {
			SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var), old_res_info);
		}
	} else if (may_overflow) {
		//|	jo >1
		dasm_put(Dst, 2274);
#line 4155 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if ((opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_PRE_DEC) &&
		    opline->result_type != IS_UNUSED) {
			//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_def_addr, MAY_BE_LONG, ZREG_R0, ZREG_R1
				if (MAY_BE_LONG & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_def_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (ZREG_R1 != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (ZREG_R1));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(op1_def_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_def_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(MAY_BE_LONG & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((MAY_BE_LONG & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(MAY_BE_LONG & MAY_BE_GUARD) &&
					has_concrete_type(MAY_BE_LONG & MAY_BE_ANY)) {
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(MAY_BE_LONG);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 4158 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.cold_code
		dasm_put(Dst, 290);
#line 4160 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 4161 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_POST_INC) {
			//|.if X64
				//|	mov64 rax, 0x43e0000000000000
				//|	SET_ZVAL_LVAL op1_def_addr, rax
				dasm_put(Dst, 55, (unsigned int)(0x43e0000000000000), (unsigned int)((0x43e0000000000000)>>32));
					if (Z_MODE(op1_def_addr) == IS_REG) {
				dasm_put(Dst, 2279, (Z_REG(op1_def_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2285, (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
					}
#line 4165 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	SET_ZVAL_LVAL op1_def_addr, 0
				//|	SET_ZVAL_W2 op1_def_addr, 0x41e00000
			//|.endif
		} else {
			//|.if X64
				//|	mov64 rax, 0xc3e0000000000000
				//|	SET_ZVAL_LVAL op1_def_addr, rax
				dasm_put(Dst, 55, (unsigned int)(0xc3e0000000000000), (unsigned int)((0xc3e0000000000000)>>32));
					if (Z_MODE(op1_def_addr) == IS_REG) {
				dasm_put(Dst, 2279, (Z_REG(op1_def_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2285, (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
					}
#line 4173 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	SET_ZVAL_LVAL op1_def_addr, 0x00200000
				//|	SET_ZVAL_W2 op1_def_addr, 0xc1e00000
			//|.endif
		}
		if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			//|	SET_ZVAL_TYPE_INFO op1_def_addr, IS_DOUBLE
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4180 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if ((opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_PRE_DEC) &&
		    opline->result_type != IS_UNUSED) {
			//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_def_addr, MAY_BE_DOUBLE, ZREG_R0, ZREG_R1
				if (MAY_BE_DOUBLE & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((MAY_BE_DOUBLE & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_def_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (ZREG_R1 != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (ZREG_R1));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((MAY_BE_DOUBLE & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(op1_def_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_def_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(MAY_BE_DOUBLE & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((MAY_BE_DOUBLE & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(MAY_BE_DOUBLE & MAY_BE_GUARD) &&
					has_concrete_type(MAY_BE_DOUBLE & MAY_BE_ANY)) {
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_DOUBLE & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(MAY_BE_DOUBLE);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 4184 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	jmp >3
		//|.code
		dasm_put(Dst, 2293);
#line 4187 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if ((opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_PRE_DEC) &&
		    opline->result_type != IS_UNUSED) {
			//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_def_addr, MAY_BE_LONG, ZREG_R0, ZREG_R1
				if (MAY_BE_LONG & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_def_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_def_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_def_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(op1_def_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_def_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(op1_def_addr)));
							}
					}
				} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else if (Z_MODE(op1_def_addr) == IS_REG) {
					if (ZREG_R1 != Z_REG(op1_def_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_def_addr)), (ZREG_R1));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_def_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(op1_def_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_def_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(op1_def_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_def_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_def_addr)) {
					if (Z_MODE(op1_def_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_def_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_def_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_def_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_def_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_def_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_def_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
					} else if (Z_MODE(op1_def_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_def_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(MAY_BE_LONG & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((MAY_BE_LONG & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(MAY_BE_LONG & MAY_BE_GUARD) &&
					has_concrete_type(MAY_BE_LONG & MAY_BE_ANY)) {
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(MAY_BE_LONG);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 4191 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
		//|.cold_code
		dasm_put(Dst, 290);
#line 4195 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		dasm_put(Dst, 2037);
#line 4196 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 4198 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & MAY_BE_UNDEF) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >2
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 4200 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
				//|	mov FCARG1d, opline->op1.var
				//|	SET_ZVAL_TYPE_INFO op1_addr, IS_NULL
				dasm_put(Dst, 2299, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF, opline->op1.var);
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 4203 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_undefined_op_helper, r0
				dasm_put(Dst, 1681, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_NULL);
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 4204 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				op1_info |= MAY_BE_NULL;
			}
			//|2:
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			dasm_put(Dst, 2037);
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4208 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			//|	// ZVAL_DEREF(var_ptr);
			if (op1_info & MAY_BE_REF) {
				//|	IF_NOT_Z_TYPE, FCARG1a, IS_REFERENCE, >2
				//|	GET_Z_PTR FCARG1a, FCARG1a
				//|	cmp aword [FCARG1a + offsetof(zend_reference, sources.ptr)], 0
				//|	jz >1
				dasm_put(Dst, 2328, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, sources.ptr));
#line 4215 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (RETURN_VALUE_USED(opline)) {
					//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 2357, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 4217 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	xor FCARG2a, FCARG2a
					dasm_put(Dst, 2363);
#line 4219 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (opline->opcode == ZEND_PRE_INC) {
					//|	EXT_CALL zend_jit_pre_inc_typed_ref, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_inc_typed_ref)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_inc_typed_ref));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_pre_inc_typed_ref)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_inc_typed_ref));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_inc_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_pre_inc_typed_ref))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (opline->opcode == ZEND_PRE_DEC) {
					//|	EXT_CALL zend_jit_pre_dec_typed_ref, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_dec_typed_ref)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_dec_typed_ref));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_pre_dec_typed_ref)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_dec_typed_ref));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_dec_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_pre_dec_typed_ref))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4224 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (opline->opcode == ZEND_POST_INC) {
					//|	EXT_CALL zend_jit_post_inc_typed_ref, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_inc_typed_ref)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_inc_typed_ref));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_post_inc_typed_ref)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_inc_typed_ref));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_inc_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_post_inc_typed_ref))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4226 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (opline->opcode == ZEND_POST_DEC) {
					//|	EXT_CALL zend_jit_post_dec_typed_ref, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_dec_typed_ref)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_dec_typed_ref));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_post_dec_typed_ref)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_dec_typed_ref));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_dec_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_post_dec_typed_ref))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4228 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					ZEND_UNREACHABLE();
				}
				zend_jit_check_exception(Dst);
				//|	jmp >3
				//|1:
				//|	lea FCARG1a, [FCARG1a + offsetof(zend_reference, val)]
				//|2:
				dasm_put(Dst, 2368, offsetof(zend_reference, val));
#line 4236 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			if (opline->opcode == ZEND_POST_INC || opline->opcode == ZEND_POST_DEC) {
				zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);

				//|	ZVAL_COPY_VALUE res_addr, res_use_info, val_addr, op1_info, ZREG_R0, ZREG_R2
					if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(val_addr) == IS_REG) {
								if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
								}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(val_addr)));
								}
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else if (Z_MODE(val_addr) == IS_REG) {
						if (Z_REG(res_addr) != Z_REG(val_addr)) {
				dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(val_addr)));
								}
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else if (Z_MODE(val_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(val_addr)) {
				dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
							}
						} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(val_addr) == IS_REG) {
					if (Z_MODE(res_addr) == IS_REG) {
						if (Z_REG(val_addr) != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(val_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
						if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					}
						} else if (Z_MODE(val_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
						if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					}
						} else if (Z_MODE(val_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(res_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							}
						} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
					}
					if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(op1_info & MAY_BE_GUARD) &&
						has_concrete_type(op1_info & MAY_BE_ANY)) {
						if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
							if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(op1_info);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
					}
#line 4242 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	TRY_ADDREF op1_info, ah, r2
					if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (op1_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 2381);
						}
				dasm_put(Dst, 2205);
					}
#line 4243 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_POST_INC) {
				if (opline->opcode == ZEND_PRE_INC && opline->result_type != IS_UNUSED) {
					//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 2357, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 4247 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_jit_pre_inc, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_inc)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_inc));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_pre_inc)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_inc));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_inc)), (unsigned int)((((ptrdiff_t)zend_jit_pre_inc))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL increment_function, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(increment_function)) {
					dasm_put(Dst, 46, (ptrdiff_t)(increment_function));
							} else {
							if (IS_SIGNED_32BIT(increment_function)) {
					dasm_put(Dst, 50, ((ptrdiff_t)increment_function));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)increment_function)), (unsigned int)((((ptrdiff_t)increment_function))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4250 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				if (opline->opcode == ZEND_PRE_DEC && opline->result_type != IS_UNUSED) {
					//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 2357, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 4254 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_jit_pre_dec, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_dec)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_dec));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_pre_dec)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_dec));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_dec)), (unsigned int)((((ptrdiff_t)zend_jit_pre_dec))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4255 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL decrement_function, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(decrement_function)) {
					dasm_put(Dst, 46, (ptrdiff_t)(decrement_function));
							} else {
							if (IS_SIGNED_32BIT(decrement_function)) {
					dasm_put(Dst, 50, ((ptrdiff_t)decrement_function));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)decrement_function)), (unsigned int)((((ptrdiff_t)decrement_function))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 4257 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (may_throw) {
				zend_jit_check_exception(Dst);
			}
		} else {
			zend_reg tmp_reg;

			if (opline->opcode == ZEND_POST_INC || opline->opcode == ZEND_POST_DEC) {
				//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_addr, MAY_BE_DOUBLE, ZREG_R0, ZREG_R2
					if (MAY_BE_DOUBLE & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((MAY_BE_DOUBLE & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(op1_addr) == IS_REG) {
								if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
								}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_REG(res_addr) != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
							}
						} else if ((MAY_BE_DOUBLE & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_MODE(res_addr) == IS_REG) {
						if (Z_REG(op1_addr) != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(op1_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(res_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							}
						} else if (!(MAY_BE_DOUBLE & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
					}
					if ((MAY_BE_DOUBLE & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(MAY_BE_DOUBLE & MAY_BE_GUARD) &&
						has_concrete_type(MAY_BE_DOUBLE & MAY_BE_ANY)) {
						if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
							if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_DOUBLE & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(MAY_BE_DOUBLE);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
					}
#line 4267 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (Z_MODE(op1_def_addr) == IS_REG) {
				tmp_reg = Z_REG(op1_def_addr);
			} else if (Z_MODE(op1_addr) == IS_REG && Z_LAST_USE(op1_addr)) {
				tmp_reg = Z_REG(op1_addr);
			} else {
				tmp_reg = ZREG_XMM0;
			}
			//|	SSE_GET_ZVAL_DVAL tmp_reg, op1_addr
				if (Z_MODE(op1_addr) != IS_REG || tmp_reg != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (tmp_reg-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (tmp_reg-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (tmp_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (tmp_reg-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
#line 4276 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_POST_INC) {
				if (CAN_USE_AVX()) {
					//|	vaddsd xmm(tmp_reg-ZREG_XMM0), xmm(tmp_reg-ZREG_XMM0), qword [->one]
					dasm_put(Dst, 2388, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
#line 4279 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	addsd xmm(tmp_reg-ZREG_XMM0), qword [->one]
					dasm_put(Dst, 2400, (tmp_reg-ZREG_XMM0));
#line 4281 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				if (CAN_USE_AVX()) {
					//|	vsubsd xmm(tmp_reg-ZREG_XMM0), xmm(tmp_reg-ZREG_XMM0), qword [->one]
					dasm_put(Dst, 2411, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
#line 4285 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	subsd xmm(tmp_reg-ZREG_XMM0), qword [->one]
					dasm_put(Dst, 2423, (tmp_reg-ZREG_XMM0));
#line 4287 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			//|	SSE_SET_ZVAL_DVAL op1_def_addr, tmp_reg
				if (Z_MODE(op1_def_addr) == IS_REG) {
					if (tmp_reg != Z_REG(op1_def_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(op1_def_addr)-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(op1_def_addr)-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(op1_def_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (tmp_reg-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				} else {
			dasm_put(Dst, 1937, (tmp_reg-ZREG_XMM0), (Z_REG(op1_def_addr)), Z_OFFSET(op1_def_addr));
				}
				}
#line 4290 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if ((opline->opcode == ZEND_PRE_INC || opline->opcode == ZEND_PRE_DEC) &&
			    opline->result_type != IS_UNUSED) {
				//|	ZVAL_COPY_VALUE res_addr, res_use_info, op1_addr, op1_def_info, ZREG_R0, ZREG_R1
					if (op1_def_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((op1_def_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(op1_addr) == IS_REG) {
								if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
								}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_REG(res_addr) != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (ZREG_R1 != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R1));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
							}
						} else if ((op1_def_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_MODE(res_addr) == IS_REG) {
						if (Z_REG(op1_addr) != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(op1_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(res_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							}
						} else if (!(op1_def_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
					}
					if ((op1_def_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(op1_def_info & MAY_BE_GUARD) &&
						has_concrete_type(op1_def_info & MAY_BE_ANY)) {
						if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
							if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_def_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(op1_def_info);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
					}
#line 4293 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	TRY_ADDREF op1_def_info, ah, r1
					if (op1_def_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (op1_def_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 2381);
						}
				dasm_put(Dst, 2171);
					}
#line 4294 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	jmp >3
		//|.code
		dasm_put(Dst, 2293);
#line 4298 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|3:
	dasm_put(Dst, 347);
#line 4300 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!zend_jit_store_var_if_necessary_ex(Dst, opline->op1.var, op1_def_addr, op1_def_info, op1_addr, op1_info)) {
		return 0;
	}
	if (opline->result_type != IS_UNUSED) {
		if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) {
			return 0;
		}
	}
	return 1;
}

static int zend_jit_opline_uses_reg(const zend_op  *opline, int8_t reg)
{
	if ((opline+1)->opcode == ZEND_OP_DATA
	 && ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR|IS_CV))
	 && JIT_G(current_frame)->stack[EX_VAR_TO_NUM((opline+1)->op1.var)].reg == reg) {
		return 1;
	}
	return
		((opline->result_type & (IS_VAR|IS_TMP_VAR|IS_CV)) &&
			JIT_G(current_frame)->stack[EX_VAR_TO_NUM(opline->result.var)].reg == reg) ||
		((opline->op1_type & (IS_VAR|IS_TMP_VAR|IS_CV)) &&
			JIT_G(current_frame)->stack[EX_VAR_TO_NUM(opline->op1.var)].reg == reg) ||
		((opline->op2_type & (IS_VAR|IS_TMP_VAR|IS_CV)) &&
			JIT_G(current_frame)->stack[EX_VAR_TO_NUM(opline->op2.var)].reg == reg);
}

static int zend_jit_math_long_long(dasm_State    **Dst,
                                   const zend_op  *opline,
                                   zend_uchar      opcode,
                                   zend_jit_addr   op1_addr,
                                   zend_jit_addr   op2_addr,
                                   zend_jit_addr   res_addr,
                                   uint32_t        res_info,
                                   uint32_t        res_use_info,
                                   int             may_overflow)
{
	zend_bool same_ops = zend_jit_same_addr(op1_addr, op2_addr);
	zend_reg result_reg;
	zend_reg tmp_reg = ZREG_R0;

	if (Z_MODE(res_addr) == IS_REG && (res_info & MAY_BE_LONG)) {
		if (may_overflow && (res_info & MAY_BE_GUARD)
		 && JIT_G(current_frame)
		 && zend_jit_opline_uses_reg(opline, Z_REG(res_addr))) {
			result_reg = ZREG_R0;
		} else {
			result_reg = Z_REG(res_addr);
		}
	} else if (Z_MODE(op1_addr) == IS_REG && Z_LAST_USE(op1_addr) && !may_overflow) {
		result_reg = Z_REG(op1_addr);
	} else if (Z_REG(res_addr) != ZREG_R0) {
		result_reg = ZREG_R0;
	} else {
		/* ASSIGN_DIM_OP */
		result_reg = ZREG_FCARG1a;
		tmp_reg = ZREG_FCARG1a;
	}

	if (opcode == ZEND_MUL &&
			Z_MODE(op2_addr) == IS_CONST_ZVAL &&
			Z_LVAL_P(Z_ZV(op2_addr)) == 2) {
		if (Z_MODE(op1_addr) == IS_REG && !may_overflow) {
			//|	lea Ra(result_reg), [Ra(Z_REG(op1_addr))+Ra(Z_REG(op1_addr))]
			dasm_put(Dst, 2434, (result_reg), (Z_REG(op1_addr)), (Z_REG(op1_addr)), 0);
#line 4364 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	GET_ZVAL_LVAL result_reg, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (result_reg), (result_reg));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (result_reg != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4366 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	add Ra(result_reg), Ra(result_reg)
			dasm_put(Dst, 2447, (result_reg), (result_reg));
#line 4367 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opcode == ZEND_MUL &&
			Z_MODE(op2_addr) == IS_CONST_ZVAL &&
			!may_overflow &&
			Z_LVAL_P(Z_ZV(op2_addr)) > 0 &&
			zend_long_is_power_of_two(Z_LVAL_P(Z_ZV(op2_addr)))) {
		//|	GET_ZVAL_LVAL result_reg, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (result_reg != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 4374 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	shl Ra(result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op2_addr)))
		dasm_put(Dst, 2455, (result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op2_addr))));
#line 4375 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (opcode == ZEND_MUL &&
			Z_MODE(op1_addr) == IS_CONST_ZVAL &&
			Z_LVAL_P(Z_ZV(op1_addr)) == 2) {
		if (Z_MODE(op2_addr) == IS_REG && !may_overflow) {
			//|	lea Ra(result_reg), [Ra(Z_REG(op2_addr))+Ra(Z_REG(op2_addr))]
			dasm_put(Dst, 2434, (result_reg), (Z_REG(op2_addr)), (Z_REG(op2_addr)), 0);
#line 4380 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	GET_ZVAL_LVAL result_reg, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
			dasm_put(Dst, 1741, (result_reg), (result_reg));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
							}
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
					if (result_reg != Z_REG(op2_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op2_addr)), (result_reg));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4382 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	add Ra(result_reg), Ra(result_reg)
			dasm_put(Dst, 2447, (result_reg), (result_reg));
#line 4383 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opcode == ZEND_MUL &&
			Z_MODE(op1_addr) == IS_CONST_ZVAL &&
			!may_overflow &&
			Z_LVAL_P(Z_ZV(op1_addr)) > 0 &&
			zend_long_is_power_of_two(Z_LVAL_P(Z_ZV(op1_addr)))) {
		//|	GET_ZVAL_LVAL result_reg, op2_addr
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
				if (result_reg != Z_REG(op2_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op2_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 4390 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	shl Ra(result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op1_addr)))
		dasm_put(Dst, 2455, (result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op1_addr))));
#line 4391 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (opcode == ZEND_DIV &&
			(Z_MODE(op2_addr) == IS_CONST_ZVAL &&
			zend_long_is_power_of_two(Z_LVAL_P(Z_ZV(op2_addr))))) {
		//|	GET_ZVAL_LVAL result_reg, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (result_reg != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 4395 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	shr Ra(result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op2_addr)))
		dasm_put(Dst, 2462, (result_reg), zend_long_floor_log2(Z_LVAL_P(Z_ZV(op2_addr))));
#line 4396 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (opcode == ZEND_ADD &&
			!may_overflow &&
			Z_MODE(op1_addr) == IS_REG &&
			Z_MODE(op2_addr) == IS_CONST_ZVAL &&
			IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		//|	lea Ra(result_reg), [Ra(Z_REG(op1_addr))+Z_LVAL_P(Z_ZV(op2_addr))]
		dasm_put(Dst, 2470, (result_reg), (Z_REG(op1_addr)), Z_LVAL_P(Z_ZV(op2_addr)));
#line 4402 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (opcode == ZEND_ADD &&
			!may_overflow &&
			Z_MODE(op2_addr) == IS_REG &&
			Z_MODE(op1_addr) == IS_CONST_ZVAL &&
			IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		//|	lea Ra(result_reg), [Ra(Z_REG(op2_addr))+Z_LVAL_P(Z_ZV(op1_addr))]
		dasm_put(Dst, 2470, (result_reg), (Z_REG(op2_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
#line 4408 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (opcode == ZEND_SUB &&
			!may_overflow &&
			Z_MODE(op1_addr) == IS_REG &&
			Z_MODE(op2_addr) == IS_CONST_ZVAL &&
			IS_SIGNED_32BIT(-Z_LVAL_P(Z_ZV(op2_addr)))) {
		//|	lea Ra(result_reg), [Ra(Z_REG(op1_addr))-Z_LVAL_P(Z_ZV(op2_addr))]
		dasm_put(Dst, 2470, (result_reg), (Z_REG(op1_addr)), -Z_LVAL_P(Z_ZV(op2_addr)));
#line 4414 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	GET_ZVAL_LVAL result_reg, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (result_reg != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 4416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if ((opcode == ZEND_ADD || opcode == ZEND_SUB)
		 && Z_MODE(op2_addr) == IS_CONST_ZVAL
		 && Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
			/* +/- 0 */
			may_overflow = 0;
		} else if (same_ops && opcode != ZEND_DIV) {
			//|	LONG_MATH_REG opcode, Ra(result_reg), Ra(result_reg)
				switch (opcode) {
					case ZEND_ADD:
			dasm_put(Dst, 2447, (result_reg), (result_reg));
						break;
					case ZEND_SUB:
			dasm_put(Dst, 2480, (result_reg), (result_reg));
						break;
					case ZEND_MUL:
			dasm_put(Dst, 2488, (result_reg), (result_reg));
						break;
					case ZEND_BW_OR:
			dasm_put(Dst, 2497, (result_reg), (result_reg));
						break;
					case ZEND_BW_AND:
			dasm_put(Dst, 2505, (result_reg), (result_reg));
						break;
					case ZEND_BW_XOR:
			dasm_put(Dst, 1741, (result_reg), (result_reg));
						break;
					default:
						ZEND_UNREACHABLE();
				}
#line 4423 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			zend_reg tmp_reg;

			if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
				tmp_reg = ZREG_R1;
			} else if (result_reg != ZREG_R0) {
				tmp_reg = ZREG_R0;
			} else {
				tmp_reg = ZREG_R1;
			}
			//|	LONG_MATH opcode, result_reg, op2_addr, tmp_reg
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 2513, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
						} else {
			dasm_put(Dst, 2246, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2527, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2447, (Z_REG(op2_addr)), (result_reg));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 2537, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
						} else {
			dasm_put(Dst, 2262, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2551, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2480, (Z_REG(op2_addr)), (result_reg));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 2561, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (result_reg), (tmp_reg));
						} else {
			dasm_put(Dst, 2576, (result_reg), (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2585, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2488, (result_reg), (Z_REG(op2_addr)));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_BW_OR:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 2596, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
						} else {
			dasm_put(Dst, 2610, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2617, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2497, (Z_REG(op2_addr)), (result_reg));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_BW_AND:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 2627, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
						} else {
			dasm_put(Dst, 2641, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2648, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2505, (Z_REG(op2_addr)), (result_reg));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_BW_XOR:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 2658, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
						} else {
			dasm_put(Dst, 2672, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2680, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 1741, (Z_REG(op2_addr)), (result_reg));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					default:
						ZEND_UNREACHABLE();
				}
#line 4434 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			(void)tmp_reg;
		}
	}
	if (may_overflow) {
		if (res_info & MAY_BE_GUARD) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if ((res_info & MAY_BE_ANY) == MAY_BE_LONG) {
				//|	jo &exit_addr
				dasm_put(Dst, 2270, (ptrdiff_t)(exit_addr));
#line 4443 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (Z_MODE(res_addr) == IS_REG && result_reg != Z_REG(res_addr)) {
					//|	mov Ra(Z_REG(res_addr)), Ra(result_reg)
					dasm_put(Dst, 1773, (result_reg), (Z_REG(res_addr)));
#line 4445 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if ((res_info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
				//|	jno &exit_addr
				dasm_put(Dst, 2690, (ptrdiff_t)(exit_addr));
#line 4448 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				ZEND_UNREACHABLE();
			}
		} else {
			if (res_info & MAY_BE_LONG) {
				//|	jo >1
				dasm_put(Dst, 2274);
#line 4454 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jno >1
				dasm_put(Dst, 2694);
#line 4456 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if (Z_MODE(res_addr) == IS_MEM_ZVAL && (res_info & MAY_BE_LONG)) {
		//|	SET_ZVAL_LVAL res_addr, Ra(result_reg)
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (result_reg), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (result_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
#line 4462 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) {
			if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_LONG) {
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_LONG
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_LONG);
#line 4465 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if (may_overflow && (!(res_info & MAY_BE_GUARD) || (res_info & MAY_BE_ANY) == MAY_BE_DOUBLE)) {
		zend_reg tmp_reg1 = ZREG_XMM0;
		zend_reg tmp_reg2 = ZREG_XMM1;

		if (res_info & MAY_BE_LONG) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 4475 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 4476 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		do {
			if ((sizeof(void*) == 8 || Z_MODE(res_addr) != IS_REG) &&
			    ((Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op1_addr)) == 1) ||
			     (Z_MODE(op2_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op2_addr)) == 1))) {
				if (opcode == ZEND_ADD) {
					//|.if X64
						//|	mov64 Ra(tmp_reg), 0x43e0000000000000
						dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(0x43e0000000000000), (unsigned int)((0x43e0000000000000)>>32));
#line 4485 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						if (Z_MODE(res_addr) == IS_REG) {
							//|	movd xmm(Z_REG(res_addr)-ZREG_XMM0), Ra(tmp_reg)
							dasm_put(Dst, 2699, (Z_REG(res_addr)-ZREG_XMM0), (tmp_reg));
#line 4487 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	SET_ZVAL_LVAL res_addr, Ra(tmp_reg)
								if (Z_MODE(res_addr) == IS_REG) {
							dasm_put(Dst, 1773, (tmp_reg), (Z_REG(res_addr)));
								} else {
									ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
								}
#line 4489 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					//|.else
						//|	SET_ZVAL_LVAL res_addr, 0
						//|	SET_ZVAL_W2 res_addr, 0x41e00000
					//|.endif
					break;
				} else if (opcode == ZEND_SUB) {
					//|.if X64
						//|	mov64 Ra(tmp_reg), 0xc3e0000000000000
						dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(0xc3e0000000000000), (unsigned int)((0xc3e0000000000000)>>32));
#line 4498 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						if (Z_MODE(res_addr) == IS_REG) {
							//|	movd xmm(Z_REG(res_addr)-ZREG_XMM0), Ra(tmp_reg)
							dasm_put(Dst, 2699, (Z_REG(res_addr)-ZREG_XMM0), (tmp_reg));
#line 4500 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	SET_ZVAL_LVAL res_addr, Ra(tmp_reg)
								if (Z_MODE(res_addr) == IS_REG) {
							dasm_put(Dst, 1773, (tmp_reg), (Z_REG(res_addr)));
								} else {
									ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
								}
#line 4502 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					//|.else
						//|	SET_ZVAL_LVAL res_addr, 0x00200000
						//|	SET_ZVAL_W2 res_addr, 0xc1e00000
					//|.endif
					break;
				}
			}

			//|	SSE_GET_ZVAL_LVAL tmp_reg1, op1_addr, tmp_reg
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0));
						} else {
			dasm_put(Dst, 2721, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0));
						}
					} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
			dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg));
						} else {
			dasm_put(Dst, 2754, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg));
						}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
			dasm_put(Dst, 2773, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
			dasm_put(Dst, 2799, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (Z_REG(op1_addr)));
					} else {
			dasm_put(Dst, 2754, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (Z_REG(op1_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4512 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SSE_GET_ZVAL_LVAL tmp_reg2, op2_addr, tmp_reg
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
						} else {
			dasm_put(Dst, 2721, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
						}
					} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
						} else {
			dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(op2_addr)));
						}
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg));
						} else {
			dasm_put(Dst, 2754, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg));
						}
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
			dasm_put(Dst, 2773, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
			dasm_put(Dst, 2799, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					}
				} else if (Z_MODE(op2_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (Z_REG(op2_addr)));
					} else {
			dasm_put(Dst, 2754, (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (tmp_reg2-ZREG_XMM0), (Z_REG(op2_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4513 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (CAN_USE_AVX()) {
				//|	AVX_MATH_REG opcode, tmp_reg1, tmp_reg1, tmp_reg2
					switch (opcode) {
						case ZEND_ADD:
				dasm_put(Dst, 2820, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
						case ZEND_SUB:
				dasm_put(Dst, 2832, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
						case ZEND_MUL:
				dasm_put(Dst, 2844, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
						case ZEND_DIV:
				dasm_put(Dst, 2856, (tmp_reg1-ZREG_XMM0), (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
					}
#line 4515 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	SSE_MATH_REG opcode, tmp_reg1, tmp_reg2
					switch (opcode) {
						case ZEND_ADD:
				dasm_put(Dst, 2868, (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
						case ZEND_SUB:
				dasm_put(Dst, 2879, (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
						case ZEND_MUL:
				dasm_put(Dst, 2890, (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
						case ZEND_DIV:
				dasm_put(Dst, 2901, (tmp_reg1-ZREG_XMM0), (tmp_reg2-ZREG_XMM0));
							break;
					}
#line 4517 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SSE_SET_ZVAL_DVAL res_addr, tmp_reg1
				if (Z_MODE(res_addr) == IS_REG) {
					if (tmp_reg1 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (tmp_reg1-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (tmp_reg1-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (tmp_reg1-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (tmp_reg1-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
#line 4519 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} while (0);

		if (Z_MODE(res_addr) == IS_MEM_ZVAL
		 && (res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4524 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (res_info & MAY_BE_LONG) {
			//|	jmp >2
			//|.code
			dasm_put(Dst, 2912);
#line 4528 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|2:
		dasm_put(Dst, 2037);
#line 4530 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_math_long_double(dasm_State    **Dst,
                                     zend_uchar      opcode,
                                     zend_jit_addr   op1_addr,
                                     zend_jit_addr   op2_addr,
                                     zend_jit_addr   res_addr,
                                     uint32_t        res_use_info)
{
	zend_reg result_reg =
		(Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0;
	zend_reg tmp_reg;

	if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
		/* ASSIGN_DIM_OP */
		tmp_reg = ZREG_R1;
	} else {
		tmp_reg = ZREG_R0;
	}

	//|	SSE_GET_ZVAL_LVAL result_reg, op1_addr, tmp_reg
		if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
			if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2709, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
				} else {
	dasm_put(Dst, 2721, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
				}
			} else {
				if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
	dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
				} else {
	dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(op1_addr)));
				}
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg));
				} else {
	dasm_put(Dst, 2754, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg));
				}
			}
		} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
	dasm_put(Dst, 2773, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
	dasm_put(Dst, 2799, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
		} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)));
			} else {
	dasm_put(Dst, 2754, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)));
			}
		} else {
			ZEND_UNREACHABLE();
		}
#line 4554 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
		/* ASSIGN_DIM_OP */
		if (CAN_USE_AVX()) {
			//|	AVX_MATH opcode, result_reg, result_reg, op2_addr, r1
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 2918, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 2930, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2944, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2820, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 2958, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 2970, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2984, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2832, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 2998, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3010, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3024, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2844, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3038, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3050, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3064, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2856, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4559 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	SSE_MATH opcode, result_reg, op2_addr, r1
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3078, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3089, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3102, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3115, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3126, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3139, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3152, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3163, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3176, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3189, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3200, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3213, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4561 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		if (CAN_USE_AVX()) {
			//|	AVX_MATH opcode, result_reg, result_reg, op2_addr, r0
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 2918, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3226, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2944, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2820, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 2958, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3240, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2984, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2832, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 2998, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3254, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3024, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2844, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3038, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3268, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3064, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2856, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4565 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	SSE_MATH opcode, result_reg, op2_addr, r0
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3078, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3282, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3102, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3115, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3295, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3139, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3152, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3308, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3176, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3189, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
					} else {
			dasm_put(Dst, 3321, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3213, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4567 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	//|	SSE_SET_ZVAL_DVAL res_addr, result_reg
		if (Z_MODE(res_addr) == IS_REG) {
			if (result_reg != Z_REG(res_addr)) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (result_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (result_reg-ZREG_XMM0));
		}
			}
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1924, (result_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		} else {
	dasm_put(Dst, 1937, (result_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		}
		}
#line 4570 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
		if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4574 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_math_double_long(dasm_State    **Dst,
                                     zend_uchar      opcode,
                                     zend_jit_addr   op1_addr,
                                     zend_jit_addr   op2_addr,
                                     zend_jit_addr   res_addr,
                                     uint32_t        res_use_info)
{
	zend_reg result_reg, tmp_reg_gp;

	if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
		/* ASSIGN_DIM_OP */
		tmp_reg_gp = ZREG_R1;
	} else {
		tmp_reg_gp = ZREG_R0;
	}

	if (zend_is_commutative(opcode)
	 && (Z_MODE(res_addr) != IS_REG || Z_MODE(op1_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr))) {
		if (Z_MODE(res_addr) == IS_REG) {
			result_reg = Z_REG(res_addr);
		} else {
			result_reg = ZREG_XMM0;
		}
		//|	SSE_GET_ZVAL_LVAL result_reg, op2_addr, tmp_reg_gp
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					} else {
		dasm_put(Dst, 2721, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 1749, (tmp_reg_gp), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
					} else {
		dasm_put(Dst, 1756, (tmp_reg_gp), Z_LVAL_P(Z_ZV(op2_addr)));
					}
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2730, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg_gp));
					} else {
		dasm_put(Dst, 2754, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg_gp));
					}
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
		dasm_put(Dst, 2773, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
		dasm_put(Dst, 2799, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				}
			} else if (Z_MODE(op2_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
		dasm_put(Dst, 2730, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)));
				} else {
		dasm_put(Dst, 2754, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op2_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 4604 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
			/* ASSIGN_DIM_OP */
			if (CAN_USE_AVX()) {
				//|	AVX_MATH opcode, result_reg, result_reg, op1_addr, r1
					switch (opcode) {
						case ZEND_ADD:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 2918, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 2930, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2944, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2820, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_SUB:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 2958, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 2970, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2984, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2832, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_MUL:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 2998, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3010, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3024, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2844, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_DIV:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3038, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3050, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3064, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2856, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
					}
#line 4608 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	SSE_MATH opcode, result_reg, op1_addr, r1
					switch (opcode) {
						case ZEND_ADD:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3078, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3089, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3102, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_SUB:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3115, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3126, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3139, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_MUL:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3152, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3163, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3176, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_DIV:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3189, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3200, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3213, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
					}
#line 4610 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (CAN_USE_AVX()) {
				//|	AVX_MATH opcode, result_reg, result_reg, op1_addr, r0
					switch (opcode) {
						case ZEND_ADD:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 2918, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3226, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2944, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2820, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_SUB:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 2958, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3240, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2984, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2832, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_MUL:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 2998, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3254, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3024, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2844, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_DIV:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3038, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3268, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3064, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2856, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
					}
#line 4614 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	SSE_MATH opcode, result_reg, op1_addr, r0
					switch (opcode) {
						case ZEND_ADD:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3078, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3282, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3102, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_SUB:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3115, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3295, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3139, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_MUL:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3152, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3308, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3176, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_DIV:
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 3189, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
						} else {
				dasm_put(Dst, 3321, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32), (result_reg-ZREG_XMM0));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 3213, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
				dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
					}
#line 4616 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else {
		zend_reg tmp_reg;

		if (Z_MODE(res_addr) == IS_REG) {
			result_reg = Z_REG(res_addr);
			tmp_reg = (result_reg == ZREG_XMM0) ? ZREG_XMM1 : ZREG_XMM0;
		} else if (Z_MODE(op1_addr) == IS_REG && Z_LAST_USE(op1_addr)) {
			result_reg = Z_REG(op1_addr);
			tmp_reg = ZREG_XMM0;
		} else {
			result_reg = ZREG_XMM0;
			tmp_reg = ZREG_XMM1;
		}
		if (CAN_USE_AVX()) {
			zend_reg op1_reg;

			if (Z_MODE(op1_addr) == IS_REG) {
				op1_reg = Z_REG(op1_addr);
			} else {
				//|	SSE_GET_ZVAL_DVAL result_reg, op1_addr
					if (Z_MODE(op1_addr) != IS_REG || result_reg != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (result_reg-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (result_reg-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
#line 4638 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				op1_reg = result_reg;
			}
			if ((opcode == ZEND_ADD || opcode == ZEND_SUB)
			 && Z_MODE(op2_addr) == IS_CONST_ZVAL
			 && Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
				/* +/- 0 */
			} else {
				//|	SSE_GET_ZVAL_LVAL tmp_reg, op2_addr, tmp_reg_gp
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
							if (CAN_USE_AVX()) {
				dasm_put(Dst, 2709, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							} else {
				dasm_put(Dst, 2721, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							}
						} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
				dasm_put(Dst, 1749, (tmp_reg_gp), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
							} else {
				dasm_put(Dst, 1756, (tmp_reg_gp), Z_LVAL_P(Z_ZV(op2_addr)));
							}
							if (CAN_USE_AVX()) {
				dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg_gp));
							} else {
				dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg_gp));
							}
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
				dasm_put(Dst, 2773, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else {
				dasm_put(Dst, 2799, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						}
					} else if (Z_MODE(op2_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
				dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)));
						} else {
				dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
#line 4646 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	AVX_MATH_REG opcode, result_reg, op1_reg, tmp_reg
					switch (opcode) {
						case ZEND_ADD:
				dasm_put(Dst, 2820, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
						case ZEND_SUB:
				dasm_put(Dst, 2832, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
						case ZEND_MUL:
				dasm_put(Dst, 2844, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
						case ZEND_DIV:
				dasm_put(Dst, 2856, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
					}
#line 4647 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	SSE_GET_ZVAL_DVAL result_reg, op1_addr
				if (Z_MODE(op1_addr) != IS_REG || result_reg != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (result_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (result_reg-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
#line 4650 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if ((opcode == ZEND_ADD || opcode == ZEND_SUB)
			 && Z_MODE(op2_addr) == IS_CONST_ZVAL
			 && Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
				/* +/- 0 */
			} else {
				//|	SSE_GET_ZVAL_LVAL tmp_reg, op2_addr, tmp_reg_gp
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
							if (CAN_USE_AVX()) {
				dasm_put(Dst, 2709, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							} else {
				dasm_put(Dst, 2721, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							}
						} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
				dasm_put(Dst, 1749, (tmp_reg_gp), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
							} else {
				dasm_put(Dst, 1756, (tmp_reg_gp), Z_LVAL_P(Z_ZV(op2_addr)));
							}
							if (CAN_USE_AVX()) {
				dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg_gp));
							} else {
				dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg_gp));
							}
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
				dasm_put(Dst, 2773, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else {
				dasm_put(Dst, 2799, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						}
					} else if (Z_MODE(op2_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
				dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)));
						} else {
				dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
#line 4656 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SSE_MATH_REG opcode, result_reg, tmp_reg
					switch (opcode) {
						case ZEND_ADD:
				dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
						case ZEND_SUB:
				dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
						case ZEND_MUL:
				dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
						case ZEND_DIV:
				dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
							break;
					}
#line 4657 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}
	//|	SSE_SET_ZVAL_DVAL res_addr, result_reg
		if (Z_MODE(res_addr) == IS_REG) {
			if (result_reg != Z_REG(res_addr)) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (result_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (result_reg-ZREG_XMM0));
		}
			}
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1924, (result_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		} else {
	dasm_put(Dst, 1937, (result_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		}
		}
#line 4661 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
		if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) {
			if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4666 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	return 1;
}

static int zend_jit_math_double_double(dasm_State    **Dst,
                                       zend_uchar      opcode,
                                       zend_jit_addr   op1_addr,
                                       zend_jit_addr   op2_addr,
                                       zend_jit_addr   res_addr,
                                       uint32_t        res_use_info)
{
	zend_bool same_ops = zend_jit_same_addr(op1_addr, op2_addr);
	zend_reg result_reg;

	if (Z_MODE(res_addr) == IS_REG) {
		result_reg = Z_REG(res_addr);
	} else if (Z_MODE(op1_addr) == IS_REG && Z_LAST_USE(op1_addr)) {
		result_reg = Z_REG(op1_addr);
	} else if (zend_is_commutative(opcode) && Z_MODE(op2_addr) == IS_REG && Z_LAST_USE(op2_addr)) {
		result_reg = Z_REG(op2_addr);
	} else {
		result_reg = ZREG_XMM0;
	}

	if (CAN_USE_AVX()) {
		zend_reg op1_reg;
		zend_jit_addr val_addr;

		if (Z_MODE(op1_addr) == IS_REG) {
			op1_reg = Z_REG(op1_addr);
			val_addr = op2_addr;
		} else if (Z_MODE(op2_addr) == IS_REG && zend_is_commutative(opcode)) {
			op1_reg = Z_REG(op2_addr);
			val_addr = op1_addr;
		} else {
			//|	SSE_GET_ZVAL_DVAL result_reg, op1_addr
				if (Z_MODE(op1_addr) != IS_REG || result_reg != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (result_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (result_reg-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
#line 4705 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_reg = result_reg;
			val_addr = op2_addr;
		}
		if ((opcode == ZEND_MUL) &&
			Z_MODE(val_addr) == IS_CONST_ZVAL && Z_DVAL_P(Z_ZV(val_addr)) == 2.0) {
			//|	AVX_MATH_REG ZEND_ADD, result_reg, op1_reg, op1_reg
				switch (ZEND_ADD) {
					case ZEND_ADD:
			dasm_put(Dst, 2820, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (op1_reg-ZREG_XMM0));
						break;
					case ZEND_SUB:
			dasm_put(Dst, 2832, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (op1_reg-ZREG_XMM0));
						break;
					case ZEND_MUL:
			dasm_put(Dst, 2844, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (op1_reg-ZREG_XMM0));
						break;
					case ZEND_DIV:
			dasm_put(Dst, 2856, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (op1_reg-ZREG_XMM0));
						break;
				}
#line 4711 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
			/* ASSIGN_DIM_OP */
			//|	AVX_MATH opcode, result_reg, op1_reg, val_addr, r1
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 2918, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 2930, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2944, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2820, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 2958, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 2970, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2984, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2832, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 2998, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3010, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3024, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2844, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3038, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3050, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3064, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2856, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4714 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	AVX_MATH opcode, result_reg, op1_reg, val_addr, r0
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 2918, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3226, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2944, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2820, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 2958, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3240, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2984, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2832, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 2998, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3254, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3024, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2844, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3038, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3268, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3064, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2856, (op1_reg-ZREG_XMM0), (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4716 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		zend_jit_addr val_addr;

		if (Z_MODE(op1_addr) != IS_REG && Z_MODE(op2_addr) == IS_REG && zend_is_commutative(opcode)) {
			//|	SSE_GET_ZVAL_DVAL result_reg, op2_addr
				if (Z_MODE(op2_addr) != IS_REG || result_reg != Z_REG(op2_addr)) {
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
				} else {
			dasm_put(Dst, 1960, (result_reg-ZREG_XMM0), Z_ZV(op2_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (result_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (result_reg-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2000, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				}
					} else if (Z_MODE(op2_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (result_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
#line 4722 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			val_addr = op1_addr;
		} else {
			//|	SSE_GET_ZVAL_DVAL result_reg, op1_addr
				if (Z_MODE(op1_addr) != IS_REG || result_reg != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (result_reg-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (result_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (result_reg-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (result_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
#line 4725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			val_addr = op2_addr;
		}
		if (same_ops) {
			//|	SSE_MATH_REG opcode, result_reg, result_reg
				switch (opcode) {
					case ZEND_ADD:
			dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
					case ZEND_SUB:
			dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
					case ZEND_MUL:
			dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
					case ZEND_DIV:
			dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
				}
#line 4729 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if ((opcode == ZEND_MUL) &&
			Z_MODE(val_addr) == IS_CONST_ZVAL && Z_DVAL_P(Z_ZV(val_addr)) == 2.0) {
			//|	SSE_MATH_REG ZEND_ADD, result_reg, result_reg
				switch (ZEND_ADD) {
					case ZEND_ADD:
			dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
					case ZEND_SUB:
			dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
					case ZEND_MUL:
			dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
					case ZEND_DIV:
			dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (result_reg-ZREG_XMM0));
						break;
				}
#line 4732 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
			/* ASSIGN_DIM_OP */
			//|	SSE_MATH opcode, result_reg, val_addr, r1
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3078, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3089, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3102, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3115, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3126, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3139, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3152, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3163, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3176, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3189, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3200, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3213, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4735 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	SSE_MATH opcode, result_reg, val_addr, r0
				switch (opcode) {
					case ZEND_ADD:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3078, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3282, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3102, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2868, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_SUB:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3115, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3295, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3139, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2879, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_MUL:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3152, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3308, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3176, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2890, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
					case ZEND_DIV:
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3189, (result_reg-ZREG_XMM0), Z_ZV(val_addr));
					} else {
			dasm_put(Dst, 3321, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32), (result_reg-ZREG_XMM0));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 3213, (result_reg-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
			dasm_put(Dst, 2901, (result_reg-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
					ZEND_UNREACHABLE();
				}
						break;
				}
#line 4737 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	//|	SSE_SET_ZVAL_DVAL res_addr, result_reg
		if (Z_MODE(res_addr) == IS_REG) {
			if (result_reg != Z_REG(res_addr)) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (result_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (result_reg-ZREG_XMM0));
		}
			}
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1924, (result_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		} else {
	dasm_put(Dst, 1937, (result_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		}
		}
#line 4740 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
		if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) {
			if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 4745 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	return 1;
}

static int zend_jit_math_helper(dasm_State    **Dst,
                                const zend_op  *opline,
                                zend_uchar      opcode,
                                zend_uchar      op1_type,
                                znode_op        op1,
                                zend_jit_addr   op1_addr,
                                uint32_t        op1_info,
                                zend_uchar      op2_type,
                                znode_op        op2,
                                zend_jit_addr   op2_addr,
                                uint32_t        op2_info,
                                uint32_t        res_var,
                                zend_jit_addr   res_addr,
                                uint32_t        res_info,
                                uint32_t        res_use_info,
                                int             may_overflow,
                                int             may_throw)
/* Labels: 1,2,3,4,5,6 */
{
	zend_bool same_ops = zend_jit_same_addr(op1_addr, op2_addr);

	if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG) && (res_info & (MAY_BE_LONG|MAY_BE_DOUBLE))) {
		if (op1_info & (MAY_BE_ANY-MAY_BE_LONG)) {
			if (op1_info & MAY_BE_DOUBLE) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >3
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4777 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >6
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4779 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (!same_ops && (op2_info & (MAY_BE_ANY-MAY_BE_LONG))) {
			if (op2_info & MAY_BE_DOUBLE) {
				//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >1
					ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
#line 4784 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 3360, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4785 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 4786 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op2_info & (MAY_BE_ANY-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >6
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4788 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (!zend_jit_math_long_double(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
					return 0;
				}
				//|	jmp >5
				//|.code
				dasm_put(Dst, 3374);
#line 4794 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >6
					ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4796 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (!zend_jit_math_long_long(Dst, opline, opcode, op1_addr, op2_addr, res_addr, res_info, res_use_info, may_overflow)) {
			return 0;
		}
		if (op1_info & MAY_BE_DOUBLE) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 4803 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|3:
			dasm_put(Dst, 347);
#line 4804 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & (MAY_BE_ANY-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >6
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4806 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (op2_info & MAY_BE_DOUBLE) {
				if (!same_ops && (op2_info & (MAY_BE_ANY-MAY_BE_DOUBLE))) {
					if (!same_ops) {
						//|	IF_NOT_ZVAL_TYPE, op2_addr, IS_DOUBLE, >1
							ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 350, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4811 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_ZVAL_TYPE, op2_addr, IS_DOUBLE, >6
							ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4813 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (!zend_jit_math_double_double(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
					return 0;
				}
				//|	jmp >5
				dasm_put(Dst, 3380);
#line 4819 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!same_ops) {
				//|1:
				dasm_put(Dst, 64);
#line 4822 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op2_info & (MAY_BE_ANY-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >6
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4824 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (!zend_jit_math_double_long(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
					return 0;
				}
				//|	jmp >5
				dasm_put(Dst, 3380);
#line 4829 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.code
			dasm_put(Dst, 387);
#line 4831 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if ((op1_info & MAY_BE_DOUBLE) &&
	           !(op1_info & MAY_BE_LONG) &&
	           (op2_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
	           (res_info & MAY_BE_DOUBLE)) {
		if (op1_info & (MAY_BE_ANY-MAY_BE_DOUBLE)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >6
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4838 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op2_info & MAY_BE_DOUBLE) {
			if (!same_ops && (op2_info & (MAY_BE_ANY-MAY_BE_DOUBLE))) {
				if (!same_ops && (op2_info & MAY_BE_LONG)) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >1
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4843 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >6
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4845 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (!zend_jit_math_double_double(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
				return 0;
			}
		}
		if (!same_ops && (op2_info & MAY_BE_LONG)) {
			if (op2_info & MAY_BE_DOUBLE) {
				//|.cold_code
				dasm_put(Dst, 290);
#line 4854 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		    //|1:
		    dasm_put(Dst, 64);
#line 4856 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op2_info & (MAY_BE_ANY-(MAY_BE_DOUBLE|MAY_BE_LONG))) {
				//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >6
					ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4858 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!zend_jit_math_double_long(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
				return 0;
			}
			if (op2_info & MAY_BE_DOUBLE) {
				//|	jmp >5
				//|.code
				dasm_put(Dst, 3374);
#line 4865 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else if ((op2_info & MAY_BE_DOUBLE) &&
	           !(op2_info & MAY_BE_LONG) &&
	           (op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
	           (res_info & MAY_BE_DOUBLE)) {
		if (op2_info & (MAY_BE_ANY-MAY_BE_DOUBLE)) {
			//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >6
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4873 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & MAY_BE_DOUBLE) {
			if (!same_ops && (op1_info & (MAY_BE_ANY-MAY_BE_DOUBLE))) {
				if (!same_ops && (op1_info & MAY_BE_LONG)) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4878 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >6
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 4880 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (!zend_jit_math_double_double(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
				return 0;
			}
		}
		if (!same_ops && (op1_info & MAY_BE_LONG)) {
			if (op1_info & MAY_BE_DOUBLE) {
				//|.cold_code
				dasm_put(Dst, 290);
#line 4889 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|1:
			dasm_put(Dst, 64);
#line 4891 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & (MAY_BE_ANY-(MAY_BE_DOUBLE|MAY_BE_LONG))) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >6
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 4893 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!zend_jit_math_long_double(Dst, opcode, op1_addr, op2_addr, res_addr, res_use_info)) {
				return 0;
			}
			if (op1_info & MAY_BE_DOUBLE) {
				//|	jmp >5
				//|.code
				dasm_put(Dst, 3374);
#line 4900 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	//|5:
	dasm_put(Dst, 495);
#line 4905 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) ||
		(op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE)))) {
		if ((op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		    (op2_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		    (res_info & (MAY_BE_LONG|MAY_BE_DOUBLE))) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 4912 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|6:
		dasm_put(Dst, 3385);
#line 4914 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(res_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, res_var);
			//|	LOAD_ZVAL_ADDR FCARG1a, real_addr
				if (Z_MODE(real_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(real_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(real_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(real_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(real_addr)))>>32));
					}
				} else if (Z_MODE(real_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(real_addr)) {
			dasm_put(Dst, 2314, (Z_REG(real_addr)), Z_OFFSET(real_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(real_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4917 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (Z_REG(res_addr) != ZREG_FCARG1a || Z_OFFSET(res_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(res_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4919 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_MODE(op1_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var);
			if (!zend_jit_spill_store(Dst, op1_addr, real_addr, op1_info, 1)) {
				return 0;
			}
			op1_addr = real_addr;
		}
		//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 4928 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(op2_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var);
			if (!zend_jit_spill_store(Dst, op2_addr, real_addr, op2_info, 1)) {
				return 0;
			}
			op2_addr = real_addr;
		}
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 3398, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 4937 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 12
			//|	PUSH_ZVAL_ADDR op2_addr, r0
		//|.endif
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 4942 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opcode == ZEND_ADD) {
			//|	EXT_CALL add_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(add_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(add_function));
					} else {
					if (IS_SIGNED_32BIT(add_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)add_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)add_function)), (unsigned int)((((ptrdiff_t)add_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 4944 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_SUB) {
			//|	EXT_CALL sub_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(sub_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(sub_function));
					} else {
					if (IS_SIGNED_32BIT(sub_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)sub_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)sub_function)), (unsigned int)((((ptrdiff_t)sub_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 4946 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_MUL) {
			//|	EXT_CALL mul_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(mul_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(mul_function));
					} else {
					if (IS_SIGNED_32BIT(mul_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)mul_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)mul_function)), (unsigned int)((((ptrdiff_t)mul_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 4948 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_DIV) {
			//|	EXT_CALL div_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(div_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(div_function));
					} else {
					if (IS_SIGNED_32BIT(div_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)div_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)div_function)), (unsigned int)((((ptrdiff_t)div_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 4950 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		//|	FREE_OP op1_type, op1, op1_info, 0, opline
			if (op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 4957 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	FREE_OP op2_type, op2, op2_info, 0, opline
			if (op2_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)));
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op2_info) & MAY_BE_GUARD)
				 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 4958 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			if (opline->opcode == ZEND_ASSIGN_DIM_OP && (opline->op2_type & (IS_VAR|IS_TMP_VAR))) {
				//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
						if (IS_SIGNED_32BIT(&executor_globals.exception)) {
				dasm_put(Dst, 72, &executor_globals.exception);
						} else {
				dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
						}
#line 4961 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jne ->exception_handler_free_op2
				dasm_put(Dst, 3412);
#line 4962 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RX) {
				zend_jit_check_exception_undef_result(Dst, opline);
			} else {
				zend_jit_check_exception(Dst);
			}
		}
		if (Z_MODE(res_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, res_var);
			if (!zend_jit_load_reg(Dst, real_addr, res_addr, res_info)) {
				return 0;
			}
		}
		if ((op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		    (op2_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		    (res_info & (MAY_BE_LONG|MAY_BE_DOUBLE))) {
			//|	jmp <5
			//|.code
			dasm_put(Dst, 3417);
#line 4979 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_math(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr, uint32_t op2_info, zend_jit_addr op2_addr, uint32_t res_use_info, uint32_t res_info, zend_jit_addr res_addr, int may_overflow, int may_throw)
{
	ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF));
	ZEND_ASSERT((op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
	    (op2_info & (MAY_BE_LONG|MAY_BE_DOUBLE)));

	if (!zend_jit_math_helper(Dst, opline, opline->opcode, opline->op1_type, opline->op1, op1_addr, op1_info, opline->op2_type, opline->op2, op2_addr, op2_info, opline->result.var, res_addr, res_info, res_use_info, may_overflow, may_throw)) {
		return 0;
	}
	if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) {
		return 0;
	}
	return 1;
}

static int zend_jit_add_arrays(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, uint32_t op2_info, zend_jit_addr res_addr)
{
	zend_jit_addr op1_addr = OP1_ADDR();
	zend_jit_addr op2_addr = OP2_ADDR();

	//|	GET_ZVAL_LVAL ZREG_FCARG1a, op1_addr
		if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
			if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
	dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
			} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
	dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
					} else {
	dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
					}
			}
		} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
	dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
		} else if (Z_MODE(op1_addr) == IS_REG) {
			if (ZREG_FCARG1a != Z_REG(op1_addr)) {
	dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
			}
		} else {
			ZEND_UNREACHABLE();
		}
#line 5006 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
			if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
	dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
			} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
	dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
					} else {
	dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			}
		} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
	dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
		} else if (Z_MODE(op2_addr) == IS_REG) {
			if (ZREG_FCARG2a != Z_REG(op2_addr)) {
	dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
			}
		} else {
			ZEND_UNREACHABLE();
		}
#line 5007 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	EXT_CALL zend_jit_add_arrays_helper, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_add_arrays_helper)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_add_arrays_helper));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_add_arrays_helper)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_add_arrays_helper));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_add_arrays_helper)), (unsigned int)((((ptrdiff_t)zend_jit_add_arrays_helper))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 5008 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	SET_ZVAL_PTR res_addr, r0
		ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 5009 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	SET_ZVAL_TYPE_INFO res_addr, IS_ARRAY_EX
	dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
		ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 5010 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline
	dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
		if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
			if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op1_info) & MAY_BE_GUARD)
			 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 5011 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
		if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
			if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op2_info) & MAY_BE_GUARD)
			 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 5012 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_long_math_helper(dasm_State    **Dst,
                                     const zend_op  *opline,
                                     zend_uchar      opcode,
                                     zend_uchar      op1_type,
                                     znode_op        op1,
                                     zend_jit_addr   op1_addr,
                                     uint32_t        op1_info,
                                     zend_ssa_range *op1_range,
                                     zend_uchar      op2_type,
                                     znode_op        op2,
                                     zend_jit_addr   op2_addr,
                                     uint32_t        op2_info,
                                     zend_ssa_range *op2_range,
                                     uint32_t        res_var,
                                     zend_jit_addr   res_addr,
                                     uint32_t        res_info,
                                     uint32_t        res_use_info,
                                     int             may_throw)
/* Labels: 6 */
{
	zend_bool same_ops = zend_jit_same_addr(op1_addr, op2_addr);
	zend_reg result_reg;

	if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
		//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >6
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 5040 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (!same_ops && (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG))) {
		//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >6
			ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 5043 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (opcode == ZEND_MOD) {
		result_reg = ZREG_RAX;
	} else if (Z_MODE(res_addr) == IS_REG) {
		if ((opline->opcode == ZEND_SL || opline->opcode == ZEND_SR)
		 && opline->op2_type != IS_CONST) {
			result_reg = ZREG_R0;
		} else {
			result_reg = Z_REG(res_addr);
		}
	} else if (Z_MODE(op1_addr) == IS_REG && Z_LAST_USE(op1_addr)) {
		result_reg = Z_REG(op1_addr);
	} else if (Z_REG(res_addr) != ZREG_R0) {
		result_reg = ZREG_R0;
	} else {
		/* ASSIGN_DIM_OP */
		if (sizeof(void*) == 4
		 && (opcode == ZEND_SL || opcode == ZEND_SR)
		 && Z_MODE(op2_addr) != IS_CONST_ZVAL) {
			result_reg = ZREG_R2;
		} else {
			result_reg = ZREG_FCARG1a;
		}
	}

	if (opcode == ZEND_SL) {
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
			zend_long op2_lval = Z_LVAL_P(Z_ZV(op2_addr));

			if (UNEXPECTED((zend_ulong)op2_lval >= SIZEOF_ZEND_LONG * 8)) {
				if (EXPECTED(op2_lval > 0)) {
					//|	xor Ra(result_reg), Ra(result_reg)
					dasm_put(Dst, 1741, (result_reg), (result_reg));
#line 5076 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					zend_jit_invalidate_var_if_necessary(Dst, op1_type, op1_addr, op1);
					zend_jit_invalidate_var_if_necessary(Dst, op2_type, op2_addr, op2);
					//|	SET_EX_OPLINE opline, r0
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
#line 5080 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jmp ->negative_shift
					dasm_put(Dst, 3423);
#line 5081 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (Z_MODE(op1_addr) == IS_REG && op2_lval == 1) {
				//|	lea Ra(result_reg), [Ra(Z_REG(op1_addr))+Ra(Z_REG(op1_addr))]
				dasm_put(Dst, 2434, (result_reg), (Z_REG(op1_addr)), (Z_REG(op1_addr)), 0);
#line 5084 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	GET_ZVAL_LVAL result_reg, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (result_reg), (result_reg));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (result_reg != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
						}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5086 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	shl Ra(result_reg), op2_lval
				dasm_put(Dst, 2455, (result_reg), op2_lval);
#line 5087 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (Z_MODE(op2_addr) != IS_REG || Z_REG(op2_addr) != ZREG_RCX) {
				//|	GET_ZVAL_LVAL ZREG_RCX, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_RCX), (ZREG_RCX));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
				dasm_put(Dst, 1749, (ZREG_RCX), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_RCX), Z_LVAL_P(Z_ZV(op2_addr)));
								}
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_RCX), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else if (Z_MODE(op2_addr) == IS_REG) {
						if (ZREG_RCX != Z_REG(op2_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_RCX));
						}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5091 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!op2_range ||
			     op2_range->min < 0 ||
			     op2_range->max >= SIZEOF_ZEND_LONG * 8) {
				//|	cmp r1, (SIZEOF_ZEND_LONG*8)
				//|	jae >1
				//|.cold_code
				dasm_put(Dst, 3428, (SIZEOF_ZEND_LONG*8));
#line 5098 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	cmp r1, 0
				//|	mov Ra(result_reg), 0
				//|	jg >1
				dasm_put(Dst, 3439, (result_reg));
#line 5102 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				zend_jit_invalidate_var_if_necessary(Dst, op1_type, op1_addr, op1);
				zend_jit_invalidate_var_if_necessary(Dst, op2_type, op2_addr, op2);
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 5105 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp ->negative_shift
				//|.code
				dasm_put(Dst, 3460);
#line 5107 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	GET_ZVAL_LVAL result_reg, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (result_reg), (result_reg));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (result_reg != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5109 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	shl Ra(result_reg), cl
			//|1:
			dasm_put(Dst, 3466, (result_reg));
#line 5111 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opcode == ZEND_SR) {
		//|	GET_ZVAL_LVAL result_reg, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (result_reg != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5114 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
			zend_long op2_lval = Z_LVAL_P(Z_ZV(op2_addr));

			if (UNEXPECTED((zend_ulong)op2_lval >= SIZEOF_ZEND_LONG * 8)) {
				if (EXPECTED(op2_lval > 0)) {
					//|	sar Ra(result_reg), (SIZEOF_ZEND_LONG * 8) - 1
					dasm_put(Dst, 3474, (result_reg), (SIZEOF_ZEND_LONG * 8) - 1);
#line 5120 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					zend_jit_invalidate_var_if_necessary(Dst, op1_type, op1_addr, op1);
					zend_jit_invalidate_var_if_necessary(Dst, op2_type, op2_addr, op2);
					//|	SET_EX_OPLINE opline, r0
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
#line 5124 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jmp ->negative_shift
					dasm_put(Dst, 3423);
#line 5125 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	sar Ra(result_reg), op2_lval
				dasm_put(Dst, 3474, (result_reg), op2_lval);
#line 5128 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (Z_MODE(op2_addr) != IS_REG || Z_REG(op2_addr) != ZREG_RCX) {
				//|	GET_ZVAL_LVAL ZREG_RCX, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_RCX), (ZREG_RCX));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
				dasm_put(Dst, 1749, (ZREG_RCX), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_RCX), Z_LVAL_P(Z_ZV(op2_addr)));
								}
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_RCX), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else if (Z_MODE(op2_addr) == IS_REG) {
						if (ZREG_RCX != Z_REG(op2_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_RCX));
						}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5132 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!op2_range ||
			     op2_range->min < 0 ||
			     op2_range->max >= SIZEOF_ZEND_LONG * 8) {
				//|	cmp r1, (SIZEOF_ZEND_LONG*8)
				//|	jae >1
				//|.cold_code
				dasm_put(Dst, 3428, (SIZEOF_ZEND_LONG*8));
#line 5139 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	cmp r1, 0
				//|	mov r1, (SIZEOF_ZEND_LONG * 8) - 1
				//|	jg >1
				dasm_put(Dst, 3482, (SIZEOF_ZEND_LONG * 8) - 1);
#line 5143 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				zend_jit_invalidate_var_if_necessary(Dst, op1_type, op1_addr, op1);
				zend_jit_invalidate_var_if_necessary(Dst, op2_type, op2_addr, op2);
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 5146 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp ->negative_shift
				//|.code
				dasm_put(Dst, 3460);
#line 5148 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|1:
			//|	sar Ra(result_reg), cl
			dasm_put(Dst, 3498, (result_reg));
#line 5151 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opcode == ZEND_MOD) {
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
			zend_long op2_lval = Z_LVAL_P(Z_ZV(op2_addr));

			if (op2_lval == 0) {
				zend_jit_invalidate_var_if_necessary(Dst, op1_type, op1_addr, op1);
				zend_jit_invalidate_var_if_necessary(Dst, op2_type, op2_addr, op2);
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 5160 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp ->mod_by_zero
				dasm_put(Dst, 3507);
#line 5161 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (zend_long_is_power_of_two(op2_lval) && op1_range && op1_range->min >= 0) {
				zval tmp;
				zend_jit_addr tmp_addr;
				zend_reg tmp_reg;

				/* Optimisation for mod of power of 2 */
				ZVAL_LONG(&tmp, op2_lval - 1);
				tmp_addr = ZEND_ADDR_CONST_ZVAL(&tmp);
				if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
					tmp_reg = ZREG_R1;
				} else if (result_reg != ZREG_R0) {
					tmp_reg = ZREG_R0;
				} else {
					tmp_reg = ZREG_R1;
				}
				//|	GET_ZVAL_LVAL result_reg, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (result_reg), (result_reg));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (result_reg != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
						}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5177 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	LONG_MATH ZEND_BW_AND, result_reg, tmp_addr, tmp_reg
					switch (ZEND_BW_AND) {
						case ZEND_ADD:
					if (Z_MODE(tmp_addr) == IS_CONST_ZVAL) {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(tmp_addr)))) {
				dasm_put(Dst, 2513, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(tmp_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(tmp_addr)))>>32), (tmp_reg), (result_reg));
							} else {
				dasm_put(Dst, 2246, (result_reg), Z_LVAL_P(Z_ZV(tmp_addr)));
							}
					} else if (Z_MODE(tmp_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2527, (result_reg), (Z_REG(tmp_addr)), Z_OFFSET(tmp_addr));
					} else if (Z_MODE(tmp_addr) == IS_REG) {
				dasm_put(Dst, 2447, (Z_REG(tmp_addr)), (result_reg));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_SUB:
					if (Z_MODE(tmp_addr) == IS_CONST_ZVAL) {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(tmp_addr)))) {
				dasm_put(Dst, 2537, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(tmp_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(tmp_addr)))>>32), (tmp_reg), (result_reg));
							} else {
				dasm_put(Dst, 2262, (result_reg), Z_LVAL_P(Z_ZV(tmp_addr)));
							}
					} else if (Z_MODE(tmp_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2551, (result_reg), (Z_REG(tmp_addr)), Z_OFFSET(tmp_addr));
					} else if (Z_MODE(tmp_addr) == IS_REG) {
				dasm_put(Dst, 2480, (Z_REG(tmp_addr)), (result_reg));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_MUL:
					if (Z_MODE(tmp_addr) == IS_CONST_ZVAL) {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(tmp_addr)))) {
				dasm_put(Dst, 2561, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(tmp_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(tmp_addr)))>>32), (result_reg), (tmp_reg));
							} else {
				dasm_put(Dst, 2576, (result_reg), (result_reg), Z_LVAL_P(Z_ZV(tmp_addr)));
							}
					} else if (Z_MODE(tmp_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2585, (result_reg), (Z_REG(tmp_addr)), Z_OFFSET(tmp_addr));
					} else if (Z_MODE(tmp_addr) == IS_REG) {
				dasm_put(Dst, 2488, (result_reg), (Z_REG(tmp_addr)));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_BW_OR:
					if (Z_MODE(tmp_addr) == IS_CONST_ZVAL) {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(tmp_addr)))) {
				dasm_put(Dst, 2596, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(tmp_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(tmp_addr)))>>32), (tmp_reg), (result_reg));
							} else {
				dasm_put(Dst, 2610, (result_reg), Z_LVAL_P(Z_ZV(tmp_addr)));
							}
					} else if (Z_MODE(tmp_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2617, (result_reg), (Z_REG(tmp_addr)), Z_OFFSET(tmp_addr));
					} else if (Z_MODE(tmp_addr) == IS_REG) {
				dasm_put(Dst, 2497, (Z_REG(tmp_addr)), (result_reg));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_BW_AND:
					if (Z_MODE(tmp_addr) == IS_CONST_ZVAL) {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(tmp_addr)))) {
				dasm_put(Dst, 2627, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(tmp_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(tmp_addr)))>>32), (tmp_reg), (result_reg));
							} else {
				dasm_put(Dst, 2641, (result_reg), Z_LVAL_P(Z_ZV(tmp_addr)));
							}
					} else if (Z_MODE(tmp_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2648, (result_reg), (Z_REG(tmp_addr)), Z_OFFSET(tmp_addr));
					} else if (Z_MODE(tmp_addr) == IS_REG) {
				dasm_put(Dst, 2505, (Z_REG(tmp_addr)), (result_reg));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						case ZEND_BW_XOR:
					if (Z_MODE(tmp_addr) == IS_CONST_ZVAL) {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(tmp_addr)))) {
				dasm_put(Dst, 2658, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(tmp_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(tmp_addr)))>>32), (tmp_reg), (result_reg));
							} else {
				dasm_put(Dst, 2672, (result_reg), Z_LVAL_P(Z_ZV(tmp_addr)));
							}
					} else if (Z_MODE(tmp_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 2680, (result_reg), (Z_REG(tmp_addr)), Z_OFFSET(tmp_addr));
					} else if (Z_MODE(tmp_addr) == IS_REG) {
				dasm_put(Dst, 1741, (Z_REG(tmp_addr)), (result_reg));
					} else {
						ZEND_UNREACHABLE();
					}
							break;
						default:
							ZEND_UNREACHABLE();
					}
#line 5178 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				(void)tmp_reg;
			} else {
				if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RAX) {
					//|	mov aword T1, r0 // save
					dasm_put(Dst, 3512);
#line 5182 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RCX) {
					//|	mov aword T1, Ra(ZREG_RCX) // save
					dasm_put(Dst, 3517, (ZREG_RCX));
#line 5184 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				result_reg = ZREG_RDX;
				if (op2_lval == -1) {
					//|	xor Ra(result_reg), Ra(result_reg)
					dasm_put(Dst, 1741, (result_reg), (result_reg));
#line 5188 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	GET_ZVAL_LVAL ZREG_RAX, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_RAX), (ZREG_RAX));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
					dasm_put(Dst, 1749, (ZREG_RAX), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_RAX), Z_LVAL_P(Z_ZV(op1_addr)));
									}
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_RAX), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else if (Z_MODE(op1_addr) == IS_REG) {
							if (ZREG_RAX != Z_REG(op1_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_RAX));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 5190 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	GET_ZVAL_LVAL ZREG_RCX, op2_addr
						if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_RCX), (ZREG_RCX));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
					dasm_put(Dst, 1749, (ZREG_RCX), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_RCX), Z_LVAL_P(Z_ZV(op2_addr)));
									}
							}
						} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_RCX), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else if (Z_MODE(op2_addr) == IS_REG) {
							if (ZREG_RCX != Z_REG(op2_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_RCX));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 5191 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.if X64
					//|	cqo
					//|.else
					//|	cdq
					//|.endif
					//|	idiv Ra(ZREG_RCX)
					dasm_put(Dst, 3524, (ZREG_RCX));
#line 5197 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RAX) {
					//|	mov r0, aword T1 // restore
					dasm_put(Dst, 3534);
#line 5200 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RCX) {
					//|	mov Ra(ZREG_RCX), aword T1 // restore
					dasm_put(Dst, 3539, (ZREG_RCX));
#line 5202 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
		} else {
			if (!op2_range || (op2_range->min <= 0 && op2_range->max >= 0)) {
				if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					//|	cmp aword [Ra(Z_REG(op2_addr))+Z_OFFSET(op2_addr)], 0
					dasm_put(Dst, 3546, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
#line 5208 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (Z_MODE(op2_addr) == IS_REG) {
					//|	test Ra(Z_REG(op2_addr)), Ra(Z_REG(op2_addr))
					dasm_put(Dst, 3555, (Z_REG(op2_addr)), (Z_REG(op2_addr)));
#line 5210 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	jz >1
				//|.cold_code
				dasm_put(Dst, 3563);
#line 5213 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 5214 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				zend_jit_invalidate_var_if_necessary(Dst, op1_type, op1_addr, op1);
				zend_jit_invalidate_var_if_necessary(Dst, op2_type, op2_addr, op2);
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 5217 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp ->mod_by_zero
				//|.code
				dasm_put(Dst, 3569);
#line 5219 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			/* Prevent overflow error/crash if op1 == LONG_MIN and op2 == -1 */
			if (!op2_range || (op2_range->min <= -1 && op2_range->max >= -1)) {
				if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					//|	cmp aword [Ra(Z_REG(op2_addr))+Z_OFFSET(op2_addr)], -1
					dasm_put(Dst, 3575, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
#line 5225 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (Z_MODE(op2_addr) == IS_REG) {
					//|	cmp Ra(Z_REG(op2_addr)), -1
					dasm_put(Dst, 3585, (Z_REG(op2_addr)));
#line 5227 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	jz >1
				//|.cold_code
				dasm_put(Dst, 3563);
#line 5230 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	SET_ZVAL_LVAL res_addr, 0
				dasm_put(Dst, 64);
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 2047, (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2057, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
#line 5232 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) {
						if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_LONG) {
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_LONG
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_LONG);
#line 5236 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
				}
				//|	jmp >5
				//|.code
				dasm_put(Dst, 3374);
#line 5241 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RAX) {
				//|	mov aword T1, r0 // save
				dasm_put(Dst, 3512);
#line 5245 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			result_reg = ZREG_RDX;
			//|	GET_ZVAL_LVAL ZREG_RAX, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_RAX), (ZREG_RAX));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (ZREG_RAX), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_RAX), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_RAX), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (ZREG_RAX != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_RAX));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if X64
			//|	cqo
			//|.else
			//|	cdq
			//|.endif
			dasm_put(Dst, 3594);
#line 5253 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				//|	idiv aword [Ra(Z_REG(op2_addr))+Z_OFFSET(op2_addr)]
				dasm_put(Dst, 3597, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
#line 5255 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (Z_MODE(op2_addr) == IS_REG) {
				//|	idiv Ra(Z_REG(op2_addr))
				dasm_put(Dst, 3526, (Z_REG(op2_addr)));
#line 5257 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RAX) {
				//|	mov r0, aword T1 // restore
				dasm_put(Dst, 3534);
#line 5260 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else if (same_ops) {
		//|	GET_ZVAL_LVAL result_reg, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (result_reg != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5264 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	LONG_MATH_REG opcode, Ra(result_reg), Ra(result_reg)
			switch (opcode) {
				case ZEND_ADD:
		dasm_put(Dst, 2447, (result_reg), (result_reg));
					break;
				case ZEND_SUB:
		dasm_put(Dst, 2480, (result_reg), (result_reg));
					break;
				case ZEND_MUL:
		dasm_put(Dst, 2488, (result_reg), (result_reg));
					break;
				case ZEND_BW_OR:
		dasm_put(Dst, 2497, (result_reg), (result_reg));
					break;
				case ZEND_BW_AND:
		dasm_put(Dst, 2505, (result_reg), (result_reg));
					break;
				case ZEND_BW_XOR:
		dasm_put(Dst, 1741, (result_reg), (result_reg));
					break;
				default:
					ZEND_UNREACHABLE();
			}
#line 5265 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		zend_reg tmp_reg;

		if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_R0) {
			tmp_reg = ZREG_R1;
		} else if (result_reg != ZREG_R0) {
			tmp_reg = ZREG_R0;
		} else {
			tmp_reg = ZREG_R1;
		}
		//|	GET_ZVAL_LVAL result_reg, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (result_reg), (result_reg));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (result_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (result_reg), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (result_reg), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (result_reg != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (result_reg));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5276 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	LONG_MATH opcode, result_reg, op2_addr, tmp_reg
			switch (opcode) {
				case ZEND_ADD:
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 2513, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
					} else {
		dasm_put(Dst, 2246, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2527, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
		dasm_put(Dst, 2447, (Z_REG(op2_addr)), (result_reg));
			} else {
				ZEND_UNREACHABLE();
			}
					break;
				case ZEND_SUB:
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 2537, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
					} else {
		dasm_put(Dst, 2262, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2551, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
		dasm_put(Dst, 2480, (Z_REG(op2_addr)), (result_reg));
			} else {
				ZEND_UNREACHABLE();
			}
					break;
				case ZEND_MUL:
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 2561, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (result_reg), (tmp_reg));
					} else {
		dasm_put(Dst, 2576, (result_reg), (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2585, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
		dasm_put(Dst, 2488, (result_reg), (Z_REG(op2_addr)));
			} else {
				ZEND_UNREACHABLE();
			}
					break;
				case ZEND_BW_OR:
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 2596, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
					} else {
		dasm_put(Dst, 2610, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2617, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
		dasm_put(Dst, 2497, (Z_REG(op2_addr)), (result_reg));
			} else {
				ZEND_UNREACHABLE();
			}
					break;
				case ZEND_BW_AND:
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 2627, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
					} else {
		dasm_put(Dst, 2641, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2648, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
		dasm_put(Dst, 2505, (Z_REG(op2_addr)), (result_reg));
			} else {
				ZEND_UNREACHABLE();
			}
					break;
				case ZEND_BW_XOR:
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 2658, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (tmp_reg), (result_reg));
					} else {
		dasm_put(Dst, 2672, (result_reg), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 2680, (result_reg), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
		dasm_put(Dst, 1741, (Z_REG(op2_addr)), (result_reg));
			} else {
				ZEND_UNREACHABLE();
			}
					break;
				default:
					ZEND_UNREACHABLE();
			}
#line 5277 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		(void)tmp_reg;
	}

	if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != result_reg) {
		//|	SET_ZVAL_LVAL res_addr, Ra(result_reg)
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (result_reg), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (result_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
#line 5282 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
		if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != Z_REG(res_addr) || Z_OFFSET(op1_addr) != Z_OFFSET(res_addr)) {
			if ((res_use_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF|MAY_BE_GUARD)) != MAY_BE_LONG) {
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_LONG
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_LONG);
#line 5287 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) ||
		(op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG))) {
		if ((op1_info & MAY_BE_LONG) &&
		    (op2_info & MAY_BE_LONG)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 5296 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|6:
		dasm_put(Dst, 3385);
#line 5298 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(res_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, res_var);
			//|	LOAD_ZVAL_ADDR FCARG1a, real_addr
				if (Z_MODE(real_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(real_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(real_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(real_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(real_addr)))>>32));
					}
				} else if (Z_MODE(real_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(real_addr)) {
			dasm_put(Dst, 2314, (Z_REG(real_addr)), Z_OFFSET(real_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(real_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5301 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (Z_REG(res_addr) != ZREG_FCARG1a || Z_OFFSET(res_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(res_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5303 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_MODE(op1_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var);
			if (!zend_jit_spill_store(Dst, op1_addr, real_addr, op1_info, 1)) {
				return 0;
			}
			op1_addr = real_addr;
		}
		//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5312 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(op2_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var);
			if (!zend_jit_spill_store(Dst, op2_addr, real_addr, op2_info, 1)) {
				return 0;
			}
			op2_addr = real_addr;
		}
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 3398, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5321 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 12
			//|	PUSH_ZVAL_ADDR op2_addr, r0
		//|.endif
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 5326 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opcode == ZEND_BW_OR) {
			//|	EXT_CALL bitwise_or_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(bitwise_or_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(bitwise_or_function));
					} else {
					if (IS_SIGNED_32BIT(bitwise_or_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)bitwise_or_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)bitwise_or_function)), (unsigned int)((((ptrdiff_t)bitwise_or_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5328 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_BW_AND) {
			//|	EXT_CALL bitwise_and_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(bitwise_and_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(bitwise_and_function));
					} else {
					if (IS_SIGNED_32BIT(bitwise_and_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)bitwise_and_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)bitwise_and_function)), (unsigned int)((((ptrdiff_t)bitwise_and_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5330 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_BW_XOR) {
			//|	EXT_CALL bitwise_xor_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(bitwise_xor_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(bitwise_xor_function));
					} else {
					if (IS_SIGNED_32BIT(bitwise_xor_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)bitwise_xor_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)bitwise_xor_function)), (unsigned int)((((ptrdiff_t)bitwise_xor_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5332 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_SL) {
			//|	EXT_CALL shift_left_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(shift_left_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(shift_left_function));
					} else {
					if (IS_SIGNED_32BIT(shift_left_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)shift_left_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)shift_left_function)), (unsigned int)((((ptrdiff_t)shift_left_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5334 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_SR) {
			//|	EXT_CALL shift_right_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(shift_right_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(shift_right_function));
					} else {
					if (IS_SIGNED_32BIT(shift_right_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)shift_right_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)shift_right_function)), (unsigned int)((((ptrdiff_t)shift_right_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5336 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opcode == ZEND_MOD) {
			//|	EXT_CALL mod_function, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(mod_function)) {
			dasm_put(Dst, 46, (ptrdiff_t)(mod_function));
					} else {
					if (IS_SIGNED_32BIT(mod_function)) {
			dasm_put(Dst, 50, ((ptrdiff_t)mod_function));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)mod_function)), (unsigned int)((((ptrdiff_t)mod_function))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5338 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		if (op1_addr == res_addr && (op2_info & MAY_BE_RCN)) {
			/* compound assignment may decrement "op2" refcount */
			op2_info |= MAY_BE_RC1;
		}
		//|	FREE_OP op1_type, op1, op1_info, 0, opline
			if (op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 5349 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	FREE_OP op2_type, op2, op2_info, 0, opline
			if (op2_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)));
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op2_info) & MAY_BE_GUARD)
				 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 5350 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			if (opline->opcode == ZEND_ASSIGN_DIM_OP && (opline->op2_type & (IS_VAR|IS_TMP_VAR))) {
				//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
						if (IS_SIGNED_32BIT(&executor_globals.exception)) {
				dasm_put(Dst, 72, &executor_globals.exception);
						} else {
				dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
						}
#line 5353 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jne ->exception_handler_free_op2
				dasm_put(Dst, 3412);
#line 5354 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RX) {
				zend_jit_check_exception_undef_result(Dst, opline);
			} else {
				zend_jit_check_exception(Dst);
			}
		}
		if (Z_MODE(res_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, res_var);
			if (!zend_jit_load_reg(Dst, real_addr, res_addr, res_info)) {
				return 0;
			}
		}
		if ((op1_info & MAY_BE_LONG) &&
		    (op2_info & MAY_BE_LONG)) {
			//|	jmp >5
			//|.code
			dasm_put(Dst, 3374);
#line 5370 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	//|5:
	dasm_put(Dst, 495);
#line 5373 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_long_math(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_ssa_range *op1_range, zend_jit_addr op1_addr, uint32_t op2_info, zend_ssa_range *op2_range, zend_jit_addr op2_addr, uint32_t res_use_info, uint32_t res_info, zend_jit_addr res_addr, int may_throw)
{
	ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF));
	ZEND_ASSERT((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG));

	if (!zend_jit_long_math_helper(Dst, opline, opline->opcode,
			opline->op1_type, opline->op1, op1_addr, op1_info, op1_range,
			opline->op2_type, opline->op2, op2_addr, op2_info, op2_range,
			opline->result.var, res_addr, res_info, res_use_info, may_throw)) {
		return 0;
	}
	if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) {
		return 0;
	}
	return 1;
}

static int zend_jit_concat_helper(dasm_State    **Dst,
                                  const zend_op  *opline,
                                  zend_uchar      op1_type,
                                  znode_op        op1,
                                  zend_jit_addr   op1_addr,
                                  uint32_t        op1_info,
                                  zend_uchar      op2_type,
                                  znode_op        op2,
                                  zend_jit_addr   op2_addr,
                                  uint32_t        op2_info,
                                  zend_jit_addr   res_addr,
                                  int             may_throw)
{
#if 1
	if ((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)) {
		if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF) - MAY_BE_STRING)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, >6
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 5411 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op2_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF) - MAY_BE_STRING)) {
			//|	IF_NOT_ZVAL_TYPE op2_addr, IS_STRING, >6
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3347, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 5414 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_MODE(op1_addr) == IS_MEM_ZVAL && Z_REG(op1_addr) == Z_REG(res_addr) && Z_OFFSET(op1_addr) == Z_OFFSET(res_addr)) {
			if (Z_REG(res_addr) != ZREG_FCARG1a || Z_OFFSET(res_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5418 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5420 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_jit_fast_assign_concat_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fast_assign_concat_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fast_assign_concat_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fast_assign_concat_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fast_assign_concat_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fast_assign_concat_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fast_assign_concat_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5421 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			/* concatination with itself may reduce refcount */
			op2_info |= MAY_BE_RC1;
		} else {
			if (Z_REG(res_addr) != ZREG_FCARG1a || Z_OFFSET(res_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5426 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5428 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 3398, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 5430 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 12
				//|	PUSH_ZVAL_ADDR op2_addr, r0
			//|.endif
			//|	EXT_CALL zend_jit_fast_concat_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fast_concat_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fast_concat_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fast_concat_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fast_concat_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fast_concat_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fast_concat_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 5435 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if not(X64)
			//|	add r4, 12
			//|.endif
		}
		/* concatination with empty string may increase refcount */
		op1_info |= MAY_BE_RCN;
		op2_info |= MAY_BE_RCN;
		//|	FREE_OP op1_type, op1, op1_info, 0, opline
			if (op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 5443 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	FREE_OP op2_type, op2, op2_info, 0, opline
			if (op2_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)));
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op2_info) & MAY_BE_GUARD)
				 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 5444 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|5:
		dasm_put(Dst, 495);
#line 5445 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if ((op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF) - MAY_BE_STRING)) ||
	    (op2_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF) - MAY_BE_STRING))) {
		if ((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 5450 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|6:
			dasm_put(Dst, 3385);
#line 5451 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
#endif
		if (Z_REG(res_addr) != ZREG_FCARG1a || Z_OFFSET(res_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(res_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5455 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5457 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 3398, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5459 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 12
			//|	PUSH_ZVAL_ADDR op2_addr, r0
		//|.endif
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 5464 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL concat_function, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(concat_function)) {
		dasm_put(Dst, 46, (ptrdiff_t)(concat_function));
				} else {
				if (IS_SIGNED_32BIT(concat_function)) {
		dasm_put(Dst, 50, ((ptrdiff_t)concat_function));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)concat_function)), (unsigned int)((((ptrdiff_t)concat_function))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 5465 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		/* concatination with empty string may increase refcount */
		op1_info |= MAY_BE_RCN;
		op2_info |= MAY_BE_RCN;
		//|	FREE_OP op1_type, op1, op1_info, 0, opline
			if (op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 5472 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	FREE_OP op2_type, op2, op2_info, 0, opline
			if (op2_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)));
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op2_info) & MAY_BE_GUARD)
				 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 5473 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			if (Z_MODE(res_addr) == IS_MEM_ZVAL && Z_REG(res_addr) == ZREG_RX) {
				zend_jit_check_exception_undef_result(Dst, opline);
			} else {
				zend_jit_check_exception(Dst);
			}
		}
#if 1
		if ((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING)) {
			//|	jmp <5
			//|.code
			dasm_put(Dst, 3417);
#line 5484 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
#endif

	return 1;
}

static int zend_jit_concat(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, uint32_t op2_info, zend_jit_addr res_addr, int may_throw)
{
	zend_jit_addr op1_addr, op2_addr;

	ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF));
	ZEND_ASSERT((op1_info & MAY_BE_STRING) && (op2_info & MAY_BE_STRING));

	op1_addr = OP1_ADDR();
	op2_addr = OP2_ADDR();

	return zend_jit_concat_helper(Dst, opline, opline->op1_type, opline->op1, op1_addr, op1_info, opline->op2_type, opline->op2, op2_addr, op2_info, res_addr, may_throw);
}

static int zend_jit_fetch_dimension_address_inner(dasm_State **Dst, const zend_op *opline, uint32_t type, uint32_t op1_info, uint32_t op2_info, const void *found_exit_addr, const void *not_found_exit_addr, const void *exit_addr)
/* Labels: 1,2,3,4,5 */
{
	zend_jit_addr op2_addr = OP2_ADDR();
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
	 && type == BP_VAR_R
	 && !exit_addr) {
		int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		if (!exit_addr) {
			return 0;
		}
	}

	if (op2_info & MAY_BE_LONG) {
		zend_bool op2_loaded = 0;
		zend_bool packed_loaded = 0;
		zend_bool bad_packed_key = 0;

		if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_LONG)) {
			//|	// if (EXPECTED(Z_TYPE_P(dim) == IS_LONG))
			//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >3
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3334, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 5528 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & MAY_BE_PACKED_GUARD) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_PACKED_GUARD);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (!exit_addr) {
				return 0;
			}
			if (op1_info & MAY_BE_ARRAY_PACKED) {
				//|	test dword [FCARG1a + offsetof(zend_array, u.flags)], HASH_FLAG_PACKED
				//|	jz &exit_addr
				dasm_put(Dst, 1781, offsetof(zend_array, u.flags), HASH_FLAG_PACKED, (ptrdiff_t)(exit_addr));
#line 5539 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	test dword [FCARG1a + offsetof(zend_array, u.flags)], HASH_FLAG_PACKED
				//|	jnz &exit_addr
				dasm_put(Dst, 1790, offsetof(zend_array, u.flags), HASH_FLAG_PACKED, (ptrdiff_t)(exit_addr));
#line 5542 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (type == BP_VAR_W) {
			//|	// hval = Z_LVAL_P(dim);
			//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
							}
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
					if (ZREG_FCARG2a != Z_REG(op2_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 5547 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op2_loaded = 1;
		}
		if (op1_info & MAY_BE_ARRAY_PACKED) {
			zend_long val = -1;

			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				val = Z_LVAL_P(Z_ZV(op2_addr));
				if (val >= 0 && val < HT_MAX_SIZE) {
					packed_loaded = 1;
				} else {
					bad_packed_key = 1;
				}
			} else {
				if (!op2_loaded) {
					//|	// hval = Z_LVAL_P(dim);
					//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
						if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
					dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
									}
							}
						} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else if (Z_MODE(op2_addr) == IS_REG) {
							if (ZREG_FCARG2a != Z_REG(op2_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 5563 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					op2_loaded = 1;
				}
				packed_loaded = 1;
			}
			if (packed_loaded) {
				//|	// ZEND_HASH_INDEX_FIND(ht, hval, retval, num_undef);
				if (op1_info & MAY_BE_ARRAY_HASH) {
					//|	test dword [FCARG1a + offsetof(zend_array, u.flags)], HASH_FLAG_PACKED
					//|	jz >4 // HASH_FIND
					dasm_put(Dst, 3606, offsetof(zend_array, u.flags), HASH_FLAG_PACKED);
#line 5572 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	// if (EXPECTED((zend_ulong)(_h) < (zend_ulong)(_ht)->nNumUsed))
				//|.if X64
					//|	mov eax, dword [FCARG1a + offsetof(zend_array, nNumUsed)]
					dasm_put(Dst, 3616, offsetof(zend_array, nNumUsed));
#line 5576 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (val == 0) {
						//|	test r0, r0
						dasm_put(Dst, 3620);
#line 5578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (val > 0 && !op2_loaded) {
						//|	cmp r0, val
						dasm_put(Dst, 3624, val);
#line 5580 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	cmp r0, FCARG2a
						dasm_put(Dst, 3630);
#line 5582 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				//|.else
					if (val >= 0 && !op2_loaded) {
						//|	cmp dword [FCARG1a + offsetof(zend_array, nNumUsed)], val
					} else {
						//|	cmp dword [FCARG1a + offsetof(zend_array, nNumUsed)], FCARG2a
					}
				//|.endif
				if (type == BP_JIT_IS) {
					if (not_found_exit_addr) {
						//|	jbe &not_found_exit_addr
						dasm_put(Dst, 3635, (ptrdiff_t)(not_found_exit_addr));
#line 5593 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jbe >9 // NOT_FOUND
						dasm_put(Dst, 3639);
#line 5595 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
					//|	jbe &exit_addr
					dasm_put(Dst, 3635, (ptrdiff_t)(exit_addr));
#line 5598 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (type == BP_VAR_IS && not_found_exit_addr) {
					//|	jbe &not_found_exit_addr
					dasm_put(Dst, 3635, (ptrdiff_t)(not_found_exit_addr));
#line 5600 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (type == BP_VAR_IS && found_exit_addr) {
					//|	jbe >7 // NOT_FOUND
					dasm_put(Dst, 3644);
#line 5602 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jbe >2 // NOT_FOUND
					dasm_put(Dst, 3649);
#line 5604 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	// _ret = &_ht->arData[_h].val;
				if (val >= 0) {
					//|	mov r0, aword [FCARG1a + offsetof(zend_array, arData)]
					dasm_put(Dst, 3654, offsetof(zend_array, arData));
#line 5608 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (val != 0) {
						//|	add r0, val * sizeof(Bucket)
						dasm_put(Dst, 3659, val * sizeof(Bucket));
#line 5610 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|.if X64
						//|	mov r0, FCARG2a
						//|	shl r0, 5
					//|.else
						//|	imul r0, FCARG2a, sizeof(Bucket)
					//|.endif
					//|	add r0, aword [FCARG1a + offsetof(zend_array, arData)]
					dasm_put(Dst, 3664, offsetof(zend_array, arData));
#line 5619 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
		}
		switch (type) {
			case BP_JIT_IS:
				if (op1_info & MAY_BE_ARRAY_HASH) {
					if (packed_loaded) {
						//|	jmp >5
						dasm_put(Dst, 3380);
#line 5627 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|4:
					dasm_put(Dst, 389);
#line 5629 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!op2_loaded) {
						//|	// hval = Z_LVAL_P(dim);
						//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
							if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
								if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
						dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
								} else {
										if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
						dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
										} else {
						dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
										}
								}
							} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
							} else if (Z_MODE(op2_addr) == IS_REG) {
								if (ZREG_FCARG2a != Z_REG(op2_addr)) {
						dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
								}
							} else {
								ZEND_UNREACHABLE();
							}
#line 5632 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					if (packed_loaded) {
						//|	EXT_CALL _zend_hash_index_find, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(_zend_hash_index_find)) {
						dasm_put(Dst, 46, (ptrdiff_t)(_zend_hash_index_find));
								} else {
								if (IS_SIGNED_32BIT(_zend_hash_index_find)) {
						dasm_put(Dst, 50, ((ptrdiff_t)_zend_hash_index_find));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_hash_index_find)), (unsigned int)((((ptrdiff_t)_zend_hash_index_find))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 5635 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	EXT_CALL zend_hash_index_find, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_index_find)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_index_find));
								} else {
								if (IS_SIGNED_32BIT(zend_hash_index_find)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_index_find));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_index_find)), (unsigned int)((((ptrdiff_t)zend_hash_index_find))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 5637 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	test r0, r0
					dasm_put(Dst, 3620);
#line 5639 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (not_found_exit_addr) {
						//|	jz &not_found_exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(not_found_exit_addr));
#line 5641 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jz >9 // NOT_FOUND
						dasm_put(Dst, 3677);
#line 5643 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					if (op2_info & MAY_BE_STRING) {
						//|	jmp >5
						dasm_put(Dst, 3380);
#line 5646 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (packed_loaded) {
					if (op2_info & MAY_BE_STRING) {
						//|	jmp >5
						dasm_put(Dst, 3380);
#line 5650 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (not_found_exit_addr) {
					//|	jmp &not_found_exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(not_found_exit_addr));
#line 5653 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >9 // NOT_FOUND
					dasm_put(Dst, 3682);
#line 5655 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			case BP_VAR_R:
			case BP_VAR_IS:
			case BP_VAR_UNSET:
				if (packed_loaded) {
					if (op1_info & MAY_BE_ARRAY_HASH) {
						//|	IF_NOT_Z_TYPE r0, IS_UNDEF, >8
						dasm_put(Dst, 3687, offsetof(zval, u1.v.type), IS_UNDEF);
#line 5663 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
						/* perform IS_UNDEF check only after result type guard (during deoptimization) */
						if (!found_exit_addr || (op1_info & MAY_BE_ARRAY_HASH)) {
							//|	IF_Z_TYPE r0, IS_UNDEF, &exit_addr
							dasm_put(Dst, 3696, offsetof(zval, u1.v.type), IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 5667 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else if (type == BP_VAR_IS && not_found_exit_addr) {
						//|	IF_Z_TYPE r0, IS_UNDEF, &not_found_exit_addr
						dasm_put(Dst, 3696, offsetof(zval, u1.v.type), IS_UNDEF, (ptrdiff_t)(not_found_exit_addr));
#line 5670 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (type == BP_VAR_IS && found_exit_addr) {
						//|	IF_Z_TYPE r0, IS_UNDEF, >7 // NOT_FOUND
						dasm_put(Dst, 3704, offsetof(zval, u1.v.type), IS_UNDEF);
#line 5672 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_Z_TYPE r0, IS_UNDEF, >2 // NOT_FOUND
						dasm_put(Dst, 3713, offsetof(zval, u1.v.type), IS_UNDEF);
#line 5674 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (!(op1_info & MAY_BE_ARRAY_KEY_LONG) || (packed_loaded && (op1_info & MAY_BE_ARRAY_HASH))) {
					if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
						//|	jmp &exit_addr
						dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 5679 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (type == BP_VAR_IS && not_found_exit_addr) {
						//|	jmp &not_found_exit_addr
						dasm_put(Dst, 151, (ptrdiff_t)(not_found_exit_addr));
#line 5681 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (type == BP_VAR_IS && found_exit_addr) {
						//|	jmp >7 // NOT_FOUND
						dasm_put(Dst, 3722);
#line 5683 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jmp >2 // NOT_FOUND
						dasm_put(Dst, 3727);
#line 5685 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (op1_info & MAY_BE_ARRAY_HASH) {
					//|4:
					dasm_put(Dst, 389);
#line 5689 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!op2_loaded) {
						//|	// hval = Z_LVAL_P(dim);
						//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
							if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
								if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
						dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
								} else {
										if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
						dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
										} else {
						dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
										}
								}
							} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
							} else if (Z_MODE(op2_addr) == IS_REG) {
								if (ZREG_FCARG2a != Z_REG(op2_addr)) {
						dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
								}
							} else {
								ZEND_UNREACHABLE();
							}
#line 5692 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					if (packed_loaded) {
						//|	EXT_CALL _zend_hash_index_find, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(_zend_hash_index_find)) {
						dasm_put(Dst, 46, (ptrdiff_t)(_zend_hash_index_find));
								} else {
								if (IS_SIGNED_32BIT(_zend_hash_index_find)) {
						dasm_put(Dst, 50, ((ptrdiff_t)_zend_hash_index_find));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_hash_index_find)), (unsigned int)((((ptrdiff_t)_zend_hash_index_find))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 5695 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	EXT_CALL zend_hash_index_find, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_index_find)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_index_find));
								} else {
								if (IS_SIGNED_32BIT(zend_hash_index_find)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_index_find));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_index_find)), (unsigned int)((((ptrdiff_t)zend_hash_index_find))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 5697 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	test r0, r0
					dasm_put(Dst, 3620);
#line 5699 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
						//|	jz &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 5701 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (type == BP_VAR_IS && not_found_exit_addr) {
						//|	jz &not_found_exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(not_found_exit_addr));
#line 5703 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (type == BP_VAR_IS && found_exit_addr) {
						//|	jz >7 // NOT_FOUND
						dasm_put(Dst, 3708);
#line 5705 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jz >2 // NOT_FOUND
						dasm_put(Dst, 2022);
#line 5707 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				//|.cold_code
				dasm_put(Dst, 290);
#line 5710 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|2:
				dasm_put(Dst, 2037);
#line 5711 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				switch (type) {
					case BP_VAR_R:
						if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
							//|	// zend_error(E_WARNING,"Undefined array key " ZEND_LONG_FMT, hval);
							//|	// retval = &EG(uninitialized_zval);
							//|	UNDEFINED_OFFSET opline
								if (opline == last_valid_opline) {
									zend_jit_use_last_valid_opline();
							dasm_put(Dst, 3732);
								} else {
								if (opline == last_valid_opline) {
									zend_jit_use_last_valid_opline();
								if (GCC_GLOBAL_REGS) {
							dasm_put(Dst, 8, Dt1(->opline));
								}
								} else {
									if (IS_SIGNED_32BIT(opline)) {
							dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
									} else {
							dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
									}
									if (!GCC_GLOBAL_REGS) {
										zend_jit_reset_last_valid_opline();
									}
								}
							dasm_put(Dst, 3737);
								}
#line 5717 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							//|	jmp >9
							dasm_put(Dst, 3682);
#line 5718 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						break;
					case BP_VAR_IS:
					case BP_VAR_UNSET:
						if (!not_found_exit_addr && !found_exit_addr) {
							//|	// retval = &EG(uninitialized_zval);
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 5725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							//|	jmp >9
							dasm_put(Dst, 3742, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 5726 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						break;
					default:
						ZEND_UNREACHABLE();
				}
				//|.code
				dasm_put(Dst, 387);
#line 5732 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_RW:
				if (packed_loaded) {
					//|	IF_NOT_Z_TYPE r0, IS_UNDEF, >8
					dasm_put(Dst, 3687, offsetof(zval, u1.v.type), IS_UNDEF);
#line 5736 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|2:
				//|4:
				dasm_put(Dst, 3755);
#line 5739 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!op2_loaded) {
					//|	// hval = Z_LVAL_P(dim);
					//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
						if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
					dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
									}
							}
						} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else if (Z_MODE(op2_addr) == IS_REG) {
							if (ZREG_FCARG2a != Z_REG(op2_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 5742 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 5744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (packed_loaded) {
					//|	EXT_CALL zend_jit_hash_index_lookup_rw_no_packed, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_hash_index_lookup_rw_no_packed)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_hash_index_lookup_rw_no_packed));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_hash_index_lookup_rw_no_packed)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_hash_index_lookup_rw_no_packed));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_hash_index_lookup_rw_no_packed)), (unsigned int)((((ptrdiff_t)zend_jit_hash_index_lookup_rw_no_packed))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL zend_jit_hash_index_lookup_rw, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_hash_index_lookup_rw)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_hash_index_lookup_rw));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_hash_index_lookup_rw)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_hash_index_lookup_rw));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_hash_index_lookup_rw)), (unsigned int)((((ptrdiff_t)zend_jit_hash_index_lookup_rw))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5748 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	test r0, r0
				//|	jz >9
				dasm_put(Dst, 3760);
#line 5751 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_W:
				if (packed_loaded) {
					//|	IF_NOT_Z_TYPE r0, IS_UNDEF, >8
					dasm_put(Dst, 3687, offsetof(zval, u1.v.type), IS_UNDEF);
#line 5755 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (!(op1_info & MAY_BE_ARRAY_KEY_LONG) || packed_loaded || bad_packed_key) {
					//|2:
					//|	//retval = zend_hash_index_add_new(ht, hval, &EG(uninitialized_zval));
					dasm_put(Dst, 2037);
#line 5759 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!op2_loaded) {
						//|	// hval = Z_LVAL_P(dim);
						//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
							if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
								if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
						dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
								} else {
										if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
						dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
										} else {
						dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
										}
								}
							} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
							} else if (Z_MODE(op2_addr) == IS_REG) {
								if (ZREG_FCARG2a != Z_REG(op2_addr)) {
						dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
								}
							} else {
								ZEND_UNREACHABLE();
							}
#line 5762 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|.if X64
						//|	LOAD_ADDR_ZTS CARG3, executor_globals, uninitialized_zval
								if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
						dasm_put(Dst, 3388, ((ptrdiff_t)&executor_globals.uninitialized_zval));
								} else {
						dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
								}
#line 5765 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.else
						//|	sub r4, 12
						//|	PUSH_ADDR_ZTS executor_globals, uninitialized_zval, r0
					//|.endif
					//|	EXT_CALL zend_hash_index_add_new, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_index_add_new)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_index_add_new));
							} else {
							if (IS_SIGNED_32BIT(zend_hash_index_add_new)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_index_add_new));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_index_add_new)), (unsigned int)((((ptrdiff_t)zend_hash_index_add_new))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5770 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.if not(X64)
					//|	add r4, 12
					//|.endif
					if (op1_info & MAY_BE_ARRAY_HASH) {
						//|	jmp >8
						dasm_put(Dst, 3768);
#line 5775 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (op1_info & MAY_BE_ARRAY_HASH) {
					//|4:
					dasm_put(Dst, 389);
#line 5779 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!op2_loaded) {
						//|	// hval = Z_LVAL_P(dim);
						//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
							if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
								if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
						dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
								} else {
										if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
						dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
										} else {
						dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
										}
								}
							} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
							} else if (Z_MODE(op2_addr) == IS_REG) {
								if (ZREG_FCARG2a != Z_REG(op2_addr)) {
						dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
								}
							} else {
								ZEND_UNREACHABLE();
							}
#line 5782 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	EXT_CALL zend_jit_hash_index_lookup_w, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_hash_index_lookup_w)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_hash_index_lookup_w));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_hash_index_lookup_w)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_hash_index_lookup_w));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_hash_index_lookup_w)), (unsigned int)((((ptrdiff_t)zend_jit_hash_index_lookup_w))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5784 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			default:
				ZEND_UNREACHABLE();
		}

		if (type != BP_JIT_IS && (op2_info & MAY_BE_STRING)) {
			//|	jmp >8
			dasm_put(Dst, 3768);
#line 5792 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op2_info & MAY_BE_STRING) {
		//|3:
		dasm_put(Dst, 347);
#line 5797 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_LONG|MAY_BE_STRING))) {
			//|	// if (EXPECTED(Z_TYPE_P(dim) == IS_STRING))
			//|	IF_NOT_ZVAL_TYPE op2_addr, IS_STRING, >3
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3334, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 5800 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	// offset_key = Z_STR_P(dim);
		//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else if (Z_MODE(op2_addr) == IS_REG) {
				if (ZREG_FCARG2a != Z_REG(op2_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5803 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// retval = zend_hash_find(ht, offset_key);
		switch (type) {
			case BP_JIT_IS:
				if (opline->op2_type != IS_CONST) {
					//|	cmp byte [FCARG2a + offsetof(zend_string, val)], '9'
					//|	jle >1
					//|.cold_code
					dasm_put(Dst, 3773, offsetof(zend_string, val), '9');
#line 5810 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					//|	EXT_CALL zend_jit_symtable_find, r0
					dasm_put(Dst, 64);
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_symtable_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_symtable_find));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_symtable_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_symtable_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_symtable_find)), (unsigned int)((((ptrdiff_t)zend_jit_symtable_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5812 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jmp >1
					//|.code
					dasm_put(Dst, 3783);
#line 5814 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_hash_find, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_find));
							} else {
							if (IS_SIGNED_32BIT(zend_hash_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_find)), (unsigned int)((((ptrdiff_t)zend_hash_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5815 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 5816 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL _zend_hash_find_known_hash, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(_zend_hash_find_known_hash)) {
					dasm_put(Dst, 46, (ptrdiff_t)(_zend_hash_find_known_hash));
							} else {
							if (IS_SIGNED_32BIT(_zend_hash_find_known_hash)) {
					dasm_put(Dst, 50, ((ptrdiff_t)_zend_hash_find_known_hash));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_hash_find_known_hash)), (unsigned int)((((ptrdiff_t)_zend_hash_find_known_hash))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5818 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	test r0, r0
				dasm_put(Dst, 3620);
#line 5820 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (not_found_exit_addr) {
					//|	jz &not_found_exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(not_found_exit_addr));
#line 5822 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jz >9 // NOT_FOUND
					dasm_put(Dst, 3677);
#line 5824 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	// if (UNEXPECTED(Z_TYPE_P(retval) == IS_INDIRECT))
				//|	IF_NOT_Z_TYPE r0, IS_INDIRECT, >1
				//|	GET_Z_PTR r0, r0
				//|1:
				dasm_put(Dst, 3789, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 5829 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_R:
			case BP_VAR_IS:
			case BP_VAR_UNSET:
				if (opline->op2_type != IS_CONST) {
					//|	cmp byte [FCARG2a + offsetof(zend_string, val)], '9'
					//|	jle >1
					//|.cold_code
					dasm_put(Dst, 3773, offsetof(zend_string, val), '9');
#line 5837 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					//|	EXT_CALL zend_jit_symtable_find, r0
					dasm_put(Dst, 64);
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_symtable_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_symtable_find));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_symtable_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_symtable_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_symtable_find)), (unsigned int)((((ptrdiff_t)zend_jit_symtable_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5839 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jmp >1
					//|.code
					dasm_put(Dst, 3783);
#line 5841 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_hash_find, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_find));
							} else {
							if (IS_SIGNED_32BIT(zend_hash_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_find)), (unsigned int)((((ptrdiff_t)zend_hash_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5842 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 5843 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL _zend_hash_find_known_hash, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(_zend_hash_find_known_hash)) {
					dasm_put(Dst, 46, (ptrdiff_t)(_zend_hash_find_known_hash));
							} else {
							if (IS_SIGNED_32BIT(_zend_hash_find_known_hash)) {
					dasm_put(Dst, 50, ((ptrdiff_t)_zend_hash_find_known_hash));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_hash_find_known_hash)), (unsigned int)((((ptrdiff_t)_zend_hash_find_known_hash))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5845 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	test r0, r0
				dasm_put(Dst, 3620);
#line 5847 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
					//|	jz &exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 5849 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (type == BP_VAR_IS && not_found_exit_addr) {
					//|	jz &not_found_exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(not_found_exit_addr));
#line 5851 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (type == BP_VAR_IS && found_exit_addr) {
					//|	jz >7 // NOT_FOUND
					dasm_put(Dst, 3708);
#line 5853 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jz >2 // NOT_FOUND
					dasm_put(Dst, 2022);
#line 5855 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	// if (UNEXPECTED(Z_TYPE_P(retval) == IS_INDIRECT))
				//|	IF_Z_TYPE r0, IS_INDIRECT, >1 // SLOW
				//|.cold_code
				dasm_put(Dst, 3803, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 5859 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	// retval = Z_INDIRECT_P(retval);
				//|	GET_Z_PTR r0, r0
				//|	IF_NOT_Z_TYPE r0, IS_UNDEF, >8
				dasm_put(Dst, 3813, offsetof(zval, u1.v.type), IS_UNDEF);
#line 5863 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && type == BP_VAR_R) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 5865 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (type == BP_VAR_IS && not_found_exit_addr) {
					//|	jmp &not_found_exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(not_found_exit_addr));
#line 5867 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|2:
				dasm_put(Dst, 2037);
#line 5869 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				switch (type) {
					case BP_VAR_R:
						if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
							// zend_error(E_WARNING, "Undefined array key \"%s\"", ZSTR_VAL(offset_key));
							//|	UNDEFINED_INDEX opline
								if (opline == last_valid_opline) {
									zend_jit_use_last_valid_opline();
							dasm_put(Dst, 3827);
								} else {
								if (opline == last_valid_opline) {
									zend_jit_use_last_valid_opline();
								if (GCC_GLOBAL_REGS) {
							dasm_put(Dst, 8, Dt1(->opline));
								}
								} else {
									if (IS_SIGNED_32BIT(opline)) {
							dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
									} else {
							dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
									}
									if (!GCC_GLOBAL_REGS) {
										zend_jit_reset_last_valid_opline();
									}
								}
							dasm_put(Dst, 3832);
								}
#line 5874 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							//|	jmp >9
							dasm_put(Dst, 3682);
#line 5875 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						break;
					case BP_VAR_IS:
					case BP_VAR_UNSET:
						if (!not_found_exit_addr && !found_exit_addr) {
							//|	// retval = &EG(uninitialized_zval);
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 5882 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							//|	jmp >9
							dasm_put(Dst, 3742, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 5883 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						break;
					default:
						ZEND_UNREACHABLE();
				}
				//|.code
				dasm_put(Dst, 387);
#line 5889 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_RW:
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 5892 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (opline->op2_type != IS_CONST) {
					//|	EXT_CALL zend_jit_symtable_lookup_rw, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_symtable_lookup_rw)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_symtable_lookup_rw));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_symtable_lookup_rw)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_symtable_lookup_rw));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_symtable_lookup_rw)), (unsigned int)((((ptrdiff_t)zend_jit_symtable_lookup_rw))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5894 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL zend_jit_hash_lookup_rw, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_hash_lookup_rw)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_hash_lookup_rw));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_hash_lookup_rw)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_hash_lookup_rw));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_hash_lookup_rw)), (unsigned int)((((ptrdiff_t)zend_jit_hash_lookup_rw))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5896 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	test r0, r0
				//|	jz >9
				dasm_put(Dst, 3760);
#line 5899 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_W:
				if (opline->op2_type != IS_CONST) {
					//|	EXT_CALL zend_jit_symtable_lookup_w, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_symtable_lookup_w)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_symtable_lookup_w));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_symtable_lookup_w)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_symtable_lookup_w));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_symtable_lookup_w)), (unsigned int)((((ptrdiff_t)zend_jit_symtable_lookup_w))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5903 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL zend_jit_hash_lookup_w, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_hash_lookup_w)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_hash_lookup_w));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_hash_lookup_w)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_hash_lookup_w));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_hash_lookup_w)), (unsigned int)((((ptrdiff_t)zend_jit_hash_lookup_w))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 5905 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			default:
				ZEND_UNREACHABLE();
		}
	}

	if (type == BP_JIT_IS && (op2_info & (MAY_BE_LONG|MAY_BE_STRING))) {
	    //|5:
	    dasm_put(Dst, 495);
#line 5914 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & MAY_BE_ARRAY_OF_REF) {
			//|	ZVAL_DEREF r0, MAY_BE_REF
				if (MAY_BE_REF & MAY_BE_REF) {
			dasm_put(Dst, 3837, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
				}
#line 5916 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	cmp byte [r0 + 8], IS_NULL
		dasm_put(Dst, 3855, 8, IS_NULL);
#line 5918 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (not_found_exit_addr) {
			//|	jle &not_found_exit_addr
			dasm_put(Dst, 3860, (ptrdiff_t)(not_found_exit_addr));
#line 5920 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (found_exit_addr) {
			//|	jg &found_exit_addr
			dasm_put(Dst, 3864, (ptrdiff_t)(found_exit_addr));
#line 5922 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jle >9 // NOT FOUND
			dasm_put(Dst, 3868);
#line 5924 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_LONG|MAY_BE_STRING))) {
		if (op2_info & (MAY_BE_LONG|MAY_BE_STRING)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 5930 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|3:
			dasm_put(Dst, 347);
#line 5931 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 5933 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op2_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op2_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 5934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		switch (type) {
			case BP_VAR_R:
				//|.if X64
					//|   LOAD_ZVAL_ADDR CARG3, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 5938 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|   PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
				//|	EXT_CALL zend_jit_fetch_dim_r_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_r_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_r_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_r_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_r_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_r_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_r_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 5943 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if not(X64)
				//|	add r4, 12
				//|.endif
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 5947 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_JIT_IS:
				//|	EXT_CALL zend_jit_fetch_dim_isset_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_isset_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_isset_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_isset_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_isset_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_isset_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_isset_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 5950 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	test r0, r0
				dasm_put(Dst, 3620);
#line 5951 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (not_found_exit_addr) {
					//|	je &not_found_exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(not_found_exit_addr));
#line 5953 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op2_info & (MAY_BE_LONG|MAY_BE_STRING)) {
						//|	jmp >8
						dasm_put(Dst, 3768);
#line 5955 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (found_exit_addr) {
					//|	jne &found_exit_addr
					dasm_put(Dst, 1628, (ptrdiff_t)(found_exit_addr));
#line 5958 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op2_info & (MAY_BE_LONG|MAY_BE_STRING)) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 5960 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|	jne >8
					//|	jmp >9
					dasm_put(Dst, 3873);
#line 5964 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			case BP_VAR_IS:
			case BP_VAR_UNSET:
				//|.if X64
					//|   LOAD_ZVAL_ADDR CARG3, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 5970 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|   PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
				//|	EXT_CALL zend_jit_fetch_dim_is_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_is_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_is_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_is_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_is_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_is_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_is_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 5975 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if not(X64)
				//|	add r4, 12
				//|.endif
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 5979 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_RW:
				//|	EXT_CALL zend_jit_fetch_dim_rw_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_rw_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_rw_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_rw_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_rw_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_rw_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_rw_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 5982 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	test r0, r0
				//|	jne >8
				//|	jmp >9
				dasm_put(Dst, 3882);
#line 5985 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case BP_VAR_W:
				//|	EXT_CALL zend_jit_fetch_dim_w_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_w_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_w_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_w_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_w_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_w_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_w_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 5988 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	test r0, r0
				//|	jne >8
				//|	jmp >9
				dasm_put(Dst, 3882);
#line 5991 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			default:
				ZEND_UNREACHABLE();
		}
		if (op2_info & (MAY_BE_LONG|MAY_BE_STRING)) {
			//|.code
			dasm_put(Dst, 387);
#line 5997 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_simple_assign(dasm_State    **Dst,
                                  const zend_op  *opline,
                                  zend_jit_addr   var_addr,
                                  uint32_t        var_info,
                                  uint32_t        var_def_info,
                                  zend_uchar      val_type,
                                  zend_jit_addr   val_addr,
                                  uint32_t        val_info,
                                  zend_jit_addr   res_addr,
                                  int             in_cold,
                                  int             save_r1)
/* Labels: 1,2,3 */
{
	zend_reg tmp_reg;

	if (Z_MODE(var_addr) == IS_REG || Z_REG(var_addr) != ZREG_R0) {
		tmp_reg = ZREG_R0;
	} else {
		/* ASSIGN_DIM */
		tmp_reg = ZREG_FCARG1a;
	}

	if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
		zval *zv = Z_ZV(val_addr);

		if (!res_addr) {
			//|	ZVAL_COPY_CONST var_addr, var_info, var_def_info, zv, tmp_reg
				if (Z_TYPE_P(zv) > IS_TRUE) {
					if (Z_TYPE_P(zv) == IS_DOUBLE) {
						zend_reg dst_reg = (Z_MODE(var_addr) == IS_REG) ? Z_REG(var_addr) : ZREG_XMM0;
						if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
							if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
							} else {
			dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
							}
						} else if (!IS_SIGNED_32BIT(zv)) {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(((uintptr_t)zv)), (unsigned int)((((uintptr_t)zv))>>32));
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (dst_reg-ZREG_XMM0), (tmp_reg), 0);
				} else {
			dasm_put(Dst, 2000, (dst_reg-ZREG_XMM0), (tmp_reg), 0);
				}
						} else {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
				} else {
			dasm_put(Dst, 1960, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
				}
						}
				if (Z_MODE(var_addr) == IS_REG) {
					if (dst_reg != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
					} else if (Z_TYPE_P(zv) == IS_LONG && var_def_info == MAY_BE_DOUBLE) {
						zend_reg dst_reg = (Z_MODE(var_addr) == IS_REG) ? Z_REG(var_addr) : ZREG_XMM0;
					if (Z_LVAL_P(zv) == 0) {
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						} else {
			dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						}
					} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
						} else {
			dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
						}
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
						} else {
			dasm_put(Dst, 2754, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
						}
					}
				if (Z_MODE(var_addr) == IS_REG) {
					if (dst_reg != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
					} else if (Z_LVAL_P(zv) == 0 && Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
								if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
								} else {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (tmp_reg), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
								}
							} else {
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(zv));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3894, (Z_REG(var_addr)), Z_OFFSET(var_addr), Z_LVAL_P(zv));
				}
							}
					}
				}
				if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (var_def_info == MAY_BE_DOUBLE) {
						if ((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
						}
					} else if (((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (var_info & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
					}
				}
#line 6030 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	ZVAL_COPY_CONST_2 var_addr, res_addr, var_info, var_def_info, zv, tmp_reg
				if (Z_TYPE_P(zv) > IS_TRUE) {
					if (Z_TYPE_P(zv) == IS_DOUBLE) {
						zend_reg dst_reg = (Z_MODE(var_addr) == IS_REG) ?
							Z_REG(var_addr) : ((Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0);
						if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
							if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
							} else {
			dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
							}
						} else if (!IS_SIGNED_32BIT(zv)) {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(((uintptr_t)zv)), (unsigned int)((((uintptr_t)zv))>>32));
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (dst_reg-ZREG_XMM0), (tmp_reg), 0);
				} else {
			dasm_put(Dst, 2000, (dst_reg-ZREG_XMM0), (tmp_reg), 0);
				}
						} else {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
				} else {
			dasm_put(Dst, 1960, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
				}
						}
				if (Z_MODE(var_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
					} else if (Z_TYPE_P(zv) == IS_LONG && var_def_info == MAY_BE_DOUBLE) {
						if (Z_MODE(var_addr) == IS_REG) {
					if (Z_LVAL_P(zv) == 0) {
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
						} else {
			dasm_put(Dst, 2721, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
						}
					} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
						} else {
			dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
						}
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (ZREG_R0));
						} else {
			dasm_put(Dst, 2754, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0), (ZREG_R0));
						}
					}
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(var_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_LVAL_P(zv) == 0) {
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
						} else {
			dasm_put(Dst, 2721, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
						}
					} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
						} else {
			dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
						}
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (ZREG_R0));
						} else {
			dasm_put(Dst, 2754, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0), (ZREG_R0));
						}
					}
				if (Z_MODE(var_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
						} else {
					if (Z_LVAL_P(zv) == 0) {
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2709, (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						} else {
			dasm_put(Dst, 2721, (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						}
					} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
						} else {
			dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
						}
						if (CAN_USE_AVX()) {
			dasm_put(Dst, 2730, (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_R0));
						} else {
			dasm_put(Dst, 2754, (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0), (ZREG_R0));
						}
					}
				if (Z_MODE(var_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (Z_LVAL_P(zv) == 0 && (Z_MODE(var_addr) == IS_REG || Z_MODE(res_addr) == IS_REG)) {
							if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							} else {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(res_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
							}
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
								if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
								} else if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(res_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
								} else {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (tmp_reg), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (tmp_reg), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
								}
							} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(zv));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3894, (Z_REG(var_addr)), Z_OFFSET(var_addr), Z_LVAL_P(zv));
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(zv));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3894, (Z_REG(res_addr)), Z_OFFSET(res_addr), Z_LVAL_P(zv));
				}
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(res_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
							} else {
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(zv));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3894, (Z_REG(var_addr)), Z_OFFSET(var_addr), Z_LVAL_P(zv));
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(zv));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3894, (Z_REG(res_addr)), Z_OFFSET(res_addr), Z_LVAL_P(zv));
				}
							}
					}
				}
				if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (var_def_info == MAY_BE_DOUBLE) {
						if ((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
						}
					} else if (((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (var_info & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
					}
				}
				if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (var_def_info == MAY_BE_DOUBLE) {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
					} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
					}
				}
#line 6032 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_REFCOUNTED_P(zv)) {
			if (!res_addr) {
				//|	ADDREF_CONST zv, Ra(tmp_reg)
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
				dasm_put(Dst, 3903, (tmp_reg), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32), (tmp_reg), 0);
						} else {
				dasm_put(Dst, 3918, Z_LVAL_P(zv));
						}
#line 6036 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	ADDREF_CONST_2 zv, Ra(tmp_reg)
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
				dasm_put(Dst, 3924, (tmp_reg), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32), (tmp_reg), 0);
						} else {
				dasm_put(Dst, 3939, Z_LVAL_P(zv));
						}
#line 6038 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else {
		if (val_info & MAY_BE_UNDEF) {
			if (in_cold) {
				//|	IF_NOT_ZVAL_TYPE val_addr, IS_UNDEF, >2
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2224, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 6044 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_ZVAL_TYPE val_addr, IS_UNDEF, >1
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 6046 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 3945, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 6047 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 6048 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
			if (save_r1) {
				//|	mov aword T1, FCARG1a // save
				dasm_put(Dst, 3959);
#line 6052 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_ZVAL_TYPE_INFO var_addr, IS_NULL
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 6054 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (res_addr) {
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 6056 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (opline) {
				//|	SET_EX_OPLINE opline, Ra(tmp_reg)
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 3964, (tmp_reg), (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), (tmp_reg), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 6059 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL && Z_REG(val_addr) == ZREG_FP);
			//|	mov FCARG1d, Z_OFFSET(val_addr)
			//|	EXT_CALL zend_jit_undefined_op_helper, r0
			dasm_put(Dst, 2311, Z_OFFSET(val_addr));
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6063 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	test r0, r0
			//|	jz ->exception_handler_undef
			dasm_put(Dst, 3978);
#line 6065 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (save_r1) {
				//|	mov FCARG1a, aword T1 // restore
				dasm_put(Dst, 3986);
#line 6067 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	jmp >3
			dasm_put(Dst, 3991);
#line 6069 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (in_cold) {
				//|2:
				dasm_put(Dst, 2037);
#line 6071 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|.code
				dasm_put(Dst, 387);
#line 6073 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (val_info & MAY_BE_REF) {
			if (val_type == IS_CV) {
				ZEND_ASSERT(Z_REG(var_addr) != ZREG_R2);
				if (Z_MODE(val_addr) != IS_MEM_ZVAL || Z_REG(val_addr) != ZREG_R2 || Z_OFFSET(val_addr) != 0) {
					//|	LOAD_ZVAL_ADDR r2, val_addr
						if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(val_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
							}
						} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(val_addr)) {
					dasm_put(Dst, 3398, (Z_REG(val_addr)), Z_OFFSET(val_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(val_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 6080 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	ZVAL_DEREF r2, val_info
					if (val_info & MAY_BE_REF) {
				dasm_put(Dst, 3996, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
					}
#line 6082 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R2, 0);
			} else {
				zend_jit_addr ref_addr;
				zend_reg type_reg = tmp_reg;

				if (in_cold) {
					//|	IF_NOT_ZVAL_TYPE val_addr, IS_REFERENCE, >1
						ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 6089 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_ZVAL_TYPE val_addr, IS_REFERENCE, >1
						ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 6091 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.cold_code
					dasm_put(Dst, 3945, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 6092 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 6093 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	// zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
				//|	GET_ZVAL_PTR r2, val_addr
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 6096 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	GC_DELREF r2
				//|	// ZVAL_COPY_VALUE(return_value, &ref->value);
				dasm_put(Dst, 4014, (Z_REG(val_addr)), Z_OFFSET(val_addr));
#line 6098 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R2, 8);
				if (!res_addr) {
					//|	ZVAL_COPY_VALUE var_addr, var_info, ref_addr, val_info, type_reg, tmp_reg
						if (val_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
							if ((val_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
								if (Z_MODE(ref_addr) == IS_REG) {
									if (Z_MODE(var_addr) != IS_REG || Z_REG(var_addr) != Z_REG(ref_addr)) {
						if (Z_MODE(var_addr) == IS_REG) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(var_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (Z_REG(ref_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
									}
								} else if (Z_MODE(var_addr) == IS_REG) {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
					dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
					dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(Z_ZV(ref_addr)));
									}
							}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (Z_REG(var_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else if (Z_MODE(ref_addr) == IS_REG) {
							if (Z_REG(var_addr) != Z_REG(ref_addr)) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(var_addr)));
							}
						} else {
							ZEND_UNREACHABLE();
						}
								} else {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
					dasm_put(Dst, 1741, (tmp_reg), (tmp_reg));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
					dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(ref_addr)));
									}
							}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (tmp_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else if (Z_MODE(ref_addr) == IS_REG) {
							if (tmp_reg != Z_REG(ref_addr)) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (tmp_reg));
							}
						} else {
							ZEND_UNREACHABLE();
						}
						if (Z_MODE(var_addr) == IS_REG) {
					dasm_put(Dst, 1773, (tmp_reg), (Z_REG(var_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
								}
							} else if ((val_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
								if (Z_MODE(ref_addr) == IS_REG) {
						if (Z_MODE(var_addr) == IS_REG) {
							if (Z_REG(ref_addr) != Z_REG(var_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						} else {
					dasm_put(Dst, 1937, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
						}
								} else if (Z_MODE(var_addr) == IS_REG) {
						if (Z_MODE(ref_addr) != IS_REG || Z_REG(var_addr) != Z_REG(ref_addr)) {
							if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
									if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1950, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(ref_addr));
						} else {
					dasm_put(Dst, 1960, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(ref_addr));
						}
									} else {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
							}
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1971, (Z_REG(var_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1979, (Z_REG(var_addr)-ZREG_XMM0));
						}
									}
							} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1988, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else {
					dasm_put(Dst, 2000, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
							} else if (Z_MODE(ref_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							} else {
								ZEND_UNREACHABLE();
							}
						}
								} else {
						if (Z_MODE(ref_addr) != IS_REG || ZREG_XMM0 != Z_REG(ref_addr)) {
							if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
									if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
						} else {
					dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
						}
									} else {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
							}
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
						}
									}
							} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else {
					dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
							} else if (Z_MODE(ref_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							} else {
								ZEND_UNREACHABLE();
							}
						}
						if (Z_MODE(var_addr) == IS_REG) {
							if (ZREG_XMM0 != Z_REG(var_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						} else {
					dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
						}
								}
							} else if (!(val_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1763, (tmp_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
							} else {
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1763, (tmp_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
							}
						}
						if ((val_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
					      !(val_info & MAY_BE_GUARD) &&
							has_concrete_type(val_info & MAY_BE_ANY)) {
							if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
								if ((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (val_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
									zend_uchar type = concrete_type(val_info);
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), type);
								}
							}
						} else {
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2177, (type_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info));
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2187, (type_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
						}
#line 6101 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	ZVAL_COPY_VALUE_2 var_addr, var_info, res_addr, ref_addr, val_info, type_reg, tmp_reg
						if (val_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
							if ((val_info & MAY_BE_ANY) == MAY_BE_LONG) {
								if (Z_MODE(ref_addr) == IS_REG) {
									if (Z_MODE(var_addr) != IS_REG || Z_REG(var_addr) != Z_REG(ref_addr)) {
						if (Z_MODE(var_addr) == IS_REG) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(var_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (Z_REG(ref_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
									}
									if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(ref_addr)) {
						if (Z_MODE(res_addr) == IS_REG) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(res_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (Z_REG(ref_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
									}
								} else if (Z_MODE(var_addr) == IS_REG) {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
					dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
					dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(Z_ZV(ref_addr)));
									}
							}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (Z_REG(var_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else if (Z_MODE(ref_addr) == IS_REG) {
							if (Z_REG(var_addr) != Z_REG(ref_addr)) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(var_addr)));
							}
						} else {
							ZEND_UNREACHABLE();
						}
									if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
						if (Z_MODE(res_addr) == IS_REG) {
					dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
									}
								} else if (Z_MODE(res_addr) == IS_REG) {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
					dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
					dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(ref_addr)));
									}
							}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else if (Z_MODE(ref_addr) == IS_REG) {
							if (Z_REG(res_addr) != Z_REG(ref_addr)) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(res_addr)));
							}
						} else {
							ZEND_UNREACHABLE();
						}
						if (Z_MODE(var_addr) == IS_REG) {
					dasm_put(Dst, 1773, (Z_REG(res_addr)), (Z_REG(var_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
								} else {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
					dasm_put(Dst, 1741, (tmp_reg), (tmp_reg));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
					dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(ref_addr)));
									}
							}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (tmp_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else if (Z_MODE(ref_addr) == IS_REG) {
							if (tmp_reg != Z_REG(ref_addr)) {
					dasm_put(Dst, 1773, (Z_REG(ref_addr)), (tmp_reg));
							}
						} else {
							ZEND_UNREACHABLE();
						}
						if (Z_MODE(var_addr) == IS_REG) {
					dasm_put(Dst, 1773, (tmp_reg), (Z_REG(var_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
						if (Z_MODE(res_addr) == IS_REG) {
					dasm_put(Dst, 1773, (tmp_reg), (Z_REG(res_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
								}
							} else if ((val_info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
								if (Z_MODE(ref_addr) == IS_REG) {
						if (Z_MODE(var_addr) == IS_REG) {
							if (Z_REG(ref_addr) != Z_REG(var_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						} else {
					dasm_put(Dst, 1937, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
						}
						if (Z_MODE(res_addr) == IS_REG) {
							if (Z_REG(ref_addr) != Z_REG(res_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 1937, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
						}
								} else if (Z_MODE(var_addr) == IS_REG) {
						if (Z_MODE(ref_addr) != IS_REG || Z_REG(var_addr) != Z_REG(ref_addr)) {
							if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
									if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1950, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(ref_addr));
						} else {
					dasm_put(Dst, 1960, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(ref_addr));
						}
									} else {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
							}
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1971, (Z_REG(var_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1979, (Z_REG(var_addr)-ZREG_XMM0));
						}
									}
							} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1988, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else {
					dasm_put(Dst, 2000, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
							} else if (Z_MODE(ref_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							} else {
								ZEND_UNREACHABLE();
							}
						}
						if (Z_MODE(res_addr) == IS_REG) {
							if (Z_REG(var_addr) != Z_REG(res_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 1937, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
						}
								} else if (Z_MODE(res_addr) == IS_REG) {
						if (Z_MODE(ref_addr) != IS_REG || Z_REG(res_addr) != Z_REG(ref_addr)) {
							if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
									if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(ref_addr));
						} else {
					dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(ref_addr));
						}
									} else {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
							}
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
						}
									}
							} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else {
					dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
							} else if (Z_MODE(ref_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							} else {
								ZEND_UNREACHABLE();
							}
						}
						if (Z_MODE(var_addr) == IS_REG) {
							if (Z_REG(res_addr) != Z_REG(var_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						} else {
					dasm_put(Dst, 1937, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
						}
								} else {
						if (Z_MODE(ref_addr) != IS_REG || ZREG_XMM0 != Z_REG(ref_addr)) {
							if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
									if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
						} else {
					dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
						}
									} else {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
							}
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
						}
									}
							} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						} else {
					dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
							} else if (Z_MODE(ref_addr) == IS_REG) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
						}
							} else {
								ZEND_UNREACHABLE();
							}
						}
						if (Z_MODE(var_addr) == IS_REG) {
							if (ZREG_XMM0 != Z_REG(var_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						} else {
					dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						}
						}
						if (Z_MODE(res_addr) == IS_REG) {
							if (ZREG_XMM0 != Z_REG(res_addr)) {
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						} else {
					dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
						}
							}
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						if (CAN_USE_AVX()) {
					dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
						}
								}
							} else if (!(val_info & MAY_BE_DOUBLE)) {
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1763, (tmp_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
							} else {
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1763, (tmp_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
							}
						}
						if ((val_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
						    has_concrete_type(val_info & MAY_BE_ANY)) {
							zend_uchar type = concrete_type(val_info);
							if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
								if ((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (val_info & (MAY_BE_ANY|MAY_BE_UNDEF))) {
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), type);
								}
							}
							if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
							}
						} else {
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2177, (type_reg), (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info));
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2187, (type_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2187, (type_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
						}
#line 6103 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	je >2
				dasm_put(Dst, 2022);
#line 6105 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (tmp_reg == ZREG_R0) {
					//|	IF_NOT_REFCOUNTED ah, >3
					dasm_put(Dst, 4025);
#line 6107 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_FLAGS Rd(tmp_reg), (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT), >3
					dasm_put(Dst, 4032, (tmp_reg), (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT));
#line 6109 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	GET_ZVAL_PTR Ra(tmp_reg), var_addr
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
#line 6111 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

				if (!res_addr) {
					//|	GC_ADDREF Ra(tmp_reg)
					dasm_put(Dst, 3909, (tmp_reg), 0);
#line 6114 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	add dword [Ra(tmp_reg)], 2
					dasm_put(Dst, 3930, (tmp_reg), 0);
#line 6116 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	jmp >3
				//|2:
				dasm_put(Dst, 4044);
#line 6119 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (res_addr) {
					if (tmp_reg == ZREG_R0) {
						//|	IF_NOT_REFCOUNTED ah, >2
						dasm_put(Dst, 4051);
#line 6122 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_FLAGS Rd(tmp_reg), (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT), >2
						dasm_put(Dst, 4058, (tmp_reg), (IS_TYPE_REFCOUNTED << Z_TYPE_FLAGS_SHIFT));
#line 6124 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	GET_ZVAL_PTR Ra(tmp_reg), var_addr
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 6126 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	GC_ADDREF Ra(tmp_reg)
					//|2:
					dasm_put(Dst, 4070, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr), (tmp_reg), 0);
#line 6128 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (save_r1) {
					//|	mov aword T1, FCARG1a // save
					dasm_put(Dst, 3959);
#line 6131 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	EFREE_REFERENCE r2
				dasm_put(Dst, 4090);
				#if ZEND_DEBUG
				dasm_put(Dst, 4094);
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
				#else
				#ifdef HAVE_BUILTIN_CONSTANT_P
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree_32)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree_32));
						} else {
						if (IS_SIGNED_32BIT(_efree_32)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree_32));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree_32)), (unsigned int)((((ptrdiff_t)_efree_32))>>32));
						}
				dasm_put(Dst, 60);
						}
				#else
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
				#endif
				#endif
#line 6133 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (save_r1) {
					//|	mov FCARG1a, aword T1 // restore
					dasm_put(Dst, 3986);
#line 6135 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	jmp >3
				dasm_put(Dst, 3991);
#line 6137 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (in_cold) {
					//|1:
					dasm_put(Dst, 64);
#line 6139 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|.code
					dasm_put(Dst, 387);
#line 6141 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
		}

		if (!res_addr) {
			//|	ZVAL_COPY_VALUE var_addr, var_info, val_addr, val_info, ZREG_R2, tmp_reg
				if (val_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((val_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(var_addr) != IS_REG || Z_REG(var_addr) != Z_REG(val_addr)) {
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
							}
						} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(var_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(var_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(var_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (tmp_reg), (tmp_reg));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (tmp_reg != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (tmp_reg));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (tmp_reg), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
						}
					} else if ((val_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(var_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
						} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(var_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(var_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(var_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
						}
					} else if (!(val_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
				}
				if ((val_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(val_info & MAY_BE_GUARD) &&
					has_concrete_type(val_info & MAY_BE_ANY)) {
					if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
						if ((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (val_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(val_info);
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
				}
#line 6147 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	ZVAL_COPY_VALUE_2 var_addr, var_info, res_addr, val_addr, val_info, ZREG_R2, tmp_reg
				if (val_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((val_info & MAY_BE_ANY) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(var_addr) != IS_REG || Z_REG(var_addr) != Z_REG(val_addr)) {
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
							}
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(var_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(var_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(var_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(res_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (tmp_reg), (tmp_reg));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (tmp_reg), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (tmp_reg != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (tmp_reg));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (tmp_reg), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (tmp_reg), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((val_info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(var_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(var_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(var_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(var_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(var_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(var_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(val_info & MAY_BE_DOUBLE)) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((val_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				    has_concrete_type(val_info & MAY_BE_ANY)) {
					zend_uchar type = concrete_type(val_info);
					if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
						if ((var_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (val_info & (MAY_BE_ANY|MAY_BE_UNDEF))) {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), type);
						}
					}
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
					}
				} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 6149 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (val_type == IS_CV) {
			if (!res_addr) {
				//|	TRY_ADDREF val_info, dh, Ra(tmp_reg)
					if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (val_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 4107);
						}
				dasm_put(Dst, 4115, (tmp_reg), 0);
					}
#line 6154 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	TRY_ADDREF_2 val_info, dh, Ra(tmp_reg)
					if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (val_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 4107);
						}
				dasm_put(Dst, 4126, (tmp_reg), 0);
					}
#line 6156 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (res_addr) {
				//|	TRY_ADDREF val_info, dh, Ra(tmp_reg)
					if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (val_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 4107);
						}
				dasm_put(Dst, 4115, (tmp_reg), 0);
					}
#line 6160 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|3:
		dasm_put(Dst, 347);
#line 6163 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_assign_to_typed_ref(dasm_State         **Dst,
                                       const zend_op        *opline,
                                       zend_uchar            val_type,
                                       zend_jit_addr         val_addr,
                                       zend_jit_addr         res_addr,
                                       zend_bool             check_exception)
{
	//|	// if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(variable_ptr)))) {
	//|	cmp aword [FCARG1a + offsetof(zend_reference, sources.ptr)], 0
	//|	jnz >2
	//|.cold_code
	dasm_put(Dst, 4137, offsetof(zend_reference, sources.ptr));
#line 6178 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|2:
	dasm_put(Dst, 2037);
#line 6179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (Z_MODE(val_addr) != IS_MEM_ZVAL || Z_REG(val_addr) != ZREG_FCARG2a || Z_OFFSET(val_addr) != 0) {
		//|	LOAD_ZVAL_ADDR FCARG2a, val_addr
			if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(val_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
				}
			} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(val_addr)) {
		dasm_put(Dst, 2349, (Z_REG(val_addr)), Z_OFFSET(val_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(val_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6181 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (opline) {
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 6184 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (val_type == IS_CONST) {
		//|	EXT_CALL zend_jit_assign_const_to_typed_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_const_to_typed_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_const_to_typed_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_const_to_typed_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_const_to_typed_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_const_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_const_to_typed_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6187 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (val_type == IS_TMP_VAR) {
		//|	EXT_CALL zend_jit_assign_tmp_to_typed_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_tmp_to_typed_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_tmp_to_typed_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_tmp_to_typed_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_tmp_to_typed_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_tmp_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_tmp_to_typed_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6189 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (val_type == IS_VAR) {
		//|	EXT_CALL zend_jit_assign_var_to_typed_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_var_to_typed_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_var_to_typed_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_var_to_typed_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_var_to_typed_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_var_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_var_to_typed_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6191 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (val_type == IS_CV) {
		//|	EXT_CALL zend_jit_assign_cv_to_typed_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_cv_to_typed_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_cv_to_typed_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_cv_to_typed_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_cv_to_typed_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_cv_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_cv_to_typed_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6193 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		ZEND_UNREACHABLE();
	}
	if (res_addr) {
		zend_jit_addr ret_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

		//|	ZVAL_COPY_VALUE res_addr, -1, ret_addr, -1, ZREG_R1, ZREG_R2
			if (-1 & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((-1 & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(ret_addr) == IS_REG) {
						if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(ret_addr)) {
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(ret_addr)), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(ret_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
						}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(ret_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(ret_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ret_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(ret_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ret_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(ret_addr)));
						}
				}
			} else if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else if (Z_MODE(ret_addr) == IS_REG) {
				if (Z_REG(res_addr) != Z_REG(ret_addr)) {
		dasm_put(Dst, 1773, (Z_REG(ret_addr)), (Z_REG(res_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(ret_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(ret_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ret_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(ret_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ret_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(ret_addr)));
						}
				}
			} else if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else if (Z_MODE(ret_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(ret_addr)) {
		dasm_put(Dst, 1773, (Z_REG(ret_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
					}
				} else if ((-1 & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(res_addr) == IS_REG) {
				if (Z_REG(ret_addr) != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ret_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ret_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(ret_addr) != IS_REG || Z_REG(res_addr) != Z_REG(ret_addr)) {
				if (Z_MODE(ret_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(ret_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(ret_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(ret_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(ret_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ret_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ret_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ret_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
				} else if (Z_MODE(ret_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ret_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(ret_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(ret_addr) != IS_REG || ZREG_XMM0 != Z_REG(ret_addr)) {
				if (Z_MODE(ret_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(ret_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ret_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ret_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(ret_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ret_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ret_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ret_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
				} else if (Z_MODE(ret_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(res_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					}
				} else if (!(-1 & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
			}
			if ((-1 & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(-1 & MAY_BE_GUARD) &&
				has_concrete_type(-1 & MAY_BE_ANY)) {
				if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(-1);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
			}
#line 6200 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	TRY_ADDREF -1, ch, r2
			if (-1 & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				if (-1 & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
		dasm_put(Dst, 2197);
				}
		dasm_put(Dst, 2205);
			}
#line 6201 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (check_exception) {
		//|	// if (UNEXPECTED(EG(exception) != NULL)) {
		//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.exception)) {
		dasm_put(Dst, 72, &executor_globals.exception);
				} else {
		dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
				}
#line 6205 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	je >8  // END OF zend_jit_assign_to_variable()
		//|	jmp ->exception_handler
		dasm_put(Dst, 4148);
#line 6207 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	jmp >8
		dasm_put(Dst, 3768);
#line 6209 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|.code
	dasm_put(Dst, 387);
#line 6211 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_assign_to_variable_call(dasm_State    **Dst,
                                            const zend_op  *opline,
                                            zend_jit_addr   __var_use_addr,
                                            zend_jit_addr   var_addr,
                                            uint32_t        __var_info,
                                            uint32_t        __var_def_info,
                                            zend_uchar      val_type,
                                            zend_jit_addr   val_addr,
                                            uint32_t        val_info,
                                            zend_jit_addr   __res_addr,
                                            zend_bool       __check_exception)
{
	if (val_info & MAY_BE_UNDEF) {
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (!exit_addr) {
				return 0;
			}

			//|	IF_ZVAL_TYPE val_addr, IS_UNDEF, &exit_addr
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4157, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 6237 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	IF_ZVAL_TYPE val_addr, IS_UNDEF, >1
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 6239 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.cold_code
			dasm_put(Dst, 3945, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 6240 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 6241 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			ZEND_ASSERT(Z_REG(val_addr) == ZREG_FP);
			if (Z_REG(var_addr) != ZREG_FP) {
				//|	mov aword T1, Ra(Z_REG(var_addr)) // save
				dasm_put(Dst, 3517, (Z_REG(var_addr)));
#line 6244 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 6246 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG1d, Z_OFFSET(val_addr)
			//|	EXT_CALL zend_jit_undefined_op_helper, r0
			dasm_put(Dst, 2311, Z_OFFSET(val_addr));
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (Z_REG(var_addr) != ZREG_FP) {
				//|	mov Ra(Z_REG(var_addr)), aword T1 // restore
				dasm_put(Dst, 3539, (Z_REG(var_addr)));
#line 6250 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (Z_MODE(var_addr) != IS_MEM_ZVAL || Z_REG(var_addr) != ZREG_FCARG1a || Z_OFFSET(var_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, var_addr
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(var_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
						}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(var_addr)) {
				dasm_put(Dst, 2314, (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(var_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 6253 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
					if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
			dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
					}
#line 6255 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	call ->assign_const
			//|	jmp >9
			//|.code
			dasm_put(Dst, 4169);
#line 6258 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	if (Z_MODE(var_addr) != IS_MEM_ZVAL || Z_REG(var_addr) != ZREG_FCARG1a || Z_OFFSET(var_addr) != 0) {
		//|	LOAD_ZVAL_ADDR FCARG1a, var_addr
			if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(var_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
				}
			} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(var_addr)) {
		dasm_put(Dst, 2314, (Z_REG(var_addr)), Z_OFFSET(var_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(var_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6262 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (Z_MODE(val_addr) != IS_MEM_ZVAL || Z_REG(val_addr) != ZREG_FCARG2a || Z_OFFSET(val_addr) != 0) {
		//|	LOAD_ZVAL_ADDR FCARG2a, val_addr
			if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(val_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
				}
			} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(val_addr)) {
		dasm_put(Dst, 2349, (Z_REG(val_addr)), Z_OFFSET(val_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(val_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6265 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (opline) {
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 6268 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (!(val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) {
		//|	call ->assign_tmp
		dasm_put(Dst, 4179);
#line 6271 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (val_type == IS_CONST) {
		//|	call ->assign_const
		dasm_put(Dst, 4184);
#line 6273 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (val_type == IS_TMP_VAR) {
		//|	call ->assign_tmp
		dasm_put(Dst, 4179);
#line 6275 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (val_type == IS_VAR) {
		if (!(val_info & MAY_BE_REF)) {
			//|	call ->assign_tmp
			dasm_put(Dst, 4179);
#line 6278 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	call ->assign_var
			dasm_put(Dst, 4189);
#line 6280 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (val_type == IS_CV) {
		if (!(val_info & MAY_BE_REF)) {
			//|	call ->assign_cv_noref
			dasm_put(Dst, 4194);
#line 6284 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	call ->assign_cv
			dasm_put(Dst, 4199);
#line 6286 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if ((val_info & MAY_BE_UNDEF) && JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
			//|9:
			dasm_put(Dst, 4204);
#line 6289 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		ZEND_UNREACHABLE();
	}

	return 1;
}

static int zend_jit_assign_to_variable(dasm_State    **Dst,
                                       const zend_op  *opline,
                                       zend_jit_addr   var_use_addr,
                                       zend_jit_addr   var_addr,
                                       uint32_t        var_info,
                                       uint32_t        var_def_info,
                                       zend_uchar      val_type,
                                       zend_jit_addr   val_addr,
                                       uint32_t        val_info,
                                       zend_jit_addr   res_addr,
                                       zend_bool       check_exception)
/* Labels: 1,2,3,4,5,8 */
{
	int done = 0;
	zend_reg ref_reg, tmp_reg;

	if (Z_MODE(var_addr) == IS_REG || Z_REG(var_use_addr) != ZREG_R0) {
		ref_reg = ZREG_FCARG1a;
		tmp_reg = ZREG_R0;
	} else {
		/* ASSIGN_DIM */
		ref_reg = ZREG_R0;
		tmp_reg = ZREG_FCARG1a;
	}

	if (var_info & MAY_BE_REF) {
		if (Z_MODE(var_use_addr) != IS_MEM_ZVAL || Z_REG(var_use_addr) != ref_reg || Z_OFFSET(var_use_addr) != 0) {
			//|	LOAD_ZVAL_ADDR Ra(ref_reg), var_use_addr
				if (Z_MODE(var_use_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(var_use_addr))) {
			dasm_put(Dst, 1756, (ref_reg), ((ptrdiff_t)Z_ZV(var_use_addr)));
					} else {
			dasm_put(Dst, 1749, (ref_reg), (unsigned int)(((ptrdiff_t)Z_ZV(var_use_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_use_addr)))>>32));
					}
				} else if (Z_MODE(var_use_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(var_use_addr)) {
			dasm_put(Dst, 2470, (ref_reg), (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr));
				} else {
			dasm_put(Dst, 1773, (Z_REG(var_use_addr)), (ref_reg));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 6325 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			var_addr = var_use_addr = ZEND_ADDR_MEM_ZVAL(ref_reg, 0);
		}
		//|	// if (Z_ISREF_P(variable_ptr)) {
		//|	IF_NOT_Z_TYPE, Ra(ref_reg), IS_REFERENCE, >3
		//|	// if (UNEXPECTED(ZEND_REF_HAS_TYPE_SOURCES(Z_REF_P(variable_ptr)))) {
		//|	GET_Z_PTR FCARG1a, Ra(ref_reg)
		dasm_put(Dst, 4207, (ref_reg), offsetof(zval, u1.v.type), IS_REFERENCE, (ref_reg), 0);
#line 6331 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!zend_jit_assign_to_typed_ref(Dst, opline, val_type, val_addr, res_addr, check_exception)) {
			return 0;
		}
		//|	lea Ra(ref_reg), [FCARG1a + offsetof(zend_reference, val)]
		//|3:
		dasm_put(Dst, 4227, (ref_reg), offsetof(zend_reference, val));
#line 6336 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (var_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
		if (RC_MAY_BE_1(var_info)) {
			int in_cold = 0;

			if (var_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				//|	IF_ZVAL_REFCOUNTED var_use_addr, >1
					ZEND_ASSERT(Z_MODE(var_use_addr) == IS_MEM_ZVAL);
#line 6343 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 277, (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 6344 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 6345 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				in_cold = 1;
			}
			if (Z_REG(var_use_addr) == ZREG_FCARG1a || Z_REG(var_use_addr) == ZREG_R0) {
				zend_bool keep_gc = 0;

				//|	GET_ZVAL_PTR Ra(tmp_reg), var_use_addr
					ZEND_ASSERT(Z_MODE(var_use_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (tmp_reg), (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr));
#line 6351 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (tmp_reg == ZREG_FCARG1a) {
					if (Z_MODE(val_addr) == IS_REG) {
						keep_gc = 1;
					} else if ((val_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_GUARD)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) == 0) {
						keep_gc = 1;
					} else if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (sizeof(void*) == 4) {
							keep_gc = 1;
						} else {
							zval *zv = Z_ZV(val_addr);

							if (Z_TYPE_P(zv) == IS_DOUBLE) {
								if (Z_DVAL_P(zv) == 0 || IS_SIGNED_32BIT(zv)) {
									keep_gc = 1;
								}
							} else if (IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
								keep_gc = 1;
							}
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
						if ((val_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							keep_gc = 1;
						}
					}
				}
				if (!keep_gc) {
					//|	mov aword T1, Ra(tmp_reg) // save
					dasm_put(Dst, 3517, (tmp_reg));
#line 6378 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 0)) {
					return 0;
				}
				if (!keep_gc) {
					//|	mov FCARG1a, aword T1 // restore
					dasm_put(Dst, 3986);
#line 6384 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	GET_ZVAL_PTR FCARG1a, var_use_addr
					ZEND_ASSERT(Z_MODE(var_use_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 4219, (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr));
#line 6387 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, in_cold, 1)) {
					return 0;
				}
			}
			//|	GC_DELREF FCARG1a
			dasm_put(Dst, 313);
#line 6392 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (RC_MAY_BE_N(var_info) && (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0) {
				//|	jnz >4
				dasm_put(Dst, 322);
#line 6394 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jnz >8
				dasm_put(Dst, 3691);
#line 6396 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	ZVAL_DTOR_FUNC var_info, opline
				do {
					if (!((var_info) & MAY_BE_GUARD)
					 && has_concrete_type((var_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((var_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((var_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((var_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
#line 6398 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (in_cold || (RC_MAY_BE_N(var_info) && (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0)) {
				if (check_exception) {
					//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
							if (IS_SIGNED_32BIT(&executor_globals.exception)) {
					dasm_put(Dst, 72, &executor_globals.exception);
							} else {
					dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
							}
#line 6401 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	je >8
					//|	jmp ->exception_handler
					dasm_put(Dst, 4148);
#line 6403 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >8
					dasm_put(Dst, 3768);
#line 6405 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (RC_MAY_BE_N(var_info) && (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0) {
				//|4:
				//|	IF_GC_MAY_NOT_LEAK FCARG1a, >8
				//|	EXT_CALL gc_possible_root, r0
				dasm_put(Dst, 4237, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 6411 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (in_cold) {
					//|	jmp >8
					dasm_put(Dst, 3768);
#line 6413 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (in_cold) {
				//|.code
				dasm_put(Dst, 387);
#line 6417 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				done = 1;
			}
		} else /* if (RC_MAY_BE_N(var_info)) */ {
			if (var_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				//|	IF_NOT_ZVAL_REFCOUNTED var_use_addr, >5
					ZEND_ASSERT(Z_MODE(var_use_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 4249, (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 6423 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (var_info & (MAY_BE_ARRAY|MAY_BE_OBJECT)) {
				if (Z_REG(var_use_addr) == ZREG_FP) {
					//|	mov T1, Ra(Z_REG(var_use_addr)) // save
					dasm_put(Dst, 3517, (Z_REG(var_use_addr)));
#line 6427 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	GET_ZVAL_PTR FCARG1a, var_use_addr
					ZEND_ASSERT(Z_MODE(var_use_addr) == IS_MEM_ZVAL);
#line 6429 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	GC_DELREF FCARG1a
				//|	IF_GC_MAY_NOT_LEAK FCARG1a, >5
				//|	EXT_CALL gc_possible_root, r0
				dasm_put(Dst, 4263, (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr), (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 6432 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (Z_REG(var_use_addr) != ZREG_FP) {
					//|	mov Ra(Z_REG(var_use_addr)), T1 // restore
					dasm_put(Dst, 3539, (Z_REG(var_use_addr)));
#line 6434 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	GET_ZVAL_PTR Ra(tmp_reg), var_use_addr
					ZEND_ASSERT(Z_MODE(var_use_addr) == IS_MEM_ZVAL);
#line 6437 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	GC_DELREF Ra(tmp_reg)
				dasm_put(Dst, 4283, (tmp_reg), (Z_REG(var_use_addr)), Z_OFFSET(var_use_addr), (tmp_reg), 0);
#line 6438 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|5:
			dasm_put(Dst, 495);
#line 6440 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	    }
	}

	if (!done && !zend_jit_simple_assign(Dst, opline, var_addr, var_info, var_def_info, val_type, val_addr, val_info, res_addr, 0, 0)) {
		return 0;
	}

	//|8:
	dasm_put(Dst, 4301);
#line 6448 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_assign_dim(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr, uint32_t op2_info, uint32_t val_info, int may_throw)
{
	zend_jit_addr op2_addr, op3_addr, res_addr;

	op2_addr = (opline->op2_type != IS_UNUSED) ? OP2_ADDR() : 0;
	op3_addr = OP1_DATA_ADDR();
	if (opline->result_type == IS_UNUSED) {
		res_addr = 0;
	} else {
		res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	}

	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && (val_info & MAY_BE_UNDEF)) {
		int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
		const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

		if (!exit_addr) {
			return 0;
		}

		//|	IF_ZVAL_TYPE op3_addr, IS_UNDEF, &exit_addr
			ZEND_ASSERT(Z_MODE(op3_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4157, (Z_REG(op3_addr)), Z_OFFSET(op3_addr)+offsetof(zval, u1.v.type), IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 6473 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		val_info &= ~MAY_BE_UNDEF;
	}

	if (op1_info & MAY_BE_REF) {
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6479 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_NOT_Z_TYPE FCARG1a, IS_REFERENCE, >1
		//|	GET_Z_PTR FCARG2a, FCARG1a
		//|	IF_NOT_TYPE byte [FCARG2a + offsetof(zend_reference, val) + offsetof(zval, u1.v.type)], IS_ARRAY, >2
		//|	lea FCARG1a, [FCARG2a + offsetof(zend_reference, val)]
		//|	jmp >3
		//|.cold_code
		dasm_put(Dst, 4304, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val) + offsetof(zval, u1.v.type), IS_ARRAY, offsetof(zend_reference, val));
#line 6485 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 2037);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 6487 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_jit_prepare_assign_dim_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_prepare_assign_dim_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_prepare_assign_dim_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_prepare_assign_dim_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_prepare_assign_dim_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_prepare_assign_dim_ref)), (unsigned int)((((ptrdiff_t)zend_jit_prepare_assign_dim_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6488 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	test r0, r0
		//|	mov FCARG1a, r0
		//|	jne >1
		//|	jmp ->exception_handler_undef
		//|.code
		dasm_put(Dst, 4333);
#line 6493 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 6494 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	if (op1_info & MAY_BE_ARRAY) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_ARRAY, >7
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY);
#line 6500 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|3:
		//|	SEPARATE_ARRAY op1_addr, op1_info, 1
		dasm_put(Dst, 347);
			if (RC_MAY_BE_N(op1_info)) {
				if (Z_REG(op1_addr) != ZREG_FP) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R0), (ZREG_R0));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R0 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R0));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					if (RC_MAY_BE_1(op1_info)) {
		dasm_put(Dst, 4362);
					}
					if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
					}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_zval_array_dup)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_zval_array_dup));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_zval_array_dup)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_zval_array_dup));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_zval_array_dup)), (unsigned int)((((ptrdiff_t)zend_jit_zval_array_dup))>>32));
				}
		dasm_put(Dst, 60);
				}
		dasm_put(Dst, 4370);
				} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					if (RC_MAY_BE_1(op1_info)) {
		dasm_put(Dst, 4376);
						if (1) {
		dasm_put(Dst, 4380);
		dasm_put(Dst, 64);
						} else {
		dasm_put(Dst, 3649);
						}
					}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4386, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_dup)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_dup));
				} else {
				if (IS_SIGNED_32BIT(zend_array_dup)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_dup));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_dup)), (unsigned int)((((ptrdiff_t)zend_array_dup))>>32));
				}
		dasm_put(Dst, 60);
				}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4405, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
					if (RC_MAY_BE_1(op1_info)) {
						if (1) {
		dasm_put(Dst, 2912);
						}
					}
		dasm_put(Dst, 2037);
				}
			} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			}
#line 6503 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)) {
		if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
			//|	CMP_ZVAL_TYPE op1_addr, IS_FALSE
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 6506 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jg >7
			dasm_put(Dst, 4417, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_FALSE);
#line 6507 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	// ZVAL_ARR(container, zend_new_array(8));
		if (Z_REG(op1_addr) != ZREG_FP) {
			//|	mov T1, Ra(Z_REG(op1_addr)) // save
			dasm_put(Dst, 3517, (Z_REG(op1_addr)));
#line 6511 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	EXT_CALL _zend_new_array_0, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(_zend_new_array_0)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_zend_new_array_0));
				} else {
				if (IS_SIGNED_32BIT(_zend_new_array_0)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_zend_new_array_0));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_new_array_0)), (unsigned int)((((ptrdiff_t)_zend_new_array_0))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6513 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REG(op1_addr) != ZREG_FP) {
			//|	mov Ra(Z_REG(op1_addr)), T1 // restore
			dasm_put(Dst, 3539, (Z_REG(op1_addr)));
#line 6515 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_ZVAL_LVAL op1_addr, r0
			if (Z_MODE(op1_addr) == IS_REG) {
		dasm_put(Dst, 2279, (Z_REG(op1_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
#line 6517 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO op1_addr, IS_ARRAY_EX
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 6518 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1a, r0
		dasm_put(Dst, 4405, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
#line 6519 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
		//|6:
		dasm_put(Dst, 3385);
#line 6523 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op2_type == IS_UNUSED) {
			uint32_t var_info = MAY_BE_NULL;
			zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

			//|	// var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval));
			//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
					if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
			dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
					}
#line 6529 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_hash_next_index_insert, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_next_index_insert)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_next_index_insert));
					} else {
					if (IS_SIGNED_32BIT(zend_hash_next_index_insert)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_next_index_insert));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_next_index_insert)), (unsigned int)((((ptrdiff_t)zend_hash_next_index_insert))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6530 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	// if (UNEXPECTED(!var_ptr)) {
			//|	test r0, r0
			//|	jz >1
			//|.cold_code
			dasm_put(Dst, 4430);
#line 6534 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	// zend_throw_error(NULL, "Cannot add element to the array as the next element is already occupied");
			//|	CANNOT_ADD_ELEMENT opline
			dasm_put(Dst, 64);
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
			dasm_put(Dst, 4439);
				} else {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
			dasm_put(Dst, 4444);
				}
#line 6537 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	//ZEND_VM_C_GOTO(assign_dim_op_ret_null);
			//|	jmp >9
			//|.code
			dasm_put(Dst, 4173);
#line 6540 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			if (!zend_jit_simple_assign(Dst, opline, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0, 0)) {
				return 0;
			}
		} else {
			uint32_t var_info = zend_array_element_type(op1_info, opline->op1_type, 0, 0);
			zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

			if (!zend_jit_fetch_dimension_address_inner(Dst, opline, BP_VAR_W, op1_info, op2_info, NULL, NULL, NULL)) {
				return 0;
			}

			if (op1_info & (MAY_BE_ARRAY_OF_REF|MAY_BE_OBJECT)) {
				var_info |= MAY_BE_REF;
			}
			if (var_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				var_info |= MAY_BE_RC1;
			}

			//|8:
			//|	// value = zend_assign_to_variable(variable_ptr, value, OP_DATA_TYPE);
			dasm_put(Dst, 4301);
#line 6561 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->op1_type == IS_VAR) {
				ZEND_ASSERT(opline->result_type == IS_UNUSED);
				if (!zend_jit_assign_to_variable_call(Dst, opline, var_addr, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0)) {
					return 0;
				}
			} else {
				if (!zend_jit_assign_to_variable(Dst, opline, var_addr, var_addr, var_info, -1, (opline+1)->op1_type, op3_addr, val_info, res_addr, 0)) {
					return 0;
				}
			}
		}
	}

	if (((op1_info & MAY_BE_ARRAY) &&
	     (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE))) ||
	    (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)))) {
		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 6579 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 6580 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if ((op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)) &&
		    (op1_info & MAY_BE_ARRAY)) {
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
				//|	CMP_ZVAL_TYPE op1_addr, IS_FALSE
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 6586 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jg >2
				dasm_put(Dst, 4452, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_FALSE);
#line 6587 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	// ZVAL_ARR(container, zend_new_array(8));
			if (Z_REG(op1_addr) != ZREG_FP) {
				//|	mov T1, Ra(Z_REG(op1_addr)) // save
				dasm_put(Dst, 3517, (Z_REG(op1_addr)));
#line 6591 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	EXT_CALL _zend_new_array_0, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(_zend_new_array_0)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_zend_new_array_0));
					} else {
					if (IS_SIGNED_32BIT(_zend_new_array_0)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_zend_new_array_0));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_new_array_0)), (unsigned int)((((ptrdiff_t)_zend_new_array_0))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6593 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (Z_REG(op1_addr) != ZREG_FP) {
				//|	mov Ra(Z_REG(op1_addr)), T1 // restore
				dasm_put(Dst, 3539, (Z_REG(op1_addr)));
#line 6595 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_ZVAL_LVAL op1_addr, r0
				if (Z_MODE(op1_addr) == IS_REG) {
			dasm_put(Dst, 2279, (Z_REG(op1_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
#line 6597 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO op1_addr, IS_ARRAY_EX
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 6598 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG1a, r0
			//|	// ZEND_VM_C_GOTO(assign_dim_op_new_array);
			//|	jmp <6
			//|2:
			dasm_put(Dst, 4465, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
#line 6602 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 6606 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		    if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 6608 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		    if (opline->op2_type == IS_UNUSED) {
				//|	xor FCARG2a, FCARG2a
				dasm_put(Dst, 2363);
#line 6611 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
				//|	LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
						if (IS_SIGNED_32BIT((Z_ZV(op2_addr) + 1))) {
				dasm_put(Dst, 707, ((ptrdiff_t)(Z_ZV(op2_addr) + 1)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)(Z_ZV(op2_addr) + 1))), (unsigned int)((((ptrdiff_t)(Z_ZV(op2_addr) + 1)))>>32));
						}
#line 6614 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 6616 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.if not(X64)
			//|	sub r4, 8
			//|.endif
			if (opline->result_type == IS_UNUSED) {
				//|.if X64
					//|	xor CARG4, CARG4
				//|.else
					//|	push 0
				//|.endif
				dasm_put(Dst, 4483);
#line 6626 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|.if X64
					//|	LOAD_ZVAL_ADDR CARG4, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 4487, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 4497, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 4505, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 6629 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
			}
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, op3_addr
					if (Z_MODE(op3_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op3_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op3_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op3_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op3_addr)))>>32));
						}
					} else if (Z_MODE(op3_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op3_addr)) {
				dasm_put(Dst, 3398, (Z_REG(op3_addr)), Z_OFFSET(op3_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(op3_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 6635 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	PUSH_ZVAL_ADDR op3_addr, r0
			//|.endif
			//|	EXT_CALL zend_jit_assign_dim_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_dim_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_dim_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_dim_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_dim_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_dim_helper)), (unsigned int)((((ptrdiff_t)zend_jit_assign_dim_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6639 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if not(X64)
			//|	add r4, 8
			//|.endif

#ifdef ZEND_JIT_USE_RC_INFERENCE
			if (((opline+1)->op1_type & (IS_TMP_VAR|IS_VAR)) && (val_info & MAY_BE_RC1)) {
				/* ASSIGN_DIM may increase refcount of the value */
				val_info |= MAY_BE_RCN;
			}
#endif

			//|	FREE_OP (opline+1)->op1_type, (opline+1)->op1, val_info, 0, opline
				if ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (0) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)));
					if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_1(val_info)) {
						if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_N(val_info)) {
							if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((val_info) & MAY_BE_GUARD)
					 && has_concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((val_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((val_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((val_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (0 && ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 6651 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
				//|	jmp >9 // END
				dasm_put(Dst, 3682);
#line 6656 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.code
			dasm_put(Dst, 387);
#line 6658 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

#ifdef ZEND_JIT_USE_RC_INFERENCE
	if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY|MAY_BE_OBJECT))) {
		/* ASSIGN_DIM may increase refcount of the key */
		op2_info |= MAY_BE_RCN;
	}
#endif

	//|9:
	//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
	dasm_put(Dst, 4204);
		if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
			if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op2_info) & MAY_BE_GUARD)
			 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 6670 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (may_throw) {
		zend_jit_check_exception(Dst);
	}

	return 1;
}

static int zend_jit_assign_dim_op(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, uint32_t op1_def_info, zend_jit_addr op1_addr, uint32_t op2_info, uint32_t op1_data_info, zend_ssa_range *op1_data_range, int may_throw)
{
	zend_jit_addr op2_addr, op3_addr, var_addr;

	ZEND_ASSERT(opline->result_type == IS_UNUSED);

	op2_addr = (opline->op2_type != IS_UNUSED) ? OP2_ADDR() : 0;
	op3_addr = OP1_DATA_ADDR();

	if (op1_info & MAY_BE_REF) {
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6689 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_NOT_Z_TYPE FCARG1a, IS_REFERENCE, >1
		//|	GET_Z_PTR FCARG2a, FCARG1a
		//|	IF_NOT_TYPE byte [FCARG2a + offsetof(zend_reference, val) + offsetof(zval, u1.v.type)], IS_ARRAY, >2
		//|	lea FCARG1a, [FCARG2a + offsetof(zend_reference, val)]
		//|	jmp >3
		//|.cold_code
		dasm_put(Dst, 4304, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val) + offsetof(zval, u1.v.type), IS_ARRAY, offsetof(zend_reference, val));
#line 6695 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 2037);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 6697 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_jit_prepare_assign_dim_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_prepare_assign_dim_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_prepare_assign_dim_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_prepare_assign_dim_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_prepare_assign_dim_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_prepare_assign_dim_ref)), (unsigned int)((((ptrdiff_t)zend_jit_prepare_assign_dim_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6698 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	test r0, r0
		//|	mov FCARG1a, r0
		//|	jne >1
		//|	jmp ->exception_handler_undef
		//|.code
		dasm_put(Dst, 4333);
#line 6703 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 6704 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	if (op1_info & MAY_BE_ARRAY) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_ARRAY, >7
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY);
#line 6710 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|3:
		//|	SEPARATE_ARRAY op1_addr, op1_info, 1
		dasm_put(Dst, 347);
			if (RC_MAY_BE_N(op1_info)) {
				if (Z_REG(op1_addr) != ZREG_FP) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R0), (ZREG_R0));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R0 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R0));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					if (RC_MAY_BE_1(op1_info)) {
		dasm_put(Dst, 4362);
					}
					if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
					}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_zval_array_dup)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_zval_array_dup));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_zval_array_dup)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_zval_array_dup));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_zval_array_dup)), (unsigned int)((((ptrdiff_t)zend_jit_zval_array_dup))>>32));
				}
		dasm_put(Dst, 60);
				}
		dasm_put(Dst, 4370);
				} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					if (RC_MAY_BE_1(op1_info)) {
		dasm_put(Dst, 4376);
						if (1) {
		dasm_put(Dst, 4380);
		dasm_put(Dst, 64);
						} else {
		dasm_put(Dst, 3649);
						}
					}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4386, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_dup)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_dup));
				} else {
				if (IS_SIGNED_32BIT(zend_array_dup)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_dup));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_dup)), (unsigned int)((((ptrdiff_t)zend_array_dup))>>32));
				}
		dasm_put(Dst, 60);
				}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4405, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
					if (RC_MAY_BE_1(op1_info)) {
						if (1) {
		dasm_put(Dst, 2912);
						}
					}
		dasm_put(Dst, 2037);
				}
			} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			}
#line 6713 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)) {
		if (op1_info & MAY_BE_ARRAY) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 6717 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 6718 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
			//|	CMP_ZVAL_TYPE op1_addr, IS_FALSE
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 6721 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jg >7
			dasm_put(Dst, 4417, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_FALSE);
#line 6722 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_REG(op1_addr) != ZREG_FP) {
			//|	mov T1, Ra(Z_REG(op1_addr)) // save
			dasm_put(Dst, 3517, (Z_REG(op1_addr)));
#line 6725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & MAY_BE_UNDEF) {
			if (op1_info & (MAY_BE_NULL|MAY_BE_FALSE)) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 6729 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 6731 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG1a, opline->op1.var
			//|	EXT_CALL zend_jit_undefined_op_helper, r0
			dasm_put(Dst, 702, opline->op1.var);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6733 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 6734 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	// ZVAL_ARR(container, zend_new_array(8));
		//|	EXT_CALL _zend_new_array_0, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(_zend_new_array_0)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_zend_new_array_0));
				} else {
				if (IS_SIGNED_32BIT(_zend_new_array_0)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_zend_new_array_0));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_new_array_0)), (unsigned int)((((ptrdiff_t)_zend_new_array_0))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6737 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REG(op1_addr) != ZREG_FP) {
			//|	mov Ra(Z_REG(op1_addr)), T1 // restore
			dasm_put(Dst, 3539, (Z_REG(op1_addr)));
#line 6739 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_ZVAL_LVAL op1_addr, r0
			if (Z_MODE(op1_addr) == IS_REG) {
		dasm_put(Dst, 2279, (Z_REG(op1_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
#line 6741 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO op1_addr, IS_ARRAY_EX
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 6742 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1a, r0
		dasm_put(Dst, 4405, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
#line 6743 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & MAY_BE_ARRAY) {
			//|	jmp >1
			//|.code
			dasm_put(Dst, 3783);
#line 6746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 6747 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
		uint32_t var_info;
		uint32_t var_def_info = zend_array_element_type(op1_def_info, opline->op1_type, 1, 0);

		//|6:
		dasm_put(Dst, 3385);
#line 6755 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op2_type == IS_UNUSED) {
			var_info = MAY_BE_NULL;

			//|	// var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval));
			//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
					if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
			dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
					}
#line 6760 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_hash_next_index_insert, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_next_index_insert)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_next_index_insert));
					} else {
					if (IS_SIGNED_32BIT(zend_hash_next_index_insert)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_next_index_insert));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_next_index_insert)), (unsigned int)((((ptrdiff_t)zend_hash_next_index_insert))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6761 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	// if (UNEXPECTED(!var_ptr)) {
			//|	test r0, r0
			//|	jz >1
			//|.cold_code
			dasm_put(Dst, 4430);
#line 6765 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	// zend_throw_error(NULL, "Cannot add element to the array as the next element is already occupied");
			//|	CANNOT_ADD_ELEMENT opline
			dasm_put(Dst, 64);
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
			dasm_put(Dst, 4439);
				} else {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
			dasm_put(Dst, 4444);
				}
#line 6768 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	//ZEND_VM_C_GOTO(assign_dim_op_ret_null);
			//|	jmp >9
			//|.code
			dasm_put(Dst, 4173);
#line 6771 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			var_info = zend_array_element_type(op1_info, opline->op1_type, 0, 0);
			if (op1_info & (MAY_BE_ARRAY_OF_REF|MAY_BE_OBJECT)) {
				var_info |= MAY_BE_REF;
			}
			if (var_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				var_info |= MAY_BE_RC1;
			}

			if (!zend_jit_fetch_dimension_address_inner(Dst, opline, BP_VAR_RW, op1_info, op2_info, NULL, NULL, NULL)) {
				return 0;
			}

			//|8:
			dasm_put(Dst, 4301);
#line 6785 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & (MAY_BE_ARRAY_OF_REF)) {
				binary_op_type binary_op = get_binary_op(opline->extended_value);
				//|	IF_NOT_Z_TYPE, r0, IS_REFERENCE, >1
				//|	GET_Z_PTR FCARG1a, r0
				//|	cmp aword [FCARG1a + offsetof(zend_reference, sources.ptr)], 0
				//|	jnz >2
				//|	lea r0, aword [FCARG1a + offsetof(zend_reference, val)]
				//|.cold_code
				dasm_put(Dst, 4511, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, sources.ptr), offsetof(zend_reference, val));
#line 6793 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|2:
				//|	LOAD_ZVAL_ADDR FCARG2a, op3_addr
				dasm_put(Dst, 2037);
					if (Z_MODE(op3_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op3_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op3_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op3_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op3_addr)))>>32));
						}
					} else if (Z_MODE(op3_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op3_addr)) {
				dasm_put(Dst, 2349, (Z_REG(op3_addr)), Z_OFFSET(op3_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(op3_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 6795 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if X64
					//|	LOAD_ADDR CARG3, binary_op
							if (IS_SIGNED_32BIT(binary_op)) {
					dasm_put(Dst, 3388, ((ptrdiff_t)binary_op));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
							}
#line 6797 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|	PUSH_ADDR binary_op, r0
				//|.endif
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 6802 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (((opline+1)->op1_type & (IS_TMP_VAR|IS_VAR))
				 && (op1_data_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					//|	EXT_CALL zend_jit_assign_op_to_typed_ref_tmp, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref_tmp));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 6805 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL zend_jit_assign_op_to_typed_ref, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 6807 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|.if not(X64)
				//|	add r4, 12
				//|.endif
				zend_jit_check_exception(Dst);
				//|	jmp >9
				//|.code
				dasm_put(Dst, 4173);
#line 6814 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 6815 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}

		var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);
		switch (opline->extended_value) {
			case ZEND_ADD:
			case ZEND_SUB:
			case ZEND_MUL:
			case ZEND_DIV:
				if (!zend_jit_math_helper(Dst, opline, opline->extended_value, IS_CV, opline->op1, var_addr, var_info, (opline+1)->op1_type, (opline+1)->op1, op3_addr, op1_data_info, 0, var_addr, var_def_info, var_info,
						1 /* may overflow */, may_throw)) {
					return 0;
				}
				break;
			case ZEND_BW_OR:
			case ZEND_BW_AND:
			case ZEND_BW_XOR:
			case ZEND_SL:
			case ZEND_SR:
			case ZEND_MOD:
				if (!zend_jit_long_math_helper(Dst, opline, opline->extended_value,
						IS_CV, opline->op1, var_addr, var_info, NULL,
						(opline+1)->op1_type, (opline+1)->op1, op3_addr, op1_data_info,
						op1_data_range,
						0, var_addr, var_def_info, var_info, may_throw)) {
					return 0;
				}
				break;
			case ZEND_CONCAT:
				if (!zend_jit_concat_helper(Dst, opline, IS_CV, opline->op1, var_addr, var_info, (opline+1)->op1_type, (opline+1)->op1, op3_addr, op1_data_info, var_addr,
						may_throw)) {
					return 0;
				}
				break;
			default:
				ZEND_UNREACHABLE();
		}
	}

	if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
		binary_op_type binary_op;

		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 6859 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 6860 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 6863 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 6865 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	    if (opline->op2_type == IS_UNUSED) {
			//|	xor FCARG2a, FCARG2a
			dasm_put(Dst, 2363);
#line 6868 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
			ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
			//|	LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
					if (IS_SIGNED_32BIT((Z_ZV(op2_addr) + 1))) {
			dasm_put(Dst, 707, ((ptrdiff_t)(Z_ZV(op2_addr) + 1)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)(Z_ZV(op2_addr) + 1))), (unsigned int)((((ptrdiff_t)(Z_ZV(op2_addr) + 1)))>>32));
					}
#line 6871 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 6873 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		binary_op = get_binary_op(opline->extended_value);
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, op3_addr
				if (Z_MODE(op3_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op3_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op3_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op3_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op3_addr)))>>32));
					}
				} else if (Z_MODE(op3_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op3_addr)) {
			dasm_put(Dst, 3398, (Z_REG(op3_addr)), Z_OFFSET(op3_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(op3_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 6877 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	LOAD_ADDR CARG4, binary_op
					if (IS_SIGNED_32BIT(binary_op)) {
			dasm_put(Dst, 4487, ((ptrdiff_t)binary_op));
					} else {
			dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
					}
#line 6878 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 8
			//|	PUSH_ADDR binary_op, r0
			//|	PUSH_ZVAL_ADDR op3_addr, r0
		//|.endif
		//|	EXT_CALL zend_jit_assign_dim_op_helper, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_dim_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_dim_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_dim_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_dim_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_dim_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_assign_dim_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 6884 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if not(X64)
		//|	add r4, 8
		//|.endif
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}

		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
			//|	jmp >9 // END
			//|.code
			dasm_put(Dst, 4173);
#line 6894 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	//|9:
	//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
	dasm_put(Dst, 4204);
		if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
			if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op2_info) & MAY_BE_GUARD)
			 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 6899 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_assign_op(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, uint32_t op1_def_info, zend_ssa_range *op1_range, uint32_t op2_info, zend_ssa_range *op2_range, int may_overflow, int may_throw)
{
	zend_jit_addr op1_addr, op2_addr;

	ZEND_ASSERT(opline->op1_type == IS_CV && opline->result_type == IS_UNUSED);
	ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF) && !(op2_info & MAY_BE_UNDEF));

	op1_addr = OP1_ADDR();
	op2_addr = OP2_ADDR();

	if (op1_info & MAY_BE_REF) {
		binary_op_type binary_op = get_binary_op(opline->extended_value);
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6916 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_NOT_Z_TYPE, FCARG1a, IS_REFERENCE, >1
		//|	GET_Z_PTR FCARG1a, FCARG1a
		//|	cmp aword [FCARG1a + offsetof(zend_reference, sources.ptr)], 0
		//|	jnz >2
		//|	add FCARG1a, offsetof(zend_reference, val)
		//|.cold_code
		dasm_put(Dst, 4537, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, sources.ptr), offsetof(zend_reference, val));
#line 6922 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
		dasm_put(Dst, 2037);
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op2_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op2_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 6924 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
			//|	LOAD_ADDR CARG3, binary_op
					if (IS_SIGNED_32BIT(binary_op)) {
			dasm_put(Dst, 3388, ((ptrdiff_t)binary_op));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
					}
#line 6926 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 12
			//|	PUSH_ADDR binary_op, r0
		//|.endif
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 6931 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if ((opline->op2_type & (IS_TMP_VAR|IS_VAR))
		 && (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			//|	EXT_CALL zend_jit_assign_op_to_typed_ref_tmp, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref_tmp));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	EXT_CALL zend_jit_assign_op_to_typed_ref, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 6936 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		zend_jit_check_exception(Dst);
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 6943 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 6944 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	int result;
	switch (opline->extended_value) {
		case ZEND_ADD:
		case ZEND_SUB:
		case ZEND_MUL:
		case ZEND_DIV:
			result = zend_jit_math_helper(Dst, opline, opline->extended_value, opline->op1_type, opline->op1, op1_addr, op1_info, opline->op2_type, opline->op2, op2_addr, op2_info, opline->op1.var, op1_addr, op1_def_info, op1_info, may_overflow, may_throw);
			break;
		case ZEND_BW_OR:
		case ZEND_BW_AND:
		case ZEND_BW_XOR:
		case ZEND_SL:
		case ZEND_SR:
		case ZEND_MOD:
			result = zend_jit_long_math_helper(Dst, opline, opline->extended_value,
				opline->op1_type, opline->op1, op1_addr, op1_info, op1_range,
				opline->op2_type, opline->op2, op2_addr, op2_info, op2_range,
				opline->op1.var, op1_addr, op1_def_info, op1_info, may_throw);
			break;
		case ZEND_CONCAT:
			result = zend_jit_concat_helper(Dst, opline, opline->op1_type, opline->op1, op1_addr, op1_info, opline->op2_type, opline->op2, op2_addr, op2_info, op1_addr, may_throw);
			break;
		default:
			ZEND_UNREACHABLE();
	}
	//|9:
	dasm_put(Dst, 4204);
#line 6973 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return result;
}

static int zend_jit_is_constant_cmp_long_long(const zend_op  *opline,
                                              zend_ssa_range *op1_range,
                                              zend_jit_addr   op1_addr,
                                              zend_ssa_range *op2_range,
                                              zend_jit_addr   op2_addr,
                                              zend_bool      *result)
{
	zend_long op1_min;
	zend_long op1_max;
	zend_long op2_min;
	zend_long op2_max;

	if (op1_range) {
		op1_min = op1_range->min;
		op1_max = op1_range->max;
	} else if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
		ZEND_ASSERT(Z_TYPE_P(Z_ZV(op1_addr)) == IS_LONG);
		op1_min = op1_max = Z_LVAL_P(Z_ZV(op1_addr));
	} else {
		return 0;
	}

	if (op2_range) {
		op2_min = op2_range->min;
		op2_max = op2_range->max;
	} else if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
		ZEND_ASSERT(Z_TYPE_P(Z_ZV(op2_addr)) == IS_LONG);
		op2_min = op2_max = Z_LVAL_P(Z_ZV(op2_addr));
	} else {
		return 0;
	}

	switch (opline->opcode) {
		case ZEND_IS_EQUAL:
		case ZEND_IS_IDENTICAL:
		case ZEND_CASE:
		case ZEND_CASE_STRICT:
			if (op1_min == op1_max && op2_min == op2_max && op1_min == op2_min) {
				*result = 1;
				return 1;
			} else if (op1_max < op2_min || op1_min > op2_max) {
				*result = 0;
				return 1;
			}
			return 0;
		case ZEND_IS_NOT_EQUAL:
		case ZEND_IS_NOT_IDENTICAL:
			if (op1_min == op1_max && op2_min == op2_max && op1_min == op2_min) {
				*result = 0;
				return 1;
			} else if (op1_max < op2_min || op1_min > op2_max) {
				*result = 1;
				return 1;
			}
			return 0;
		case ZEND_IS_SMALLER:
			if (op1_max < op2_min) {
				*result = 1;
				return 1;
			} else if (op1_min >= op2_max) {
				*result = 0;
				return 1;
			}
			return 0;
		case ZEND_IS_SMALLER_OR_EQUAL:
			if (op1_max <= op2_min) {
				*result = 1;
				return 1;
			} else if (op1_min > op2_max) {
				*result = 0;
				return 1;
			}
			return 0;
		default:
			ZEND_UNREACHABLE();
	}
	return 0;
}

static int zend_jit_cmp_long_long(dasm_State    **Dst,
                                  const zend_op  *opline,
                                  zend_ssa_range *op1_range,
                                  zend_jit_addr   op1_addr,
                                  zend_ssa_range *op2_range,
                                  zend_jit_addr   op2_addr,
                                  zend_jit_addr   res_addr,
                                  zend_uchar      smart_branch_opcode,
                                  uint32_t        target_label,
                                  uint32_t        target_label2,
                                  const void     *exit_addr,
                                  zend_bool       skip_comparison)
{
	zend_bool swap = 0;
	zend_bool result;

	if (zend_jit_is_constant_cmp_long_long(opline, op1_range, op1_addr, op2_range, op2_addr, &result)) {
		if (!smart_branch_opcode ||
		    smart_branch_opcode == ZEND_JMPZ_EX ||
		    smart_branch_opcode == ZEND_JMPNZ_EX) {
			//|	SET_ZVAL_TYPE_INFO res_addr, (result ? IS_TRUE : IS_FALSE)
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), (result ? IS_TRUE : IS_FALSE));
#line 7076 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (smart_branch_opcode && !exit_addr) {
			if (smart_branch_opcode == ZEND_JMPZ ||
			    smart_branch_opcode == ZEND_JMPZ_EX) {
				if (!result) {
					//| jmp => target_label
					dasm_put(Dst, 1645,  target_label);
#line 7082 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (smart_branch_opcode == ZEND_JMPNZ ||
			           smart_branch_opcode == ZEND_JMPNZ_EX) {
				if (result) {
					//| jmp => target_label
					dasm_put(Dst, 1645,  target_label);
#line 7087 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (smart_branch_opcode == ZEND_JMPZNZ) {
				if (!result) {
					//| jmp => target_label
					dasm_put(Dst, 1645,  target_label);
#line 7091 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//| jmp => target_label2
					dasm_put(Dst, 1645,  target_label2);
#line 7093 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				ZEND_UNREACHABLE();
			}
		}
		return 1;
	}

	if (skip_comparison) {
		if (Z_MODE(op1_addr) != IS_REG &&
		    (Z_MODE(op2_addr) == IS_REG ||
		     (Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_MODE(op2_addr) != IS_CONST_ZVAL))) {
			swap = 1;
		}
	} else if (Z_MODE(op1_addr) == IS_REG) {
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
			//|	test Ra(Z_REG(op1_addr)), Ra(Z_REG(op1_addr))
			dasm_put(Dst, 3555, (Z_REG(op1_addr)), (Z_REG(op1_addr)));
#line 7110 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LONG_OP cmp, Z_REG(op1_addr), op2_addr, r0
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 4563, (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (Z_REG(op1_addr)));
						} else {
			dasm_put(Dst, 4573, (Z_REG(op1_addr)), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 4581, (Z_REG(op1_addr)), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 4591, (Z_REG(op2_addr)), (Z_REG(op1_addr)));
				} else {
					ZEND_UNREACHABLE();
				}
#line 7112 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (Z_MODE(op2_addr) == IS_REG) {
		if (Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			//|	test Ra(Z_REG(op2_addr)), Ra(Z_REG(op2_addr))
			dasm_put(Dst, 3555, (Z_REG(op2_addr)), (Z_REG(op2_addr)));
#line 7116 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LONG_OP cmp, Z_REG(op2_addr), op1_addr, r0
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 4563, (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32), (Z_REG(op2_addr)));
						} else {
			dasm_put(Dst, 4573, (Z_REG(op2_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 4581, (Z_REG(op2_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
			dasm_put(Dst, 4591, (Z_REG(op1_addr)), (Z_REG(op2_addr)));
				} else {
					ZEND_UNREACHABLE();
				}
#line 7118 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		swap = 1;
	} else if (Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_MODE(op2_addr) != IS_CONST_ZVAL) {
		//|	LONG_OP_WITH_CONST cmp, op2_addr, Z_LVAL_P(Z_ZV(op1_addr))
			if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 4599, (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
		dasm_put(Dst, 4611, (Z_REG(op2_addr)), Z_OFFSET(op2_addr), Z_LVAL_P(Z_ZV(op1_addr)));
					}
			} else if (Z_MODE(op2_addr) == IS_REG) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 4563, (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32), (Z_REG(op2_addr)));
					} else {
		dasm_put(Dst, 4573, (Z_REG(op2_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
					}
			} else {
				ZEND_UNREACHABLE();
			}
#line 7122 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		swap = 1;
	} else if (Z_MODE(op2_addr) == IS_CONST_ZVAL && Z_MODE(op1_addr) != IS_CONST_ZVAL) {
		//|	LONG_OP_WITH_CONST cmp, op1_addr, Z_LVAL_P(Z_ZV(op2_addr))
			if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 4599, (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
		dasm_put(Dst, 4611, (Z_REG(op1_addr)), Z_OFFSET(op1_addr), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else if (Z_MODE(op1_addr) == IS_REG) {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
		dasm_put(Dst, 4563, (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (Z_REG(op1_addr)));
					} else {
		dasm_put(Dst, 4573, (Z_REG(op1_addr)), Z_LVAL_P(Z_ZV(op2_addr)));
					}
			} else {
				ZEND_UNREACHABLE();
			}
#line 7125 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	GET_ZVAL_LVAL ZREG_R0, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R0), (ZREG_R0));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R0 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R0));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 7127 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL && Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
			//|	test r0, r0
			dasm_put(Dst, 3620);
#line 7129 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LONG_OP cmp, ZREG_R0, op2_addr, r0
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
			dasm_put(Dst, 4563, (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32), (ZREG_R0));
						} else {
			dasm_put(Dst, 4573, (ZREG_R0), Z_LVAL_P(Z_ZV(op2_addr)));
						}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 4581, (ZREG_R0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else if (Z_MODE(op2_addr) == IS_REG) {
			dasm_put(Dst, 4591, (Z_REG(op2_addr)), (ZREG_R0));
				} else {
					ZEND_UNREACHABLE();
				}
#line 7131 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (smart_branch_opcode) {
		if (smart_branch_opcode == ZEND_JMPZ_EX ||
		    smart_branch_opcode == ZEND_JMPNZ_EX) {

			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					//|	sete al
					dasm_put(Dst, 4620);
#line 7144 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
				case ZEND_IS_NOT_IDENTICAL:
					//|	setne al
					dasm_put(Dst, 4624);
#line 7148 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						//|	setg al
						dasm_put(Dst, 4628);
#line 7152 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	setl al
						dasm_put(Dst, 4632);
#line 7154 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						//|	setge al
						dasm_put(Dst, 4636);
#line 7159 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	setle al
						dasm_put(Dst, 4640);
#line 7161 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
			//|	movzx eax, al
			//|	lea eax, [eax + 2]
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
			dasm_put(Dst, 4644, 2);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 7169 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (smart_branch_opcode == ZEND_JMPZ ||
		    smart_branch_opcode == ZEND_JMPZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					if (exit_addr) {
						//| jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 7179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						dasm_put(Dst, 1878,  target_label);
#line 7181 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_EQUAL:
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7186 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7188 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_IDENTICAL:
					if (exit_addr) {
						//| jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 7193 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7195 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						if (exit_addr) {
							//| jle &exit_addr
							dasm_put(Dst, 3860, (ptrdiff_t)(exit_addr));
#line 7201 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jle => target_label
							dasm_put(Dst, 4663,  target_label);
#line 7203 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						if (exit_addr) {
							//| jge &exit_addr
							dasm_put(Dst, 4667, (ptrdiff_t)(exit_addr));
#line 7207 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jge => target_label
							dasm_put(Dst, 4671,  target_label);
#line 7209 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						if (exit_addr) {
							//| jl &exit_addr
							dasm_put(Dst, 4675, (ptrdiff_t)(exit_addr));
#line 7216 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jl => target_label
							dasm_put(Dst, 4679,  target_label);
#line 7218 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						if (exit_addr) {
							//| jg &exit_addr
							dasm_put(Dst, 3864, (ptrdiff_t)(exit_addr));
#line 7222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jg => target_label
							dasm_put(Dst, 4683,  target_label);
#line 7224 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPNZ ||
		           smart_branch_opcode == ZEND_JMPNZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7239 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7241 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_EQUAL:
					if (exit_addr) {
						//| jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 7246 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						dasm_put(Dst, 1878,  target_label);
#line 7248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_IDENTICAL:
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7253 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						dasm_put(Dst, 1878,  target_label);
#line 7255 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						if (exit_addr) {
							//| jg &exit_addr
							dasm_put(Dst, 3864, (ptrdiff_t)(exit_addr));
#line 7261 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jg => target_label
							dasm_put(Dst, 4683,  target_label);
#line 7263 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						if (exit_addr) {
							//| jl &exit_addr
							dasm_put(Dst, 4675, (ptrdiff_t)(exit_addr));
#line 7267 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jl => target_label
							dasm_put(Dst, 4679,  target_label);
#line 7269 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						if (exit_addr) {
							//| jge &exit_addr
							dasm_put(Dst, 4667, (ptrdiff_t)(exit_addr));
#line 7276 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jge => target_label
							dasm_put(Dst, 4671,  target_label);
#line 7278 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						if (exit_addr) {
							//| jle &exit_addr
							dasm_put(Dst, 3860, (ptrdiff_t)(exit_addr));
#line 7282 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jle => target_label
							dasm_put(Dst, 4663,  target_label);
#line 7284 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					//| jne => target_label
					dasm_put(Dst, 1878,  target_label);
#line 7297 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
				case ZEND_IS_NOT_IDENTICAL:
					//| je => target_label
					dasm_put(Dst, 4659,  target_label);
#line 7301 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
				    if (swap) {
						//| jle => target_label
						dasm_put(Dst, 4663,  target_label);
#line 7305 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				    } else {
						//| jge => target_label
						dasm_put(Dst, 4671,  target_label);
#line 7307 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						//| jl => target_label
						dasm_put(Dst, 4679,  target_label);
#line 7312 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jg => target_label
						dasm_put(Dst, 4683,  target_label);
#line 7314 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
			//| jmp => target_label2
			dasm_put(Dst, 1645,  target_label2);
#line 7320 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
	} else {
		switch (opline->opcode) {
			case ZEND_IS_EQUAL:
			case ZEND_IS_IDENTICAL:
			case ZEND_CASE:
			case ZEND_CASE_STRICT:
				//|	sete al
				dasm_put(Dst, 4620);
#line 7330 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_NOT_EQUAL:
			case ZEND_IS_NOT_IDENTICAL:
				//|	setne al
				dasm_put(Dst, 4624);
#line 7334 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_SMALLER:
				if (swap) {
					//|	setg al
					dasm_put(Dst, 4628);
#line 7338 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	setl al
					dasm_put(Dst, 4632);
#line 7340 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			case ZEND_IS_SMALLER_OR_EQUAL:
				if (swap) {
					//|	setge al
					dasm_put(Dst, 4636);
#line 7345 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	setle al
					dasm_put(Dst, 4640);
#line 7347 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			default:
				ZEND_UNREACHABLE();
		}
		//|	movzx eax, al
		//|	add eax, 2
		//|	SET_ZVAL_TYPE_INFO res_addr, eax
		dasm_put(Dst, 4687);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 7355 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_cmp_double_common(dasm_State **Dst, const zend_op *opline, zend_jit_addr res_addr, zend_bool swap, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	if (smart_branch_opcode) {
		if (smart_branch_opcode == ZEND_JMPZ) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					if (exit_addr) {
						//| jne &exit_addr
						//| jp &exit_addr
						dasm_put(Dst, 4694, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
#line 7372 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						//| jp => target_label
						dasm_put(Dst, 4701,  target_label,  target_label);
#line 7375 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_EQUAL:
					//| jp >1
					dasm_put(Dst, 4708);
#line 7379 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7381 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7383 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|1:
					dasm_put(Dst, 64);
#line 7385 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_IDENTICAL:
					if (exit_addr) {
						//| jne &exit_addr
						//| jp &exit_addr
						dasm_put(Dst, 4694, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
#line 7390 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jp >1
						//| je => target_label
						//|1:
						dasm_put(Dst, 4713,  target_label);
#line 7394 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						if (exit_addr) {
							//| jbe &exit_addr
							dasm_put(Dst, 3635, (ptrdiff_t)(exit_addr));
#line 7400 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jbe => target_label
							dasm_put(Dst, 4723,  target_label);
#line 7402 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						if (exit_addr) {
							//| jae &exit_addr
							//| jp &exit_addr
							dasm_put(Dst, 4727, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
#line 7407 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jae => target_label
							//| jp => target_label
							dasm_put(Dst, 4734,  target_label,  target_label);
#line 7410 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						if (exit_addr) {
							//| jb &exit_addr
							dasm_put(Dst, 4741, (ptrdiff_t)(exit_addr));
#line 7417 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jb => target_label
							dasm_put(Dst, 4745,  target_label);
#line 7419 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						if (exit_addr) {
							//| ja &exit_addr
							//| jp &exit_addr
							dasm_put(Dst, 4749, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
#line 7424 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| ja => target_label
							//| jp => target_label
							dasm_put(Dst, 4756,  target_label,  target_label);
#line 7427 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPNZ) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					//| jp >1
					dasm_put(Dst, 4708);
#line 7440 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7442 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7444 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|1:
					dasm_put(Dst, 64);
#line 7446 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
					if (exit_addr) {
						//| jne &exit_addr
						//| jp &exit_addr
						dasm_put(Dst, 4694, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
#line 7451 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						//| jp => target_label
						dasm_put(Dst, 4701,  target_label,  target_label);
#line 7454 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_IDENTICAL:
					if (exit_addr) {
						//| jp >1
						//| je &exit_addr
						//|1:
						dasm_put(Dst, 4763, (ptrdiff_t)(exit_addr));
#line 7461 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						//| jp => target_label
						dasm_put(Dst, 4701,  target_label,  target_label);
#line 7464 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						if (exit_addr) {
							//| ja &exit_addr
							dasm_put(Dst, 4773, (ptrdiff_t)(exit_addr));
#line 7470 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| ja => target_label
							dasm_put(Dst, 4777,  target_label);
#line 7472 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						//| jp >1
						dasm_put(Dst, 4708);
#line 7475 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						if (exit_addr) {
							//| jb &exit_addr
							dasm_put(Dst, 4741, (ptrdiff_t)(exit_addr));
#line 7477 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jb => target_label
							dasm_put(Dst, 4745,  target_label);
#line 7479 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						//|1:
						dasm_put(Dst, 64);
#line 7481 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						if (exit_addr) {
							//| jae &exit_addr
							dasm_put(Dst, 4781, (ptrdiff_t)(exit_addr));
#line 7487 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jae => target_label
							dasm_put(Dst, 4785,  target_label);
#line 7489 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else {
						//| jp >1
						dasm_put(Dst, 4708);
#line 7492 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						if (exit_addr) {
							//| jbe &exit_addr
							dasm_put(Dst, 3635, (ptrdiff_t)(exit_addr));
#line 7494 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//| jbe => target_label
							dasm_put(Dst, 4723,  target_label);
#line 7496 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						//|1:
						dasm_put(Dst, 64);
#line 7498 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					//| jne => target_label
					//| jp => target_label
					dasm_put(Dst, 4701,  target_label,  target_label);
#line 7511 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
				case ZEND_IS_NOT_IDENTICAL:
					//| jp => target_label2
					//| je => target_label
					dasm_put(Dst, 4789,  target_label2,  target_label);
#line 7516 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						//| jbe => target_label
						dasm_put(Dst, 4723,  target_label);
#line 7520 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jae => target_label
						//| jp => target_label
						dasm_put(Dst, 4734,  target_label,  target_label);
#line 7523 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						//| jb => target_label
						dasm_put(Dst, 4745,  target_label);
#line 7528 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| ja => target_label
						//| jp => target_label
						dasm_put(Dst, 4756,  target_label,  target_label);
#line 7531 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
			//| jmp => target_label2
			dasm_put(Dst, 1645,  target_label2);
#line 7537 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (smart_branch_opcode == ZEND_JMPZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7544 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jne => target_label
					//|	jp => target_label
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
					dasm_put(Dst, 4796, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  target_label,  target_label);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 7547 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
				case ZEND_IS_NOT_IDENTICAL:
					//|	jp >1
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
					dasm_put(Dst, 4708);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7552 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	je => target_label
					//|1:
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
					dasm_put(Dst, 4811, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  target_label);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 7555 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7559 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jbe => target_label
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						dasm_put(Dst, 4825, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  target_label);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 7561 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7563 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jae => target_label
						//|	jp => target_label
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						dasm_put(Dst, 4837, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  target_label,  target_label);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 7566 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7571 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jb => target_label
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						dasm_put(Dst, 4852, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  target_label);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 7573 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7575 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	ja => target_label
						//|	jp => target_label
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						dasm_put(Dst, 4864, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  target_label,  target_label);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 7578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPNZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_IS_IDENTICAL:
				case ZEND_CASE:
				case ZEND_CASE_STRICT:
					//|	jp >1
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
					dasm_put(Dst, 4708);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7591 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	je => target_label
					//|1:
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
					dasm_put(Dst, 4811, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE,  target_label);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 7594 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
				case ZEND_IS_NOT_IDENTICAL:
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7598 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jne => target_label
					//|	jp => target_label
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
					dasm_put(Dst, 4796, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE,  target_label,  target_label);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 7601 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
					if (swap) {
						//|	seta al
						//|	movzx eax, al
						//|	lea eax, [eax + 2]
						//|	SET_ZVAL_TYPE_INFO res_addr, eax
						dasm_put(Dst, 4879, 2);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7608 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	ja => target_label
						dasm_put(Dst, 4889, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info),  target_label);
#line 7609 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jp >1
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						dasm_put(Dst, 4708);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7612 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jb => target_label
						//|1:
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
						dasm_put(Dst, 4900, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE,  target_label);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 7615 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (swap) {
						//|	setae al
						//|	movzx eax, al
						//|	lea eax, [eax + 2]
						//|	SET_ZVAL_TYPE_INFO res_addr, eax
						dasm_put(Dst, 4914, 2);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7623 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jae => target_label
						dasm_put(Dst, 4924, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info),  target_label);
#line 7624 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jp >1
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						dasm_put(Dst, 4708);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 7627 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jbe => target_label
						//|1:
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
						dasm_put(Dst, 4935, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE,  target_label);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 7630 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else {
			ZEND_UNREACHABLE();
		}
	} else {
		switch (opline->opcode) {
			case ZEND_IS_EQUAL:
			case ZEND_IS_IDENTICAL:
			case ZEND_CASE:
			case ZEND_CASE_STRICT:
				//|	jp >1
				//|	mov eax, IS_TRUE
				//|	je >2
				//|1:
				//|	mov eax, IS_FALSE
				//|2:
				dasm_put(Dst, 4949, IS_TRUE, IS_FALSE);
#line 7650 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_NOT_EQUAL:
			case ZEND_IS_NOT_IDENTICAL:
				//|	jp >1
				//|	mov eax, IS_FALSE
				//|	je >2
				//|1:
				//|	mov eax, IS_TRUE
				//|2:
				dasm_put(Dst, 4949, IS_FALSE, IS_TRUE);
#line 7659 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_SMALLER:
				if (swap) {
					//|	seta al
					//|	movzx eax, al
					//|	add eax, 2
					dasm_put(Dst, 4966);
#line 7665 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jp >1
					//|	mov eax, IS_TRUE
					//|	jb >2
					//|1:
					//|	mov eax, IS_FALSE
					//|2:
					dasm_put(Dst, 4976, IS_TRUE, IS_FALSE);
#line 7672 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			case ZEND_IS_SMALLER_OR_EQUAL:
				if (swap) {
					//|	setae al
					//|	movzx eax, al
					//|	add eax, 2
					dasm_put(Dst, 4993);
#line 7679 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jp >1
					//|	mov eax, IS_TRUE
					//|	jbe >2
					//|1:
					//|	mov eax, IS_FALSE
					//|2:
					dasm_put(Dst, 5003, IS_TRUE, IS_FALSE);
#line 7686 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				break;
			default:
				ZEND_UNREACHABLE();
		}
		//|	SET_ZVAL_TYPE_INFO res_addr, eax
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 7692 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_cmp_long_double(dasm_State **Dst, const zend_op *opline, zend_jit_addr op1_addr, zend_jit_addr op2_addr, zend_jit_addr res_addr, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	zend_reg tmp_reg = ZREG_XMM0;

	//|	SSE_GET_ZVAL_LVAL tmp_reg, op1_addr, ZREG_R0
		if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
			if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2709, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
				} else {
	dasm_put(Dst, 2721, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
				}
			} else {
				if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
	dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
				} else {
	dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(Z_ZV(op1_addr)));
				}
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (ZREG_R0));
				} else {
	dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (ZREG_R0));
				}
			}
		} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
	dasm_put(Dst, 2773, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
	dasm_put(Dst, 2799, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
		} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)));
			} else {
	dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)));
			}
		} else {
			ZEND_UNREACHABLE();
		}
#line 7702 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	SSE_AVX_OP ucomisd, vucomisd, tmp_reg, op2_addr
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5020, (tmp_reg-ZREG_XMM0), Z_ZV(op2_addr));
		} else {
	dasm_put(Dst, 5030, (tmp_reg-ZREG_XMM0), Z_ZV(op2_addr));
		}
				} else {
			if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
	dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op2_addr)));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
			}
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5040, (tmp_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 5048, (tmp_reg-ZREG_XMM0));
		}
				}
		} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5056, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
		} else {
	dasm_put(Dst, 5068, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
		}
		} else if (Z_MODE(op2_addr) == IS_REG) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5080, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
		} else {
	dasm_put(Dst, 5090, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
		}
		} else {
			ZEND_UNREACHABLE();
		}
#line 7703 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_cmp_double_common(Dst, opline, res_addr, 0, smart_branch_opcode, target_label, target_label2, exit_addr);
}

static int zend_jit_cmp_double_long(dasm_State **Dst, const zend_op *opline, zend_jit_addr op1_addr, zend_jit_addr op2_addr, zend_jit_addr res_addr, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	zend_reg tmp_reg = ZREG_XMM0;

	//|	SSE_GET_ZVAL_LVAL tmp_reg, op2_addr, ZREG_R0
		if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
			if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2709, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
				} else {
	dasm_put(Dst, 2721, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0));
				}
			} else {
				if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
	dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
				} else {
	dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(Z_ZV(op2_addr)));
				}
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (ZREG_R0));
				} else {
	dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (ZREG_R0));
				}
			}
		} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
	dasm_put(Dst, 2773, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
	dasm_put(Dst, 2799, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			}
		} else if (Z_MODE(op2_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)));
			} else {
	dasm_put(Dst, 2754, (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)));
			}
		} else {
			ZEND_UNREACHABLE();
		}
#line 7712 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	SSE_AVX_OP ucomisd, vucomisd, tmp_reg, op1_addr
		if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5020, (tmp_reg-ZREG_XMM0), Z_ZV(op1_addr));
		} else {
	dasm_put(Dst, 5030, (tmp_reg-ZREG_XMM0), Z_ZV(op1_addr));
		}
				} else {
			if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
	dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
			}
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5040, (tmp_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 5048, (tmp_reg-ZREG_XMM0));
		}
				}
		} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5056, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
		} else {
	dasm_put(Dst, 5068, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
		}
		} else if (Z_MODE(op1_addr) == IS_REG) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 5080, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
		} else {
	dasm_put(Dst, 5090, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
		}
		} else {
			ZEND_UNREACHABLE();
		}
#line 7713 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return zend_jit_cmp_double_common(Dst, opline, res_addr, /* swap */ 1, smart_branch_opcode, target_label, target_label2, exit_addr);
}

static int zend_jit_cmp_double_double(dasm_State **Dst, const zend_op *opline, zend_jit_addr op1_addr, zend_jit_addr op2_addr, zend_jit_addr res_addr, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	zend_bool swap = 0;

	if (Z_MODE(op1_addr) == IS_REG) {
		//|	SSE_AVX_OP ucomisd, vucomisd, Z_REG(op1_addr), op2_addr
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5020, (Z_REG(op1_addr)-ZREG_XMM0), Z_ZV(op2_addr));
			} else {
		dasm_put(Dst, 5030, (Z_REG(op1_addr)-ZREG_XMM0), Z_ZV(op2_addr));
			}
					} else {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op2_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5040, (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5048, (Z_REG(op1_addr)-ZREG_XMM0));
			}
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5056, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
		dasm_put(Dst, 5068, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			}
			} else if (Z_MODE(op2_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5080, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5090, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 7723 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (Z_MODE(op2_addr) == IS_REG) {
		//|	SSE_AVX_OP ucomisd, vucomisd, Z_REG(op2_addr), op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5020, (Z_REG(op2_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 5030, (Z_REG(op2_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
					} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5040, (Z_REG(op2_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5048, (Z_REG(op2_addr)-ZREG_XMM0));
			}
					}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5056, (Z_REG(op2_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 5068, (Z_REG(op2_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
			} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5080, (Z_REG(op2_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5090, (Z_REG(op2_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 7725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		swap = 1;
	} else {
		zend_reg tmp_reg = ZREG_XMM0;

		//|	SSE_GET_ZVAL_DVAL tmp_reg, op1_addr
			if (Z_MODE(op1_addr) != IS_REG || tmp_reg != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (tmp_reg-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (tmp_reg-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (tmp_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (tmp_reg-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (tmp_reg-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
#line 7730 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SSE_AVX_OP ucomisd, vucomisd, tmp_reg, op2_addr
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5020, (tmp_reg-ZREG_XMM0), Z_ZV(op2_addr));
			} else {
		dasm_put(Dst, 5030, (tmp_reg-ZREG_XMM0), Z_ZV(op2_addr));
			}
					} else {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op2_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5040, (tmp_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5048, (tmp_reg-ZREG_XMM0));
			}
					}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5056, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
		dasm_put(Dst, 5068, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			}
			} else if (Z_MODE(op2_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5080, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5090, (tmp_reg-ZREG_XMM0), (Z_REG(op2_addr)-ZREG_XMM0));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 7731 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return zend_jit_cmp_double_common(Dst, opline, res_addr, swap, smart_branch_opcode, target_label, target_label2, exit_addr);
}

static int zend_jit_cmp_slow(dasm_State **Dst, const zend_op *opline, zend_jit_addr res_addr, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	//|	LONG_OP_WITH_CONST cmp, res_addr, Z_L(0)
		if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (!IS_SIGNED_32BIT(Z_L(0))) {
	dasm_put(Dst, 4599, (unsigned int)(Z_L(0)), (unsigned int)((Z_L(0))>>32), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
	dasm_put(Dst, 4611, (Z_REG(res_addr)), Z_OFFSET(res_addr), Z_L(0));
				}
		} else if (Z_MODE(res_addr) == IS_REG) {
				if (!IS_SIGNED_32BIT(Z_L(0))) {
	dasm_put(Dst, 4563, (unsigned int)(Z_L(0)), (unsigned int)((Z_L(0))>>32), (Z_REG(res_addr)));
				} else {
	dasm_put(Dst, 4573, (Z_REG(res_addr)), Z_L(0));
				}
		} else {
			ZEND_UNREACHABLE();
		}
#line 7739 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (smart_branch_opcode) {
		if (smart_branch_opcode == ZEND_JMPZ_EX ||
		    smart_branch_opcode == ZEND_JMPNZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_CASE:
					//|	sete al
					dasm_put(Dst, 4620);
#line 7746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
					//|	setne al
					dasm_put(Dst, 4624);
#line 7749 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
					//|	setl al
					dasm_put(Dst, 4632);
#line 7752 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					//|	setle al
					dasm_put(Dst, 4640);
#line 7755 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				default:
					ZEND_UNREACHABLE();
			}
			//|	movzx eax, al
			//|	lea eax, [eax + 2]
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
			dasm_put(Dst, 4644, 2);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 7762 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (smart_branch_opcode == ZEND_JMPZ ||
		    smart_branch_opcode == ZEND_JMPZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_CASE:
					if (exit_addr) {
						//| jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 7770 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						dasm_put(Dst, 1878,  target_label);
#line 7772 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_EQUAL:
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7777 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7779 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER:
					if (exit_addr) {
						//| jge &exit_addr
						dasm_put(Dst, 4667, (ptrdiff_t)(exit_addr));
#line 7784 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jge => target_label
						dasm_put(Dst, 4671,  target_label);
#line 7786 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (exit_addr) {
						//| jg &exit_addr
						dasm_put(Dst, 3864, (ptrdiff_t)(exit_addr));
#line 7791 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jg => target_label
						dasm_put(Dst, 4683,  target_label);
#line 7793 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPNZ ||
		           smart_branch_opcode == ZEND_JMPNZ_EX) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_CASE:
					if (exit_addr) {
						//| je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 7805 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| je => target_label
						dasm_put(Dst, 4659,  target_label);
#line 7807 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_NOT_EQUAL:
					if (exit_addr) {
						//| jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 7812 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jne => target_label
						dasm_put(Dst, 1878,  target_label);
#line 7814 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER:
					if (exit_addr) {
						//| jl &exit_addr
						dasm_put(Dst, 4675, (ptrdiff_t)(exit_addr));
#line 7819 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jl => target_label
						dasm_put(Dst, 4679,  target_label);
#line 7821 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					if (exit_addr) {
						//| jle &exit_addr
						dasm_put(Dst, 3860, (ptrdiff_t)(exit_addr));
#line 7826 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//| jle => target_label
						dasm_put(Dst, 4663,  target_label);
#line 7828 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					break;
				default:
					ZEND_UNREACHABLE();
			}
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			switch (opline->opcode) {
				case ZEND_IS_EQUAL:
				case ZEND_CASE:
					//| jne => target_label
					dasm_put(Dst, 1878,  target_label);
#line 7838 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_NOT_EQUAL:
					//| je => target_label
					dasm_put(Dst, 4659,  target_label);
#line 7841 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER:
					//| jge => target_label
					dasm_put(Dst, 4671,  target_label);
#line 7844 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				case ZEND_IS_SMALLER_OR_EQUAL:
					//| jg => target_label
					dasm_put(Dst, 4683,  target_label);
#line 7847 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					break;
				default:
					ZEND_UNREACHABLE();
			}
			//| jmp => target_label2
			dasm_put(Dst, 1645,  target_label2);
#line 7852 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
	} else {
		switch (opline->opcode) {
			case ZEND_IS_EQUAL:
			case ZEND_CASE:
				//|	sete al
				dasm_put(Dst, 4620);
#line 7860 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_NOT_EQUAL:
				//|	setne al
				dasm_put(Dst, 4624);
#line 7863 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_SMALLER:
				//|	setl al
				dasm_put(Dst, 4632);
#line 7866 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_IS_SMALLER_OR_EQUAL:
				//|	setle al
				dasm_put(Dst, 4640);
#line 7869 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			default:
				ZEND_UNREACHABLE();
		}
		//|	movzx eax, al
		//|	add eax, 2
		//|	SET_ZVAL_TYPE_INFO res_addr, eax
		dasm_put(Dst, 4687);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 7876 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_cmp(dasm_State    **Dst,
                        const zend_op  *opline,
                        uint32_t        op1_info,
                        zend_ssa_range *op1_range,
                        zend_jit_addr   op1_addr,
                        uint32_t        op2_info,
                        zend_ssa_range *op2_range,
                        zend_jit_addr   op2_addr,
                        zend_jit_addr   res_addr,
                        int             may_throw,
                        zend_uchar      smart_branch_opcode,
                        uint32_t        target_label,
                        uint32_t        target_label2,
                        const void     *exit_addr,
                        zend_bool       skip_comparison)
{
	zend_bool same_ops = (opline->op1_type == opline->op2_type) && (opline->op1.var == opline->op2.var);
	zend_bool has_slow;

	has_slow =
		(op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		(op2_info & (MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) ||
		 (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))));

	if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG)) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
			if (op1_info & MAY_BE_DOUBLE) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >4
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5100, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 7910 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >9
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5113, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 7912 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (!same_ops && (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG))) {
			if (op2_info & MAY_BE_DOUBLE) {
				//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >3
					ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
#line 7917 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 5126, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 7918 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|3:
				dasm_put(Dst, 347);
#line 7919 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >9
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7921 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (!zend_jit_cmp_long_double(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
					return 0;
				}
				//|	jmp >6
				//|.code
				dasm_put(Dst, 5140);
#line 7927 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >9
					ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 7929 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (!zend_jit_cmp_long_long(Dst, opline, op1_range, op1_addr, op2_range, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr, skip_comparison)) {
			return 0;
		}
		if (op1_info & MAY_BE_DOUBLE) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 7936 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|4:
			dasm_put(Dst, 389);
#line 7937 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >9
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5113, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7939 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (op2_info & MAY_BE_DOUBLE) {
				if (!same_ops && (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE))) {
					if (!same_ops) {
						//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >5
							ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 5146, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7944 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >9
							ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7946 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (!zend_jit_cmp_double_double(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
					return 0;
				}
				//|	jmp >6
				dasm_put(Dst, 5159);
#line 7952 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!same_ops) {
				//|5:
				dasm_put(Dst, 495);
#line 7955 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >9
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 7957 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (!zend_jit_cmp_double_long(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
					return 0;
				}
				//|	jmp >6
				dasm_put(Dst, 5159);
#line 7962 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.code
			dasm_put(Dst, 387);
#line 7964 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if ((op1_info & MAY_BE_DOUBLE) &&
	           !(op1_info & MAY_BE_LONG) &&
	           (op2_info & (MAY_BE_LONG|MAY_BE_DOUBLE))) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >9
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 5113, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7970 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op2_info & MAY_BE_DOUBLE) {
			if (!same_ops && (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE))) {
				if (!same_ops && (op2_info & MAY_BE_LONG)) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >3
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3334, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7975 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >9
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 7977 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (!zend_jit_cmp_double_double(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
				return 0;
			}
		}
		if (!same_ops && (op2_info & MAY_BE_LONG)) {
			if (op2_info & MAY_BE_DOUBLE) {
				//|.cold_code
				dasm_put(Dst, 290);
#line 7986 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		    //|3:
		    dasm_put(Dst, 347);
#line 7988 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_DOUBLE|MAY_BE_LONG))) {
				//|	IF_NOT_ZVAL_TYPE op2_addr, IS_LONG, >9
					ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 7990 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!zend_jit_cmp_double_long(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
				return 0;
			}
			if (op2_info & MAY_BE_DOUBLE) {
				//|	jmp >6
				//|.code
				dasm_put(Dst, 5140);
#line 7997 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else if ((op2_info & MAY_BE_DOUBLE) &&
	           !(op2_info & MAY_BE_LONG) &&
	           (op1_info & (MAY_BE_LONG|MAY_BE_DOUBLE))) {
		if (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE)) {
			//|	IF_NOT_ZVAL_TYPE op2_addr, IS_DOUBLE, >9
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 5113, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 8004 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & MAY_BE_DOUBLE) {
			if (!same_ops && (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_DOUBLE))) {
				if (!same_ops && (op1_info & MAY_BE_LONG)) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >3
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 8009 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_DOUBLE, >9
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5113, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_DOUBLE);
#line 8011 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (!zend_jit_cmp_double_double(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
				return 0;
			}
		}
		if (!same_ops && (op1_info & MAY_BE_LONG)) {
			if (op1_info & MAY_BE_DOUBLE) {
				//|.cold_code
				dasm_put(Dst, 290);
#line 8020 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|3:
			dasm_put(Dst, 347);
#line 8022 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_DOUBLE|MAY_BE_LONG))) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >9
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5113, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 8024 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (!zend_jit_cmp_long_double(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
				return 0;
			}
			if (op1_info & MAY_BE_DOUBLE) {
				//|	jmp >6
				//|.code
				dasm_put(Dst, 5140);
#line 8031 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if (has_slow ||
	    (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) ||
	    (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE)))) {
		if (has_slow) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 8040 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|9:
			dasm_put(Dst, 4204);
#line 8041 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 8043 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(op1_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
			if (!zend_jit_spill_store(Dst, op1_addr, real_addr, op1_info, 1)) {
				return 0;
			}
			op1_addr = real_addr;
		}
		if (Z_MODE(op2_addr) == IS_REG) {
			zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var);
			if (!zend_jit_spill_store(Dst, op2_addr, real_addr, op2_info, 1)) {
				return 0;
			}
			op2_addr = real_addr;
		}
		//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8058 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op1_type == IS_CV && (op1_info & MAY_BE_UNDEF)) {
			//|	IF_NOT_Z_TYPE FCARG2a, IS_UNDEF, >1
			//|	mov FCARG1a, opline->op1.var
			//|	EXT_CALL zend_jit_undefined_op_helper, r0
			dasm_put(Dst, 5164, offsetof(zval, u1.v.type), IS_UNDEF, opline->op1.var);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 8062 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
					if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
			dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
					}
#line 8063 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 8064 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->op2_type == IS_CV && (op2_info & MAY_BE_UNDEF)) {
			//|	IF_NOT_ZVAL_TYPE op2_addr, IS_UNDEF, >1
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
#line 8067 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov T1, FCARG2a // save
			//|	mov FCARG1a, opline->op2.var
			//|	EXT_CALL zend_jit_undefined_op_helper, r0
			dasm_put(Dst, 5177, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_UNDEF, opline->op2.var);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 8070 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG2a, T1 // restore
			//|.if X64
				//|	LOAD_ADDR_ZTS CARG3, executor_globals, uninitialized_zval
				dasm_put(Dst, 5198);
						if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
				dasm_put(Dst, 3388, ((ptrdiff_t)&executor_globals.uninitialized_zval));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
						}
#line 8073 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 12
				//|	PUSH_ADDR_ZTS executor_globals, uninitialized_zval, r0
			//|.endif
			//|	jmp >2
			//|1:
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, op2_addr
				dasm_put(Dst, 5203);
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 3398, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 8081 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 12
				//|	PUSH_ZVAL_ADDR op2_addr, r0
			//|.endif
			//|2:
			dasm_put(Dst, 2037);
#line 8086 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 3398, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 8089 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 12
				//|	PUSH_ZVAL_ADDR op2_addr, r0
			//|.endif
		}
		//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
			if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
				}
			} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(res_addr)) {
		dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(res_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8095 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL compare_function, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(compare_function)) {
		dasm_put(Dst, 46, (ptrdiff_t)(compare_function));
				} else {
				if (IS_SIGNED_32BIT(compare_function)) {
		dasm_put(Dst, 50, ((ptrdiff_t)compare_function));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)compare_function)), (unsigned int)((((ptrdiff_t)compare_function))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8096 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		if (opline->opcode != ZEND_CASE) {
			//|	FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline
				if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (0) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 8101 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
			if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op2_info) & MAY_BE_GUARD)
				 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 8103 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		if (!zend_jit_cmp_slow(Dst, opline, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
			return 0;
		}
		if (has_slow) {
			//|	jmp >6
			//|.code
			dasm_put(Dst, 5140);
#line 8112 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	//|6:
	dasm_put(Dst, 3385);
#line 8116 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_identical(dasm_State    **Dst,
                              const zend_op  *opline,
                              uint32_t        op1_info,
                              zend_ssa_range *op1_range,
                              zend_jit_addr   op1_addr,
                              uint32_t        op2_info,
                              zend_ssa_range *op2_range,
                              zend_jit_addr   op2_addr,
                              zend_jit_addr   res_addr,
                              int             may_throw,
                              zend_uchar      smart_branch_opcode,
                              uint32_t        target_label,
                              uint32_t        target_label2,
                              const void     *exit_addr,
                              zend_bool       skip_comparison)
{
	uint32_t identical_label = (uint32_t)-1;
	uint32_t not_identical_label = (uint32_t)-1;

	if (smart_branch_opcode && !exit_addr) {
		if (opline->opcode != ZEND_IS_NOT_IDENTICAL) {
			if (smart_branch_opcode == ZEND_JMPZ) {
				not_identical_label = target_label;
			} else if (smart_branch_opcode == ZEND_JMPNZ) {
				identical_label = target_label;
			} else if (smart_branch_opcode == ZEND_JMPZNZ) {
				not_identical_label = target_label;
				identical_label = target_label2;
			} else {
				ZEND_UNREACHABLE();
			}
		} else {
			if (smart_branch_opcode == ZEND_JMPZ) {
				identical_label = target_label;
			} else if (smart_branch_opcode == ZEND_JMPNZ) {
				not_identical_label = target_label;
			} else if (smart_branch_opcode == ZEND_JMPZNZ) {
				identical_label = target_label;
				not_identical_label = target_label2;
			} else {
				ZEND_UNREACHABLE();
			}
		}
	}

	if ((op1_info & (MAY_BE_REF|MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG &&
	    (op2_info & (MAY_BE_REF|MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG) {
		if (!zend_jit_cmp_long_long(Dst, opline, op1_range, op1_addr, op2_range, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr, skip_comparison)) {
			return 0;
		}
		return 1;
	} else if ((op1_info & (MAY_BE_REF|MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE &&
	           (op2_info & (MAY_BE_REF|MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_DOUBLE) {
		if (!zend_jit_cmp_double_double(Dst, opline, op1_addr, op2_addr, res_addr, smart_branch_opcode, target_label, target_label2, exit_addr)) {
			return 0;
		}
		return 1;
	}

	if ((op1_info & MAY_BE_UNDEF) && (op2_info & MAY_BE_UNDEF)) {
		op1_info |= MAY_BE_NULL;
		op2_info |= MAY_BE_NULL;
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8183 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_Z_TYPE FCARG1a, IS_UNDEF, >1
		//|.cold_code
		dasm_put(Dst, 5210, offsetof(zval, u1.v.type), IS_UNDEF);
#line 8185 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 64);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 8188 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1d, opline->op1.var
		//|	EXT_CALL zend_jit_undefined_op_helper, r0
		dasm_put(Dst, 2311, opline->op1.var);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8190 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		//|	LOAD_ADDR_ZTS FCARG1a, executor_globals, uninitialized_zval
				if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
		dasm_put(Dst, 702, ((ptrdiff_t)&executor_globals.uninitialized_zval));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
				}
#line 8194 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >1
		//|.code
		dasm_put(Dst, 3783);
#line 8196 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
		dasm_put(Dst, 64);
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op2_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op2_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8198 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_Z_TYPE FCARG2a, IS_UNDEF, >1
		//|.cold_code
		dasm_put(Dst, 5220, offsetof(zval, u1.v.type), IS_UNDEF);
#line 8200 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 64);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 8203 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov aword T1, FCARG1a // save
		//|	mov FCARG1d, opline->op2.var
		//|	EXT_CALL zend_jit_undefined_op_helper, r0
		dasm_put(Dst, 5230, opline->op2.var);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8206 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		//|	mov FCARG1a, aword T1 // restore
		//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
		dasm_put(Dst, 3986);
				if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
		dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
				}
#line 8211 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >1
		//|.code
		dasm_put(Dst, 3783);
#line 8213 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 8214 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (op1_info & MAY_BE_UNDEF) {
		op1_info |= MAY_BE_NULL;
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8217 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_Z_TYPE FCARG1a, IS_UNDEF, >1
		//|.cold_code
		dasm_put(Dst, 5210, offsetof(zval, u1.v.type), IS_UNDEF);
#line 8219 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 64);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 8222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1d, opline->op1.var
		//|	EXT_CALL zend_jit_undefined_op_helper, r0
		dasm_put(Dst, 2311, opline->op1.var);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8224 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		//|	LOAD_ADDR_ZTS FCARG1a, executor_globals, uninitialized_zval
				if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
		dasm_put(Dst, 702, ((ptrdiff_t)&executor_globals.uninitialized_zval));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
				}
#line 8228 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >1
		//|.code
		dasm_put(Dst, 3783);
#line 8230 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 8231 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op2_type != IS_CONST) {
			//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8233 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (op2_info & MAY_BE_UNDEF) {
		op2_info |= MAY_BE_NULL;
		//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
			if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
				}
			} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op2_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op2_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8237 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_Z_TYPE FCARG2a, IS_UNDEF, >1
		//|.cold_code
		dasm_put(Dst, 5220, offsetof(zval, u1.v.type), IS_UNDEF);
#line 8239 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 64);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 8242 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1d, opline->op2.var
		//|	EXT_CALL zend_jit_undefined_op_helper, r0
		dasm_put(Dst, 2311, opline->op2.var);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8244 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
				if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
		dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
				}
#line 8248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >1
		//|.code
		dasm_put(Dst, 3783);
#line 8250 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 8251 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op1_type != IS_CONST) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8253 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		if (opline->op1_type != IS_CONST) {
			if (Z_MODE(op1_addr) == IS_REG) {
				zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);
				if (!zend_jit_spill_store(Dst, op1_addr, real_addr, op1_info, 1)) {
					return 0;
				}
				op1_addr = real_addr;
			}
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8264 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->op2_type != IS_CONST) {
			if (Z_MODE(op2_addr) == IS_REG) {
				zend_jit_addr real_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var);
				if (!zend_jit_spill_store(Dst, op2_addr, real_addr, op2_info, 1)) {
					return 0;
				}
				op2_addr = real_addr;
			}
			//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8274 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	if (opline->op1_type & (IS_CV|IS_VAR)) {
		//|	ZVAL_DEREF FCARG1a, op1_info
			if (op1_info & MAY_BE_REF) {
		dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
			}
#line 8278 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (opline->op2_type & (IS_CV|IS_VAR)) {
		//|	ZVAL_DEREF FCARG2a, op2_info
			if (op2_info & MAY_BE_REF) {
		dasm_put(Dst, 5255, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
			}
#line 8281 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if ((op1_info & op2_info & MAY_BE_ANY) == 0) {
		if ((opline->opcode != ZEND_CASE_STRICT &&
		     (opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
		     (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) ||
		    ((opline->op2_type & (IS_VAR|IS_TMP_VAR)) &&
		     (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)))) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 8290 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode != ZEND_CASE_STRICT) {
				//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
					if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
					if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
						if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							if (1) {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				dasm_put(Dst, 64);
							} else {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
							}
						}
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
							if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
								if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 317);
								} else {
				dasm_put(Dst, 322);
								}
							}
					do {
						if (!((op1_info) & MAY_BE_GUARD)
						 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 342);
							}
				dasm_put(Dst, 347);
						}
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
							if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
								zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
							}
				dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
						}
						if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
				dasm_put(Dst, 383);
						}
				dasm_put(Dst, 389);
					}
					}
#line 8292 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	FREE_OP opline->op2_type, opline->op2, op2_info, 1, opline
				if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (1) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
						if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
							if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op2_info) & MAY_BE_GUARD)
					 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (1 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 8294 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (smart_branch_opcode) {
			zend_jit_check_exception_undef_result(Dst, opline);
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8300 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (not_identical_label != (uint32_t)-1) {
				//|	jmp =>not_identical_label
				dasm_put(Dst, 1645, not_identical_label);
#line 8303 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_FALSE : IS_TRUE)
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_FALSE : IS_TRUE));
#line 8306 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			zend_jit_check_exception(Dst);
		}
	} else if (has_concrete_type(op1_info) &&
	           has_concrete_type(op2_info) &&
	           concrete_type(op1_info) == concrete_type(op2_info) &&
	           concrete_type(op1_info) <= IS_TRUE) {
		if (smart_branch_opcode) {
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8316 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (identical_label != (uint32_t)-1) {
				//|	jmp =>identical_label
				dasm_put(Dst, 1645, identical_label);
#line 8319 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_TRUE : IS_FALSE)
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_TRUE : IS_FALSE));
#line 8322 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_MODE(op2_addr) == IS_CONST_ZVAL) {
		if (zend_is_identical(Z_ZV(op1_addr), Z_ZV(op2_addr))) {
			if (smart_branch_opcode) {
				if (exit_addr) {
					if (smart_branch_opcode == ZEND_JMPNZ) {
						//|	jmp &exit_addr
						dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8329 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (identical_label != (uint32_t)-1) {
					//|	jmp =>identical_label
					dasm_put(Dst, 1645, identical_label);
#line 8332 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	SET_ZVAL_TYPE_INFO res_addr, (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_TRUE : IS_FALSE)
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_TRUE : IS_FALSE));
#line 8335 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (smart_branch_opcode) {
				if (exit_addr) {
					if (smart_branch_opcode == ZEND_JMPZ) {
						//|	jmp &exit_addr
						dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8341 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (not_identical_label != (uint32_t)-1) {
					//|	jmp =>not_identical_label
					dasm_put(Dst, 1645, not_identical_label);
#line 8344 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	SET_ZVAL_TYPE_INFO res_addr, (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_FALSE : IS_TRUE)
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), (opline->opcode != ZEND_IS_NOT_IDENTICAL ? IS_FALSE : IS_TRUE));
#line 8347 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else if (Z_MODE(op1_addr) == IS_CONST_ZVAL && Z_TYPE_P(Z_ZV(op1_addr)) <= IS_TRUE) {
		zval *val = Z_ZV(op1_addr);

		//|	cmp byte [FCARG2a + offsetof(zval, u1.v.type)], Z_TYPE_P(val)
		dasm_put(Dst, 5273, offsetof(zval, u1.v.type), Z_TYPE_P(val));
#line 8353 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (smart_branch_opcode) {
			if (opline->op2_type == IS_VAR && (op2_info & MAY_BE_REF)) {
				//|	jne >8
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 3691);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 8357 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	FREE_OP opline->op2_type, opline->op2, op2_info, 1, opline
					if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
					if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
						if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							if (1) {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				dasm_put(Dst, 64);
							} else {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
							}
						}
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
						if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
							if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
								if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 317);
								} else {
				dasm_put(Dst, 322);
								}
							}
					do {
						if (!((op2_info) & MAY_BE_GUARD)
						 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
							if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 342);
							}
				dasm_put(Dst, 347);
						}
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
							if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
								zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
							}
				dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
						}
						if (1 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
				dasm_put(Dst, 383);
						}
				dasm_put(Dst, 389);
					}
					}
#line 8358 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				zend_jit_check_exception_undef_result(Dst, opline);
				if (exit_addr && smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8361 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (identical_label != (uint32_t)-1) {
					//|	jmp =>identical_label
					dasm_put(Dst, 1645, identical_label);
#line 8363 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 8365 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|8:
				dasm_put(Dst, 4301);
#line 8367 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (exit_addr && smart_branch_opcode == ZEND_JMPNZ) {
				//|	je &exit_addr
				dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8369 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (identical_label != (uint32_t)-1) {
				//|	je =>identical_label
				dasm_put(Dst, 4659, identical_label);
#line 8371 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	je >9
				dasm_put(Dst, 3677);
#line 8373 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (opline->opcode != ZEND_IS_NOT_IDENTICAL) {
				//|	sete al
				dasm_put(Dst, 4620);
#line 8377 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	setne al
				dasm_put(Dst, 4624);
#line 8379 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	movzx eax, al
			//|	lea eax, [eax + 2]
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
			dasm_put(Dst, 4644, 2);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8383 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if ((opline->op2_type & (IS_VAR|IS_TMP_VAR)) &&
		    (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 8387 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	FREE_OP opline->op2_type, opline->op2, op2_info, 1, opline
				if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (1) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
						if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
							if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op2_info) & MAY_BE_GUARD)
					 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (1 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 8388 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		if (exit_addr) {
			if (smart_branch_opcode == ZEND_JMPZ) {
				//|	jmp &exit_addr
				dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8393 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (smart_branch_opcode && not_identical_label != (uint32_t)-1) {
			//|	jmp =>not_identical_label
			dasm_put(Dst, 1645, not_identical_label);
#line 8396 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (Z_MODE(op2_addr) == IS_CONST_ZVAL && Z_TYPE_P(Z_ZV(op2_addr)) <= IS_TRUE) {
		zval *val = Z_ZV(op2_addr);

		//|	cmp byte [FCARG1a + offsetof(zval, u1.v.type)], Z_TYPE_P(val)
		dasm_put(Dst, 5278, offsetof(zval, u1.v.type), Z_TYPE_P(val));
#line 8401 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (smart_branch_opcode) {
			if (opline->opcode != ZEND_CASE_STRICT
			 && opline->op1_type == IS_VAR && (op1_info & MAY_BE_REF)) {
				//|	jne >8
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 3691);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 8406 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
					if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
					if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
						if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							if (1) {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				dasm_put(Dst, 64);
							} else {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
							}
						}
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
							if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
								if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 317);
								} else {
				dasm_put(Dst, 322);
								}
							}
					do {
						if (!((op1_info) & MAY_BE_GUARD)
						 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 342);
							}
				dasm_put(Dst, 347);
						}
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
							if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
								zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
							}
				dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
						}
						if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
				dasm_put(Dst, 383);
						}
				dasm_put(Dst, 389);
					}
					}
#line 8407 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				zend_jit_check_exception_undef_result(Dst, opline);
				if (exit_addr && smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8410 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (identical_label != (uint32_t)-1) {
					//|	jmp =>identical_label
					dasm_put(Dst, 1645, identical_label);
#line 8412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 8414 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|8:
				dasm_put(Dst, 4301);
#line 8416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (exit_addr && smart_branch_opcode == ZEND_JMPNZ) {
				//|	je &exit_addr
				dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8418 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (identical_label != (uint32_t)-1) {
				//|	je =>identical_label
				dasm_put(Dst, 4659, identical_label);
#line 8420 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	je >9
				dasm_put(Dst, 3677);
#line 8422 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (opline->opcode != ZEND_IS_NOT_IDENTICAL) {
				//|	sete al
				dasm_put(Dst, 4620);
#line 8426 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	setne al
				dasm_put(Dst, 4624);
#line 8428 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	movzx eax, al
			//|	lea eax, [eax + 2]
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
			dasm_put(Dst, 4644, 2);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8432 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->opcode != ZEND_CASE_STRICT
		 && (opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
		    (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 8437 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
				if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (1) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 8438 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			zend_jit_check_exception_undef_result(Dst, opline);
		}
		if (smart_branch_opcode) {
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8444 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (not_identical_label != (uint32_t)-1) {
				//|	jmp =>not_identical_label
				dasm_put(Dst, 1645, not_identical_label);
#line 8447 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else {
		if (opline->op1_type == IS_CONST) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8452 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->op2_type == IS_CONST) {
			//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8455 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	EXT_CALL zend_is_identical, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_is_identical)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_is_identical));
				} else {
				if (IS_SIGNED_32BIT(zend_is_identical)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_is_identical));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_is_identical)), (unsigned int)((((ptrdiff_t)zend_is_identical))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8457 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if ((opline->opcode != ZEND_CASE_STRICT &&
			     (opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
			     (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) ||
			    ((opline->op2_type & (IS_VAR|IS_TMP_VAR)) &&
			     (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)))) {
				//|	mov aword T1, r0 // save
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 3512);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 8464 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (opline->opcode != ZEND_CASE_STRICT) {
					//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
						if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
						if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
							if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
								if (1) {
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					dasm_put(Dst, 64);
								} else {
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
								}
							}
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
							if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
								if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
									if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					dasm_put(Dst, 317);
									} else {
					dasm_put(Dst, 322);
									}
								}
						do {
							if (!((op1_info) & MAY_BE_GUARD)
							 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
								zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
								if (type == IS_STRING && !ZEND_DEBUG) {
							if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
					dasm_put(Dst, 46, (ptrdiff_t)(_efree));
							} else {
							if (IS_SIGNED_32BIT(_efree)) {
					dasm_put(Dst, 50, ((ptrdiff_t)_efree));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
							}
					dasm_put(Dst, 60);
							}
									break;
								} else if (type == IS_ARRAY) {
									if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
										if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
										}
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
							} else {
							if (IS_SIGNED_32BIT(zend_array_destroy)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
							}
					dasm_put(Dst, 60);
							}
									} else {
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_array_free)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
							}
					dasm_put(Dst, 60);
							}
									}
									break;
								} else if (type == IS_OBJECT) {
									if (opline) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
									}
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
							} else {
							if (IS_SIGNED_32BIT(zend_objects_store_del)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
							}
					dasm_put(Dst, 60);
							}
									break;
								}
							}
							if (opline) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
							}
							if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
					dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
							} else {
							if (IS_SIGNED_32BIT(rc_dtor_func)) {
					dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
							}
					dasm_put(Dst, 60);
							}
						} while(0);
								if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					dasm_put(Dst, 342);
								}
					dasm_put(Dst, 347);
							}
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
								if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
									zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
								}
					dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
							if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
					dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
							} else {
							if (IS_SIGNED_32BIT(gc_possible_root)) {
					dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
							}
					dasm_put(Dst, 60);
							}
							}
							if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
					dasm_put(Dst, 383);
							}
					dasm_put(Dst, 389);
						}
						}
#line 8466 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	FREE_OP opline->op2_type, opline->op2, op2_info, 1, opline
					if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
					if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
						if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							if (1) {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				dasm_put(Dst, 64);
							} else {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
							}
						}
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
						if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
							if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
								if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 317);
								} else {
				dasm_put(Dst, 322);
								}
							}
					do {
						if (!((op2_info) & MAY_BE_GUARD)
						 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
							if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 342);
							}
				dasm_put(Dst, 347);
						}
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
							if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
								zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
							}
				dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
						}
						if (1 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
				dasm_put(Dst, 383);
						}
				dasm_put(Dst, 389);
					}
					}
#line 8468 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				zend_jit_check_exception_undef_result(Dst, opline);
				//|	mov r0, aword T1 // restore
				dasm_put(Dst, 3534);
#line 8470 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		if (smart_branch_opcode) {
			//|	test al, al
			dasm_put(Dst, 5283);
#line 8473 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPNZ) {
					//|	jnz &exit_addr
					dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 8476 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jz &exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8478 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (not_identical_label != (uint32_t)-1) {
				//|	jz =>not_identical_label
				dasm_put(Dst, 4659, not_identical_label);
#line 8481 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (identical_label != (uint32_t)-1) {
					//|	jmp =>identical_label
					dasm_put(Dst, 1645, identical_label);
#line 8483 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (identical_label != (uint32_t)-1) {
				//|	jnz =>identical_label
				dasm_put(Dst, 1878, identical_label);
#line 8486 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	movzx eax, al
			dasm_put(Dst, 5286);
#line 8489 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode != ZEND_IS_NOT_IDENTICAL) {
				//|	lea eax, [eax + 2]
				dasm_put(Dst, 4647, 2);
#line 8491 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	neg eax
				//|	lea eax, [eax + 3]
				dasm_put(Dst, 5290, 3);
#line 8494 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8496 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	//|9:
	dasm_put(Dst, 4204);
#line 8500 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (may_throw) {
		zend_jit_check_exception(Dst);
	}
	return 1;
}

static int zend_jit_bool_jmpznz(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr, zend_jit_addr res_addr, uint32_t target_label, uint32_t target_label2, int may_throw, zend_uchar branch_opcode, const void *exit_addr)
{
	uint32_t true_label = -1;
	uint32_t false_label = -1;
	zend_bool set_bool = 0;
	zend_bool set_bool_not = 0;
	zend_bool set_delayed = 0;
	zend_bool jmp_done = 0;

	if (branch_opcode == ZEND_BOOL) {
		set_bool = 1;
	} else if (branch_opcode == ZEND_BOOL_NOT) {
		set_bool = 1;
		set_bool_not = 1;
	} else if (branch_opcode == ZEND_JMPZ) {
		false_label = target_label;
	} else if (branch_opcode == ZEND_JMPNZ) {
		true_label = target_label;
	} else if (branch_opcode == ZEND_JMPZNZ) {
		true_label = target_label2;
		false_label = target_label;
	} else if (branch_opcode == ZEND_JMPZ_EX) {
		set_bool = 1;
		false_label = target_label;
	} else if (branch_opcode == ZEND_JMPNZ_EX) {
		set_bool = 1;
		true_label = target_label;
	} else {
		ZEND_UNREACHABLE();
	}

	if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
		if (zend_is_true(Z_ZV(op1_addr))) {
			/* Always TRUE */
			if (set_bool) {
				if (set_bool_not) {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8543 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8545 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (true_label != (uint32_t)-1) {
				//|	jmp =>true_label;
				dasm_put(Dst, 1645, true_label);
#line 8549 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			/* Always FALSE */
			if (set_bool) {
				if (set_bool_not) {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8555 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8557 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (false_label != (uint32_t)-1) {
				//|	jmp =>false_label;
				dasm_put(Dst, 1645, false_label);
#line 8561 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		return 1;
	}

	if (opline->op1_type == IS_CV && (op1_info & MAY_BE_REF)) {
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8568 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	ZVAL_DEREF FCARG1a, op1_info
			if (op1_info & MAY_BE_REF) {
		dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
			}
#line 8569 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE)) {
		if (!(op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)-MAY_BE_TRUE))) {
			/* Always TRUE */
			if (set_bool) {
				if (set_bool_not) {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8580 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (true_label != (uint32_t)-1) {
				//|	jmp =>true_label;
				dasm_put(Dst, 1645, true_label);
#line 8584 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (!(op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE)))) {
				/* Always FALSE */
				if (set_bool) {
					if (set_bool_not) {
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8591 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8593 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
			} else {
				//|	CMP_ZVAL_TYPE op1_addr, IS_TRUE
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5297, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_TRUE);
#line 8597 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				    if ((op1_info & MAY_BE_LONG) &&
				        !(op1_info & MAY_BE_UNDEF) &&
				        !set_bool) {
						if (exit_addr) {
							if (branch_opcode == ZEND_JMPNZ) {
								//|	jl >9
								dasm_put(Dst, 5306);
#line 8604 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else {
								//|	jl &exit_addr
								dasm_put(Dst, 4675, (ptrdiff_t)(exit_addr));
#line 8606 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
						} else if (false_label != (uint32_t)-1) {
							//|	jl =>false_label
							dasm_put(Dst, 4679, false_label);
#line 8609 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	jl >9
							dasm_put(Dst, 5306);
#line 8611 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						jmp_done = 1;
					} else {
						//|	jg >2
						dasm_put(Dst, 4460);
#line 8615 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (!(op1_info & MAY_BE_TRUE)) {
					/* It's FALSE */
					if (set_bool) {
						if (set_bool_not) {
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8622 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8624 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
				} else {
					if (exit_addr) {
						if (set_bool) {
							//|	jne >1
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
							dasm_put(Dst, 358);
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8631 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
								//|	jmp &exit_addr
								dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8633 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else {
								//|	jmp >9
								dasm_put(Dst, 3682);
#line 8635 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
							//|1:
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							dasm_put(Dst, 64);
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8638 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							if (branch_opcode == ZEND_JMPZ || branch_opcode == ZEND_JMPZ_EX) {
								if (!(op1_info & (MAY_BE_UNDEF|MAY_BE_LONG))) {
									//|	jne &exit_addr
									dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 8641 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
								}
							}
						} else {
							if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
								//|	je &exit_addr
								dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8646 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else if (!(op1_info & (MAY_BE_UNDEF|MAY_BE_LONG))) {
								//|	jne &exit_addr
								dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 8648 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else {
								//|	je >9
								dasm_put(Dst, 3677);
#line 8650 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
						}
					} else if (true_label != (uint32_t)-1 || false_label != (uint32_t)-1) {
						if (set_bool) {
							//|	jne >1
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
							dasm_put(Dst, 358);
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8656 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							if (true_label != (uint32_t)-1) {
								//|	jmp =>true_label
								dasm_put(Dst, 1645, true_label);
#line 8658 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else {
								//|	jmp >9
								dasm_put(Dst, 3682);
#line 8660 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
							//|1:
							//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
							dasm_put(Dst, 64);
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8663 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							if (true_label != (uint32_t)-1) {
								//|	je =>true_label
								dasm_put(Dst, 4659, true_label);
#line 8666 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else if (!(op1_info & (MAY_BE_UNDEF|MAY_BE_LONG))) {
								//|	jne =>false_label
								dasm_put(Dst, 1878, false_label);
#line 8668 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
								jmp_done = 1;
							} else {
								//|	je >9
								dasm_put(Dst, 3677);
#line 8671 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
						}
					} else if (set_bool) {
						//|	sete al
						//|	movzx eax, al
						dasm_put(Dst, 5311);
#line 8676 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						if (set_bool_not) {
							//|	neg eax
							//|	add eax, 3
							dasm_put(Dst, 5318);
#line 8679 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	add eax, 2
							dasm_put(Dst, 4690);
#line 8681 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						if ((op1_info & MAY_BE_UNDEF) && (op1_info & MAY_BE_ANY)) {
							set_delayed = 1;
						} else {
							//|	SET_ZVAL_TYPE_INFO res_addr, eax
								ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8686 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
				}
			}

			/* It's FALSE, but may be UNDEF */
			if (op1_info & MAY_BE_UNDEF) {
				if (op1_info & MAY_BE_ANY) {
					if (set_delayed) {
						//|	CMP_ZVAL_TYPE op1_addr, IS_UNDEF
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 8696 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	SET_ZVAL_TYPE_INFO res_addr, eax
						dasm_put(Dst, 5297, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 8697 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	jz >1
						dasm_put(Dst, 5325, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8698 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_ZVAL_TYPE op1_addr, IS_UNDEF, >1
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 5337, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 8700 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|.cold_code
					dasm_put(Dst, 290);
#line 8702 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 8703 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	mov FCARG1d, opline->op1.var
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 2311, opline->op1.var);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 8706 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_undefined_op_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 8707 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

				if (may_throw) {
					if (!zend_jit_check_exception_undef_result(Dst, opline)) {
						return 0;
					}
				}

				if (exit_addr) {
					if (branch_opcode == ZEND_JMPZ || branch_opcode == ZEND_JMPZ_EX) {
						//|	jmp &exit_addr
						dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8717 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (false_label != (uint32_t)-1) {
					//|	jmp =>false_label
					dasm_put(Dst, 1645, false_label);
#line 8720 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (op1_info & MAY_BE_ANY) {
					if (exit_addr) {
						if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
							//|	jmp >9
							dasm_put(Dst, 3682);
#line 8725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else if (false_label == (uint32_t)-1) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 8728 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|.code
					dasm_put(Dst, 387);
#line 8730 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}

			if (!jmp_done) {
				if (exit_addr) {
					if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
						if (op1_info & MAY_BE_LONG) {
							//|	jmp >9
							dasm_put(Dst, 3682);
#line 8738 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					} else if (op1_info & MAY_BE_LONG) {
						//|	jmp &exit_addr
						dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 8741 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (false_label != (uint32_t)-1) {
					//|	jmp =>false_label
					dasm_put(Dst, 1645, false_label);
#line 8744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if ((op1_info & MAY_BE_LONG) || (op1_info & MAY_BE_ANY) == MAY_BE_DOUBLE) {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 8746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
		}
	}

	if (op1_info & MAY_BE_LONG) {
		//|2:
		dasm_put(Dst, 2037);
#line 8753 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >2
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2224, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 8755 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_MODE(op1_addr) == IS_REG) {
			//|	test Ra(Z_REG(op1_addr)), Ra(Z_REG(op1_addr))
			dasm_put(Dst, 3555, (Z_REG(op1_addr)), (Z_REG(op1_addr)));
#line 8758 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LONG_OP_WITH_CONST, cmp, op1_addr, Z_L(0)
				if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
						if (!IS_SIGNED_32BIT(Z_L(0))) {
			dasm_put(Dst, 4599, (unsigned int)(Z_L(0)), (unsigned int)((Z_L(0))>>32), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else {
			dasm_put(Dst, 4611, (Z_REG(op1_addr)), Z_OFFSET(op1_addr), Z_L(0));
						}
				} else if (Z_MODE(op1_addr) == IS_REG) {
						if (!IS_SIGNED_32BIT(Z_L(0))) {
			dasm_put(Dst, 4563, (unsigned int)(Z_L(0)), (unsigned int)((Z_L(0))>>32), (Z_REG(op1_addr)));
						} else {
			dasm_put(Dst, 4573, (Z_REG(op1_addr)), Z_L(0));
						}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8760 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (set_bool) {
			//|	setne al
			//|	movzx eax, al
			dasm_put(Dst, 5350);
#line 8764 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (set_bool_not) {
				//|	neg eax
				//|	add eax, 3
				dasm_put(Dst, 5318);
#line 8767 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	lea eax, [eax + 2]
				dasm_put(Dst, 4647, 2);
#line 8769 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8771 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (exit_addr) {
			if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
				//|	jne &exit_addr
				dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 8775 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	je &exit_addr
				dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8777 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (true_label != (uint32_t)-1 || false_label != (uint32_t)-1) {
			if (true_label != (uint32_t)-1) {
				//|	jne =>true_label
				dasm_put(Dst, 1878, true_label);
#line 8781 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (false_label != (uint32_t)-1) {
					//|	jmp =>false_label
					dasm_put(Dst, 1645, false_label);
#line 8783 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	je =>false_label
				dasm_put(Dst, 4659, false_label);
#line 8786 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if ((op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) == MAY_BE_DOUBLE) {
		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 8793 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|2:
		dasm_put(Dst, 2037);
#line 8795 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (CAN_USE_AVX()) {
			//|	vxorps xmm0, xmm0, xmm0
			dasm_put(Dst, 5357);
#line 8797 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	xorps xmm0, xmm0
			dasm_put(Dst, 5363);
#line 8799 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SSE_AVX_OP ucomisd, vucomisd, ZREG_XMM0, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5020, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 5030, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
					} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5040, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5048, (ZREG_XMM0-ZREG_XMM0));
			}
					}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5056, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 5068, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
			} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 5080, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 5090, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 8801 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (set_bool) {
			if (exit_addr) {
				if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 8806 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jp &exit_addr
					//|	jne &exit_addr
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
					dasm_put(Dst, 5367, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8809 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jp >1
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
					dasm_put(Dst, 4708);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 8812 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	je &exit_addr
					//|1:
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
					dasm_put(Dst, 5382, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE, (ptrdiff_t)(exit_addr));
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8815 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (false_label != (uint32_t)-1) { // JMPZ_EX (p=>true, z=>false, false=>jmp)
				//|	jp  >1
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
				dasm_put(Dst, 4708);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 8819 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	je  => false_label
				//|1:
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
				dasm_put(Dst, 4811, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE,  false_label);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 8822 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (true_label != (uint32_t)-1) { // JMPNZ_EX (p=>true, z=>false, true=>jmp)
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 8824 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jp  => true_label
				//|	jne  => true_label
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
				dasm_put(Dst, 5396, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE,  true_label,  true_label);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 8827 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (set_bool_not) { // BOOL_NOT (p=>false, z=>true)
				//|	mov eax, IS_FALSE
				//|	jp >1
				//|	jne >1
				//|	mov eax, IS_TRUE
				//|1:
				//|	SET_ZVAL_TYPE_INFO res_addr, eax
				dasm_put(Dst, 5411, IS_FALSE, IS_TRUE);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8834 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else { // BOOL (p=>true, z=>false)
				//|	mov eax, IS_TRUE
				//|	jp >1
				//|	jne >1
				//|	mov eax, IS_FALSE
				//|1:
				//|	SET_ZVAL_TYPE_INFO res_addr, eax
				dasm_put(Dst, 5411, IS_TRUE, IS_FALSE);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8841 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
				//|	jmp >9
				//|.code
				dasm_put(Dst, 4173);
#line 8845 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (exit_addr) {
				if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
					//|	jp &exit_addr
					//|	jne &exit_addr
					//|1:
					dasm_put(Dst, 5426, (ptrdiff_t)(exit_addr), (ptrdiff_t)(exit_addr));
#line 8852 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jp >1
					//|	je &exit_addr
					//|1:
					dasm_put(Dst, 4763, (ptrdiff_t)(exit_addr));
#line 8856 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 8859 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				ZEND_ASSERT(true_label != (uint32_t)-1 || false_label != (uint32_t)-1);
				if (false_label != (uint32_t)-1 ) {
					//|	jp  >1
					//|	je  => false_label
					//|1:
					dasm_put(Dst, 4713,  false_label);
#line 8866 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (true_label != (uint32_t)-1) {
						//|	jmp =>true_label
						dasm_put(Dst, 1645, true_label);
#line 8868 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 8870 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|	jp  => true_label
					//|	jne  => true_label
					dasm_put(Dst, 5404,  true_label,  true_label);
#line 8874 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 8876 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
			}
			if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
				//|.code
				dasm_put(Dst, 387);
#line 8881 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else if (op1_info & (MAY_BE_ANY - (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG))) {
		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 8886 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|2:
			dasm_put(Dst, 2037);
#line 8887 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 8890 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 8892 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_is_true, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_is_true)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_is_true));
				} else {
				if (IS_SIGNED_32BIT(zend_is_true)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_is_true));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_is_true)), (unsigned int)((((ptrdiff_t)zend_is_true))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 8893 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if ((opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
			(op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);

			if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				//|	IF_NOT_ZVAL_REFCOUNTED op1_addr, >3
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5435, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 8900 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	GET_ZVAL_PTR FCARG1a, op1_addr
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 8902 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GC_DELREF FCARG1a
			//|	jnz >3
			//|	mov aword T1, r0 // save
			//|	ZVAL_DTOR_FUNC op1_info, opline
			dasm_put(Dst, 5449, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
#line 8906 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov r0, aword T1 // restore
			//|3:
			dasm_put(Dst, 5468);
#line 8908 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (may_throw) {
			//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r1
					if (IS_SIGNED_32BIT(&executor_globals.exception)) {
			dasm_put(Dst, 72, &executor_globals.exception);
					} else {
			dasm_put(Dst, 1799, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
					}
#line 8911 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jne ->exception_handler_undef
			dasm_put(Dst, 1654);
#line 8912 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (set_bool) {
			if (set_bool_not) {
				//|	neg eax
				//|	add eax, 3
				dasm_put(Dst, 5318);
#line 8918 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	add eax, 2
				dasm_put(Dst, 4690);
#line 8920 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 8922 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (exit_addr) {
				//|	CMP_ZVAL_TYPE res_addr, IS_FALSE
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5297, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type), IS_FALSE);
#line 8924 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
					//|	jne &exit_addr
					dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 8926 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	je &exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8928 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (true_label != (uint32_t)-1 || false_label != (uint32_t)-1) {
				//|	CMP_ZVAL_TYPE res_addr, IS_FALSE
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5297, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type), IS_FALSE);
#line 8931 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (true_label != (uint32_t)-1) {
					//|	jne =>true_label
					dasm_put(Dst, 1878, true_label);
#line 8933 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (false_label != (uint32_t)-1) {
						//|	jmp =>false_label
						dasm_put(Dst, 1645, false_label);
#line 8935 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 8937 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|	je =>false_label
					dasm_put(Dst, 4659, false_label);
#line 8940 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
				//|	jmp >9
				//|.code
				dasm_put(Dst, 4173);
#line 8945 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	test r0, r0
			dasm_put(Dst, 3620);
#line 8948 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (exit_addr) {
				if (branch_opcode == ZEND_JMPNZ || branch_opcode == ZEND_JMPNZ_EX) {
					//|	jne &exit_addr
					dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 8951 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 8953 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|	je &exit_addr
					dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 8956 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
						//|	jmp >9
						dasm_put(Dst, 3682);
#line 8958 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
			} else if (true_label != (uint32_t)-1) {
				//|	jne =>true_label
				dasm_put(Dst, 1878, true_label);
#line 8962 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (false_label != (uint32_t)-1) {
					//|	jmp =>false_label
					dasm_put(Dst, 1645, false_label);
#line 8964 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 8966 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	je =>false_label
				dasm_put(Dst, 4659, false_label);
#line 8969 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 8971 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}

			if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG)) {
				//|.code
				dasm_put(Dst, 387);
#line 8976 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	//|9:
	dasm_put(Dst, 4204);
#line 8981 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_qm_assign(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr, zend_jit_addr op1_def_addr, uint32_t res_use_info, uint32_t res_info, zend_jit_addr res_addr)
{
	if (op1_addr != op1_def_addr) {
		if (!zend_jit_update_regs(Dst, opline->op1.var, op1_addr, op1_def_addr, op1_info)) {
			return 0;
		}
		if (Z_MODE(op1_def_addr) == IS_REG && Z_MODE(op1_addr) != IS_REG) {
			op1_addr = op1_def_addr;
		}
	}

	if (!zend_jit_simple_assign(Dst, opline, res_addr, res_use_info, res_info, opline->op1_type, op1_addr, op1_info, 0, 0, 0)) {
		return 0;
	}
	if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) {
		return 0;
	}
	if (op1_info & MAY_BE_UNDEF) {
		zend_jit_check_exception(Dst);
	}
	return 1;
}

static int zend_jit_assign(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_use_addr, uint32_t op1_def_info, zend_jit_addr op1_addr, uint32_t op2_info, zend_jit_addr op2_addr, zend_jit_addr op2_def_addr, uint32_t res_info, zend_jit_addr res_addr, int may_throw)
{
	ZEND_ASSERT(opline->op1_type == IS_CV);

	if (op2_addr != op2_def_addr) {
		if (!zend_jit_update_regs(Dst, opline->op2.var, op2_addr, op2_def_addr, op2_info)) {
			return 0;
		}
		if (Z_MODE(op2_def_addr) == IS_REG && Z_MODE(op2_addr) != IS_REG) {
			op2_addr = op2_def_addr;
		}
	}

	if (Z_MODE(op1_addr) != IS_REG
	 && Z_MODE(op1_use_addr) == IS_REG
	 && !Z_LOAD(op1_use_addr)
	 && !Z_STORE(op1_use_addr)) {
		/* Force type update */
		op1_info |= MAY_BE_UNDEF;
	}
	if (!zend_jit_assign_to_variable(Dst, opline, op1_use_addr, op1_addr, op1_info, op1_def_info, opline->op2_type, op2_addr, op2_info, res_addr,
			may_throw)) {
		return 0;
	}
	if (!zend_jit_store_var_if_necessary_ex(Dst, opline->op1.var, op1_addr, op1_def_info, op1_use_addr, op1_info)) {
		return 0;
	}
	if (opline->result_type != IS_UNUSED) {
		if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) {
			return 0;
		}
	}

	return 1;
}

/* copy of hidden zend_closure */
typedef struct _zend_closure {
	zend_object       std;
	zend_function     func;
	zval              this_ptr;
	zend_class_entry *called_scope;
	zif_handler       orig_internal_handler;
} zend_closure;

static int zend_jit_stack_check(dasm_State **Dst, const zend_op *opline, uint32_t used_stack)
{
	int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
	const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

	if (!exit_addr) {
		return 0;
	}

	//|	// Check Stack Overflow
	//|	MEM_OP2_2_ZTS mov, r1, aword, executor_globals, vm_stack_end, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_stack_end)) {
	dasm_put(Dst, 5475, &executor_globals.vm_stack_end);
			} else {
	dasm_put(Dst, 5481, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_end)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_end))>>32));
			}
#line 9064 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	MEM_OP2_2_ZTS sub, r1, aword, executor_globals, vm_stack_top, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_stack_top)) {
	dasm_put(Dst, 5489, &executor_globals.vm_stack_top);
			} else {
	dasm_put(Dst, 5495, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_top)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_top))>>32));
			}
#line 9065 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	cmp r1, used_stack
	//|	jb &exit_addr
	dasm_put(Dst, 5503, used_stack, (ptrdiff_t)(exit_addr));
#line 9067 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_push_call_frame(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, zend_function *func, zend_bool is_closure, zend_bool use_this, zend_bool stack_check)
{
	uint32_t used_stack;

	if (func) {
		used_stack = zend_vm_calc_used_stack(opline->extended_value, func);
	} else {
		used_stack = (ZEND_CALL_FRAME_SLOT + opline->extended_value) * sizeof(zval);

		//|	// if (EXPECTED(ZEND_USER_CODE(func->type))) {
		if (!is_closure) {
			//|	test byte [r0 + offsetof(zend_function, type)], 1
			//|	mov FCARG1a, used_stack
			//|	jnz >1
			dasm_put(Dst, 5512, offsetof(zend_function, type), used_stack);
#line 9085 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov FCARG1a, used_stack
			dasm_put(Dst, 702, used_stack);
#line 9087 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	// used_stack += (func->op_array.last_var + func->op_array.T - MIN(func->op_array.num_args, num_args)) * sizeof(zval);
		//|	mov edx, opline->extended_value
		dasm_put(Dst, 5526, opline->extended_value);
#line 9090 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!is_closure) {
			//|	cmp edx, dword [r0 + offsetof(zend_function, op_array.num_args)]
			//|	cmova edx, dword [r0 + offsetof(zend_function, op_array.num_args)]
			//|	sub edx, dword [r0 + offsetof(zend_function, op_array.last_var)]
			//|	sub edx, dword [r0 + offsetof(zend_function, op_array.T)]
			dasm_put(Dst, 5529, offsetof(zend_function, op_array.num_args), offsetof(zend_function, op_array.num_args), offsetof(zend_function, op_array.last_var), offsetof(zend_function, op_array.T));
#line 9095 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	cmp edx, dword [r0 + offsetof(zend_closure, func.op_array.num_args)]
			//|	cmova edx, dword [r0 + offsetof(zend_closure, func.op_array.num_args)]
			//|	sub edx, dword [r0 + offsetof(zend_closure, func.op_array.last_var)]
			//|	sub edx, dword [r0 + offsetof(zend_closure, func.op_array.T)]
			dasm_put(Dst, 5529, offsetof(zend_closure, func.op_array.num_args), offsetof(zend_closure, func.op_array.num_args), offsetof(zend_closure, func.op_array.last_var), offsetof(zend_closure, func.op_array.T));
#line 9100 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	shl edx, 4
		//|.if X64
			//|	movsxd r2, edx
		//|.endif
		//|	sub FCARG1a, r2
		//|1:
		dasm_put(Dst, 5543);
#line 9107 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	zend_jit_start_reuse_ip();

	//|	// if (UNEXPECTED(used_stack > (size_t)(((char*)EG(vm_stack_end)) - (char*)call))) {
	//|	MEM_OP2_2_ZTS mov, RX, aword, executor_globals, vm_stack_top, RX
			if (IS_SIGNED_32BIT(&executor_globals.vm_stack_top)) {
	dasm_put(Dst, 423, &executor_globals.vm_stack_top);
			} else {
	dasm_put(Dst, 5555, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_top)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_top))>>32));
			}
#line 9113 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (stack_check) {
		//|	// Check Stack Overflow
		//|	MEM_OP2_2_ZTS mov, r2, aword, executor_globals, vm_stack_end, r2
				if (IS_SIGNED_32BIT(&executor_globals.vm_stack_end)) {
		dasm_put(Dst, 5563, &executor_globals.vm_stack_end);
				} else {
		dasm_put(Dst, 5569, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_end)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_end))>>32));
				}
#line 9117 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	sub r2, RX
		dasm_put(Dst, 5577);
#line 9118 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (func) {
			//|	cmp r2, used_stack
			dasm_put(Dst, 5582, used_stack);
#line 9120 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	cmp r2, FCARG1a
			dasm_put(Dst, 5588);
#line 9122 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (!exit_addr) {
				return 0;
			}

			//|	jb &exit_addr
			dasm_put(Dst, 4741, (ptrdiff_t)(exit_addr));
#line 9133 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jb >1
			//|	// EG(vm_stack_top) = (zval*)((char*)call + used_stack);
			//|.cold_code
			dasm_put(Dst, 5593);
#line 9137 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 9138 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (func) {
				//|	mov FCARG1d, used_stack
				dasm_put(Dst, 2311, used_stack);
#line 9140 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
#ifdef _WIN32
			if (0) {
#else
			if (opline->opcode == ZEND_INIT_FCALL && func && func->type == ZEND_INTERNAL_FUNCTION) {
#endif
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 9147 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_int_extend_stack_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_int_extend_stack_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_int_extend_stack_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_int_extend_stack_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_int_extend_stack_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_int_extend_stack_helper)), (unsigned int)((((ptrdiff_t)zend_jit_int_extend_stack_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 9148 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				if (!is_closure) {
					if (func
					 && op_array == &func->op_array
					 && (func->op_array.fn_flags & ZEND_ACC_IMMUTABLE)
					 && (sizeof(void*) != 8 || IS_SIGNED_32BIT(func))) {
						//|	LOAD_ADDR FCARG2a, func
								if (IS_SIGNED_32BIT(func)) {
						dasm_put(Dst, 707, ((ptrdiff_t)func));
								} else {
						dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32));
								}
#line 9155 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	mov FCARG2a, r0
						dasm_put(Dst, 5599);
#line 9157 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|	lea FCARG2a, aword [r0 + offsetof(zend_closure, func)]
					dasm_put(Dst, 5603, offsetof(zend_closure, func));
#line 9160 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 9162 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_extend_stack_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_extend_stack_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_extend_stack_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_extend_stack_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_extend_stack_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_extend_stack_helper)), (unsigned int)((((ptrdiff_t)zend_jit_extend_stack_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 9163 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	mov RX, r0
			//|	jmp >1
			//|.code
			dasm_put(Dst, 5608);
#line 9167 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (func) {
		//|	MEM_OP2_1_ZTS add, aword, executor_globals, vm_stack_top, used_stack, r2
				if (IS_SIGNED_32BIT(&executor_globals.vm_stack_top)) {
		dasm_put(Dst, 5617, &executor_globals.vm_stack_top, used_stack);
				} else {
		dasm_put(Dst, 5625, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_top)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_top))>>32), used_stack);
				}
#line 9172 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	MEM_OP2_1_ZTS add, aword, executor_globals, vm_stack_top, FCARG1a, r2
				if (IS_SIGNED_32BIT(&executor_globals.vm_stack_top)) {
		dasm_put(Dst, 5634, &executor_globals.vm_stack_top);
				} else {
		dasm_put(Dst, 5640, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_top)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_top))>>32));
				}
#line 9174 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	// zend_vm_init_call_frame(call, call_info, func, num_args, called_scope, object);
	if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE || opline->opcode != ZEND_INIT_METHOD_CALL) {
		//|	// ZEND_SET_CALL_INFO(call, 0, call_info);
		//|	mov dword EX:RX->This.u1.type_info, (IS_UNDEF | ZEND_CALL_NESTED_FUNCTION)
		dasm_put(Dst, 5648, Dt1(->This.u1.type_info), (IS_UNDEF | ZEND_CALL_NESTED_FUNCTION));
#line 9179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
#ifdef _WIN32
	if (0) {
#else
	if (opline->opcode == ZEND_INIT_FCALL && func && func->type == ZEND_INTERNAL_FUNCTION) {
#endif
		//|	// call->func = func;
		//|1:
		//|	ADDR_OP2_2 mov, aword EX:RX->func, func, r1
		dasm_put(Dst, 64);
				if (IS_SIGNED_32BIT(func)) {
		dasm_put(Dst, 5654, Dt1(->func), ((ptrdiff_t)func));
				} else {
		dasm_put(Dst, 5660, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32), Dt1(->func));
				}
#line 9188 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (!is_closure) {
			//|	// call->func = func;
			if (func
			 && op_array == &func->op_array
			 && (func->op_array.fn_flags & ZEND_ACC_IMMUTABLE)
			 && (sizeof(void*) != 8 || IS_SIGNED_32BIT(func))) {
				//|	ADDR_OP2_2 mov, aword EX:RX->func, func, r1
						if (IS_SIGNED_32BIT(func)) {
				dasm_put(Dst, 5654, Dt1(->func), ((ptrdiff_t)func));
						} else {
				dasm_put(Dst, 5660, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32), Dt1(->func));
						}
#line 9196 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	mov aword EX:RX->func, r0
				dasm_put(Dst, 1612, Dt1(->func));
#line 9198 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	// call->func = &closure->func;
			//|	lea r1, aword [r0 + offsetof(zend_closure, func)]
			//|	mov aword EX:RX->func, r1
			dasm_put(Dst, 5669, offsetof(zend_closure, func), Dt1(->func));
#line 9203 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|1:
		dasm_put(Dst, 64);
#line 9205 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (opline->opcode == ZEND_INIT_METHOD_CALL) {
		//|	// Z_PTR(call->This) = obj;
		//|	mov r1, aword T1
		//|	mov aword EX:RX->This.value.ptr, r1
		dasm_put(Dst, 5678, Dt1(->This.value.ptr));
#line 9210 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	    if (opline->op1_type == IS_UNUSED || use_this) {
			//|	// call->call_info |= ZEND_CALL_HAS_THIS;
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				//|	mov dword EX:RX->This.u1.type_info, ZEND_CALL_HAS_THIS
				dasm_put(Dst, 5648, Dt1(->This.u1.type_info), ZEND_CALL_HAS_THIS);
#line 9214 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	or dword EX:RX->This.u1.type_info, ZEND_CALL_HAS_THIS
				dasm_put(Dst, 5687, Dt1(->This.u1.type_info), ZEND_CALL_HAS_THIS);
#line 9216 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
	    } else {
			if (opline->op1_type == IS_CV) {
				//|	// GC_ADDREF(obj);
				//|	add dword [r1], 1
				dasm_put(Dst, 5693);
#line 9221 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	// call->call_info |= ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS;
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				//|	mov dword EX:RX->This.u1.type_info, (ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS)
				dasm_put(Dst, 5648, Dt1(->This.u1.type_info), (ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS));
#line 9225 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	or dword EX:RX->This.u1.type_info, (ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS)
				dasm_put(Dst, 5687, Dt1(->This.u1.type_info), (ZEND_CALL_HAS_THIS | ZEND_CALL_RELEASE_THIS));
#line 9227 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
	    }
	} else if (!is_closure) {
		//|	// Z_CE(call->This) = called_scope;
		//|	mov aword EX:RX->This.value.ptr, 0
		dasm_put(Dst, 1599, Dt1(->This.value.ptr));
#line 9232 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (opline->op2_type == IS_CV) {
			//|	// GC_ADDREF(closure);
			//|	add dword [r0], 1
			dasm_put(Dst, 5697);
#line 9236 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	//	object_or_called_scope = closure->called_scope;
		//|	mov r1, aword [r0 + offsetof(zend_closure, called_scope)]
		//|	mov aword EX:RX->This.value.ptr, r1
		//|	// call_info = ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC | ZEND_CALL_CLOSURE |
		//|	//	(closure->func->common.fn_flags & ZEND_ACC_FAKE_CLOSURE);
		//|	mov edx, dword [r0 + offsetof(zend_closure, func.common.fn_flags)]
		//|	and edx, ZEND_ACC_FAKE_CLOSURE
		//|	or edx, (ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC | ZEND_CALL_CLOSURE)
		//|	//	if (Z_TYPE(closure->this_ptr) != IS_UNDEF) {
		//|	cmp byte [r0 + offsetof(zend_closure, this_ptr.u1.v.type)], IS_UNDEF
		//|	jz >1
		//|	//	call_info |= ZEND_CALL_HAS_THIS;
		//|	or edx, ZEND_CALL_HAS_THIS
		//|	//	object_or_called_scope = Z_OBJ(closure->this_ptr);
		//|	mov r1, aword [r0 + offsetof(zend_closure, this_ptr.value.ptr)]
	    //|1:
		//|	// ZEND_SET_CALL_INFO(call, 0, call_info);
		//|	or dword EX:RX->This.u1.type_info, edx
		//|	// Z_PTR(call->This) = object_or_called_scope;
		//|	mov aword EX:RX->This.value.ptr, r1
		//|	cmp aword [r0 + offsetof(zend_closure, func.op_array.run_time_cache__ptr)], 0
		//|	jnz >1
		//|	lea FCARG1a, aword [r0 + offsetof(zend_closure, func)]
		//|	EXT_CALL zend_jit_init_func_run_time_cache_helper, r0
		dasm_put(Dst, 5701, offsetof(zend_closure, called_scope), Dt1(->This.value.ptr), offsetof(zend_closure, func.common.fn_flags), ZEND_ACC_FAKE_CLOSURE, (ZEND_CALL_NESTED_FUNCTION | ZEND_CALL_DYNAMIC | ZEND_CALL_CLOSURE), offsetof(zend_closure, this_ptr.u1.v.type), IS_UNDEF, ZEND_CALL_HAS_THIS, offsetof(zend_closure, this_ptr.value.ptr), Dt1(->This.u1.type_info), Dt1(->This.value.ptr), offsetof(zend_closure, func.op_array.run_time_cache__ptr), offsetof(zend_closure, func));
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_init_func_run_time_cache_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_init_func_run_time_cache_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_init_func_run_time_cache_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_init_func_run_time_cache_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_init_func_run_time_cache_helper)), (unsigned int)((((ptrdiff_t)zend_jit_init_func_run_time_cache_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 9261 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 9262 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	// ZEND_CALL_NUM_ARGS(call) = num_args;
	//|	mov dword EX:RX->This.u2.num_args, opline->extended_value
	dasm_put(Dst, 5648, Dt1(->This.u2.num_args), opline->extended_value);
#line 9265 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_needs_call_chain(zend_call_info *call_info, uint32_t b, const zend_op_array *op_array, zend_ssa *ssa, const zend_ssa_op *ssa_op, const zend_op *opline, int call_level, zend_jit_trace_rec *trace)
{
	int skip;

	if (trace) {
		zend_jit_trace_rec *p = trace;

		ssa_op++;
		while (1) {
			if (p->op == ZEND_JIT_TRACE_VM) {
				switch (p->opline->opcode) {
					case ZEND_SEND_ARRAY:
					case ZEND_SEND_USER:
					case ZEND_SEND_UNPACK:
					case ZEND_INIT_FCALL:
					case ZEND_INIT_METHOD_CALL:
					case ZEND_INIT_STATIC_METHOD_CALL:
					case ZEND_INIT_FCALL_BY_NAME:
					case ZEND_INIT_NS_FCALL_BY_NAME:
					case ZEND_INIT_DYNAMIC_CALL:
					case ZEND_NEW:
					case ZEND_INIT_USER_CALL:
					case ZEND_FAST_CALL:
					case ZEND_JMP:
					case ZEND_JMPZNZ:
					case ZEND_JMPZ:
					case ZEND_JMPNZ:
					case ZEND_JMPZ_EX:
					case ZEND_JMPNZ_EX:
					case ZEND_FE_RESET_R:
					case ZEND_FE_RESET_RW:
					case ZEND_JMP_SET:
					case ZEND_COALESCE:
					case ZEND_JMP_NULL:
					case ZEND_ASSERT_CHECK:
					case ZEND_CATCH:
					case ZEND_DECLARE_ANON_CLASS:
					case ZEND_FE_FETCH_R:
					case ZEND_FE_FETCH_RW:
						return 1;
					case ZEND_DO_ICALL:
					case ZEND_DO_UCALL:
					case ZEND_DO_FCALL_BY_NAME:
					case ZEND_DO_FCALL:
						return 0;
					case ZEND_SEND_VAL:
					case ZEND_SEND_VAR:
					case ZEND_SEND_VAL_EX:
					case ZEND_SEND_VAR_EX:
					case ZEND_SEND_FUNC_ARG:
					case ZEND_SEND_REF:
					case ZEND_SEND_VAR_NO_REF:
					case ZEND_SEND_VAR_NO_REF_EX:
						/* skip */
						break;
					default:
						if (zend_may_throw(opline, ssa_op, op_array, ssa)) {
							return 1;
						}
				}
				ssa_op += zend_jit_trace_op_len(opline);
			} else if (p->op == ZEND_JIT_TRACE_ENTER ||
			           p->op == ZEND_JIT_TRACE_BACK ||
			           p->op == ZEND_JIT_TRACE_END) {
				return 1;
			}
			p++;
		}
	}

	if (!call_info) {
		const zend_op *end = op_array->opcodes + op_array->last;

		opline++;
		ssa_op++;
		skip = (call_level == 1);
		while (opline != end) {
			if (!skip) {
				if (zend_may_throw(opline, ssa_op, op_array, ssa)) {
					return 1;
				}
			}
			switch (opline->opcode) {
				case ZEND_SEND_VAL:
				case ZEND_SEND_VAR:
				case ZEND_SEND_VAL_EX:
				case ZEND_SEND_VAR_EX:
				case ZEND_SEND_FUNC_ARG:
				case ZEND_SEND_REF:
				case ZEND_SEND_VAR_NO_REF:
				case ZEND_SEND_VAR_NO_REF_EX:
					skip = 0;
					break;
				case ZEND_SEND_ARRAY:
				case ZEND_SEND_USER:
				case ZEND_SEND_UNPACK:
				case ZEND_INIT_FCALL:
				case ZEND_INIT_METHOD_CALL:
				case ZEND_INIT_STATIC_METHOD_CALL:
				case ZEND_INIT_FCALL_BY_NAME:
				case ZEND_INIT_NS_FCALL_BY_NAME:
				case ZEND_INIT_DYNAMIC_CALL:
				case ZEND_NEW:
				case ZEND_INIT_USER_CALL:
				case ZEND_FAST_CALL:
				case ZEND_JMP:
				case ZEND_JMPZNZ:
				case ZEND_JMPZ:
				case ZEND_JMPNZ:
				case ZEND_JMPZ_EX:
				case ZEND_JMPNZ_EX:
				case ZEND_FE_RESET_R:
				case ZEND_FE_RESET_RW:
				case ZEND_JMP_SET:
				case ZEND_COALESCE:
				case ZEND_JMP_NULL:
				case ZEND_ASSERT_CHECK:
				case ZEND_CATCH:
				case ZEND_DECLARE_ANON_CLASS:
				case ZEND_FE_FETCH_R:
				case ZEND_FE_FETCH_RW:
					return 1;
				case ZEND_DO_ICALL:
				case ZEND_DO_UCALL:
				case ZEND_DO_FCALL_BY_NAME:
				case ZEND_DO_FCALL:
					end = opline;
					if (end - op_array->opcodes >= ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len) {
						/* INIT_FCALL and DO_FCALL in different BasicBlocks */
						return 1;
					}
					return 0;
			}
			opline++;
			ssa_op++;
		}

		return 1;
	} else {
		const zend_op *end = call_info->caller_call_opline;

		if (end - op_array->opcodes >= ssa->cfg.blocks[b].start + ssa->cfg.blocks[b].len) {
			/* INIT_FCALL and DO_FCALL in different BasicBlocks */
			return 1;
		}

		opline++;
		ssa_op++;
		skip = (call_level == 1);
		while (opline != end) {
			if (skip) {
				switch (opline->opcode) {
					case ZEND_SEND_VAL:
					case ZEND_SEND_VAR:
					case ZEND_SEND_VAL_EX:
					case ZEND_SEND_VAR_EX:
					case ZEND_SEND_FUNC_ARG:
					case ZEND_SEND_REF:
					case ZEND_SEND_VAR_NO_REF:
					case ZEND_SEND_VAR_NO_REF_EX:
						skip = 0;
						break;
					case ZEND_SEND_ARRAY:
					case ZEND_SEND_USER:
					case ZEND_SEND_UNPACK:
						return 1;
				}
			} else {
				if (zend_may_throw(opline, ssa_op, op_array, ssa)) {
					return 1;
				}
			}
			opline++;
			ssa_op++;
		}

		return 0;
	}
}

static int zend_jit_init_fcall_guard(dasm_State **Dst, uint32_t level, const zend_function *func, const zend_op *to_opline)
{
	int32_t exit_point;
	const void *exit_addr;

	if (func->type == ZEND_INTERNAL_FUNCTION) {
#ifdef ZEND_WIN32
		// TODO: ASLR may cause different addresses in different workers ???
		return 0;
#endif
	} else if (func->type == ZEND_USER_FUNCTION) {
		if (!zend_accel_in_shm(func->op_array.opcodes)) {
			/* op_array and op_array->opcodes are not persistent. We can't link. */
			return 0;
		}
	} else {
		ZEND_UNREACHABLE();
		return 0;
	}

	exit_point = zend_jit_trace_get_exit_point(to_opline, ZEND_JIT_EXIT_POLYMORPHISM);
	exit_addr = zend_jit_trace_get_exit_addr(exit_point);
	if (!exit_addr) {
		return 0;
	}

	//|	// call = EX(call);
	//|	mov r1, EX->call
	dasm_put(Dst, 5757, Dt1(->call));
#line 9476 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	while (level > 0) {
		//|	mov r1, EX:r1->prev_execute_data
		dasm_put(Dst, 5762, Dt1(->prev_execute_data));
#line 9478 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		level--;
	}

	if (func->type == ZEND_USER_FUNCTION &&
	    (!(func->common.fn_flags & ZEND_ACC_IMMUTABLE) ||
	     (func->common.fn_flags & ZEND_ACC_CLOSURE) ||
	     !func->common.function_name)) {
		const zend_op *opcodes = func->op_array.opcodes;

		//|	mov r1, aword EX:r1->func
		//|   .if X64
		dasm_put(Dst, 5762, Dt1(->func));
				if (!IS_SIGNED_32BIT(opcodes)) {
#line 9490 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|			mov64 r2, ((ptrdiff_t)opcodes)
		//|			cmp aword [r1 + offsetof(zend_op_array, opcodes)], r2
		dasm_put(Dst, 5767, (unsigned int)(((ptrdiff_t)opcodes)), (unsigned int)((((ptrdiff_t)opcodes))>>32), offsetof(zend_op_array, opcodes));
				} else {
#line 9493 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|			cmp aword [r1 + offsetof(zend_op_array, opcodes)], opcodes
		dasm_put(Dst, 5776, offsetof(zend_op_array, opcodes), opcodes);
				}
#line 9495 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	.else
		//|		cmp aword [r1 + offsetof(zend_op_array, opcodes)], opcodes
		//|	.endif
		//|	jne &exit_addr
		dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 9499 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|   .if X64
				if (!IS_SIGNED_32BIT(func)) {
		//|			mov64 r2, ((ptrdiff_t)func)
		//|			cmp aword EX:r1->func, r2
		dasm_put(Dst, 5767, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32), Dt1(->func));
				} else {
#line 9505 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|			cmp aword EX:r1->func, func
		dasm_put(Dst, 5776, Dt1(->func), func);
				}
#line 9507 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	.else
		//|		cmp aword EX:r1->func, func
		//|	.endif
		//|	jne &exit_addr
		dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 9511 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_init_fcall(dasm_State **Dst, const zend_op *opline, uint32_t b, const zend_op_array *op_array, zend_ssa *ssa, const zend_ssa_op *ssa_op, int call_level, zend_jit_trace_rec *trace, zend_bool stack_check)
{
	zend_func_info *info = ZEND_FUNC_INFO(op_array);
	zend_call_info *call_info = NULL;
	zend_function *func = NULL;

	if (delayed_call_chain) {
		if (!zend_jit_save_call_chain(Dst, delayed_call_level)) {
			return 0;
		}
	}

	if (info) {
		call_info = info->callee_info;
		while (call_info && call_info->caller_init_opline != opline) {
			call_info = call_info->next_callee;
		}
		if (call_info && call_info->callee_func) {
			func = call_info->callee_func;
		}
	}

	if (!func
	 && trace
	 && trace->op == ZEND_JIT_TRACE_INIT_CALL) {
#ifdef _WIN32
		/* ASLR */
		if (trace->func->type != ZEND_INTERNAL_FUNCTION) {
			func = (zend_function*)trace->func;
		}
#else
		func = (zend_function*)trace->func;
#endif
	}

#ifdef _WIN32
	if (0) {
#else
	if (opline->opcode == ZEND_INIT_FCALL
	 && func
	 && func->type == ZEND_INTERNAL_FUNCTION) {
#endif
		/* load constant address later */
	} else if (func && op_array == &func->op_array) {
		/* recursive call */		
		if (!(func->op_array.fn_flags & ZEND_ACC_IMMUTABLE) ||
		    (sizeof(void*) == 8 && !IS_SIGNED_32BIT(func))) {
			//|	mov r0, EX->func
			dasm_put(Dst, 5782, Dt1(->func));
#line 9564 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|	// if (CACHED_PTR(opline->result.num))
		//|	mov r0, EX->run_time_cache
		//|	mov r0, aword [r0 + opline->result.num]
		//|	test r0, r0
		//|	jz >1
		//|.cold_code
		dasm_put(Dst, 5787, Dt1(->run_time_cache), opline->result.num);
#line 9572 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 9573 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_INIT_FCALL
		 && func
		 && func->type == ZEND_USER_FUNCTION
		 && (func->op_array.fn_flags & ZEND_ACC_IMMUTABLE)) {
			//|	LOAD_ADDR FCARG1a, func
					if (IS_SIGNED_32BIT(func)) {
			dasm_put(Dst, 702, ((ptrdiff_t)func));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32));
					}
#line 9578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_jit_init_func_run_time_cache_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_init_func_run_time_cache_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_init_func_run_time_cache_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_init_func_run_time_cache_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_init_func_run_time_cache_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_init_func_run_time_cache_helper)), (unsigned int)((((ptrdiff_t)zend_jit_init_func_run_time_cache_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 9579 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov r1, EX->run_time_cache
			//|	mov aword [r1 + opline->result.num], r0
			//|	jmp >3
			dasm_put(Dst, 5804, Dt1(->run_time_cache), opline->result.num);
#line 9582 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			zval *zv = RT_CONSTANT(opline, opline->op2);

			if (opline->opcode == ZEND_INIT_FCALL) {
				//|	LOAD_ADDR FCARG1a, Z_STR_P(zv);
						if (IS_SIGNED_32BIT(Z_STR_P(zv))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_STR_P(zv)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_STR_P(zv))), (unsigned int)((((ptrdiff_t)Z_STR_P(zv)))>>32));
						}
#line 9587 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_find_func_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_find_func_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_find_func_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_find_func_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_find_func_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_find_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_find_func_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 9588 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (opline->opcode == ZEND_INIT_FCALL_BY_NAME) {
				//|	LOAD_ADDR FCARG1a, Z_STR_P(zv + 1);
						if (IS_SIGNED_32BIT(Z_STR_P(zv + 1))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_STR_P(zv + 1)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_STR_P(zv + 1))), (unsigned int)((((ptrdiff_t)Z_STR_P(zv + 1)))>>32));
						}
#line 9590 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_find_func_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_find_func_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_find_func_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_find_func_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_find_func_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_find_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_find_func_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 9591 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (opline->opcode == ZEND_INIT_NS_FCALL_BY_NAME) {
				//|	LOAD_ADDR FCARG1a, zv;
						if (IS_SIGNED_32BIT(zv)) {
				dasm_put(Dst, 702, ((ptrdiff_t)zv));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)zv)), (unsigned int)((((ptrdiff_t)zv))>>32));
						}
#line 9593 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_find_ns_func_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_find_ns_func_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_find_ns_func_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_find_ns_func_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_find_ns_func_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_find_ns_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_find_ns_func_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 9594 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				ZEND_UNREACHABLE();
			}
			//|	// CACHE_PTR(opline->result.num, fbc);
			//|	mov r1, EX->run_time_cache
			//|	mov aword [r1 + opline->result.num], r0
			dasm_put(Dst, 5817, Dt1(->run_time_cache), opline->result.num);
#line 9600 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}

				if (!func || opline->opcode == ZEND_INIT_FCALL) {
					//|	test r0, r0
					//|	jnz >3
					dasm_put(Dst, 5826);
#line 9611 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (func->type == ZEND_USER_FUNCTION
					 && !(func->common.fn_flags & ZEND_ACC_IMMUTABLE)) {
					const zend_op *opcodes = func->op_array.opcodes;

					//|   .if X64
							if (!IS_SIGNED_32BIT(opcodes)) {
					//|			mov64 r1, ((ptrdiff_t)opcodes)
					//|			cmp aword [r0 + offsetof(zend_op_array, opcodes)], r1
					dasm_put(Dst, 5834, (unsigned int)(((ptrdiff_t)opcodes)), (unsigned int)((((ptrdiff_t)opcodes))>>32), offsetof(zend_op_array, opcodes));
							} else {
#line 9620 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|			cmp aword [r0 + offsetof(zend_op_array, opcodes)], opcodes
					dasm_put(Dst, 5843, offsetof(zend_op_array, opcodes), opcodes);
							}
#line 9622 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	.else
					//|		cmp aword [r0 + offsetof(zend_op_array, opcodes)], opcodes
					//|	.endif
					//|	jz >3
					dasm_put(Dst, 4027);
#line 9626 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|   .if X64
							if (!IS_SIGNED_32BIT(func)) {
					//|			mov64 r1, ((ptrdiff_t)func)
					//|			cmp r0, r1
					dasm_put(Dst, 5849, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32));
							} else {
#line 9632 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|			cmp r0, func
					dasm_put(Dst, 3624, func);
							}
#line 9634 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	.else
					//|		cmp r0, func
					//|	.endif
					//|	jz >3
					dasm_put(Dst, 4027);
#line 9638 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	jmp &exit_addr
				dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 9640 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	test r0, r0
				//|	jnz >3
				//|	// SAVE_OPLINE();
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 5826);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 9645 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp ->undefined_function
				dasm_put(Dst, 5857);
#line 9646 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|.code
		dasm_put(Dst, 387);
#line 9649 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|3:
		dasm_put(Dst, 347);
#line 9650 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!zend_jit_push_call_frame(Dst, opline, op_array, func, 0, 0, stack_check)) {
		return 0;
	}

	if (zend_jit_needs_call_chain(call_info, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
		if (!zend_jit_save_call_chain(Dst, call_level)) {
			return 0;
		}
	} else {
		delayed_call_chain = 1;
		delayed_call_level = call_level;
	}

	return 1;
}

static int zend_jit_init_method_call(dasm_State          **Dst,
                                     const zend_op        *opline,
                                     uint32_t              b,
                                     const zend_op_array  *op_array,
                                     zend_ssa             *ssa,
                                     const zend_ssa_op    *ssa_op,
                                     int                   call_level,
                                     uint32_t              op1_info,
                                     zend_jit_addr         op1_addr,
                                     zend_class_entry     *ce,
                                     zend_bool             ce_is_instanceof,
                                     zend_bool             use_this,
                                     zend_class_entry     *trace_ce,
                                     zend_jit_trace_rec   *trace,
                                     zend_bool             stack_check,
                                     zend_bool             polymorphic_side_trace)
{
	zend_func_info *info = ZEND_FUNC_INFO(op_array);
	zend_call_info *call_info = NULL;
	zend_function *func = NULL;
	zval *function_name;

	ZEND_ASSERT(opline->op2_type == IS_CONST);
	ZEND_ASSERT(op1_info & MAY_BE_OBJECT);

	function_name = RT_CONSTANT(opline, opline->op2);

	if (info) {
		call_info = info->callee_info;
		while (call_info && call_info->caller_init_opline != opline) {
			call_info = call_info->next_callee;
		}
		if (call_info && call_info->callee_func) {
			func = call_info->callee_func;
		}
	}

	if (polymorphic_side_trace) {
		/* function is passed in r0 from parent_trace */
	} else {
		if (opline->op1_type == IS_UNUSED || use_this) {
			zend_jit_addr this_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, offsetof(zend_execute_data, This));

			//|	GET_ZVAL_PTR FCARG1a, this_addr
				ZEND_ASSERT(Z_MODE(this_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4219, (Z_REG(this_addr)), Z_OFFSET(this_addr));
#line 9712 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
		    if (op1_info & MAY_BE_REF) {
				if (opline->op1_type == IS_CV) {
					if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
						//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
							if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
						dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
								} else {
						dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
								}
							} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
							if (Z_OFFSET(op1_addr)) {
						dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
							} else {
						dasm_put(Dst, 2322, (Z_REG(op1_addr)));
							}
							} else {
								ZEND_UNREACHABLE();
							}
#line 9717 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	ZVAL_DEREF FCARG1a, op1_info
						if (op1_info & MAY_BE_REF) {
					dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
						}
#line 9719 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
				} else {
					/* Hack: Convert reference to regular value to simplify JIT code */
					ZEND_ASSERT(Z_REG(op1_addr) == ZREG_FP);
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_REFERENCE, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 9724 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(op1_addr)) {
					dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else {
					dasm_put(Dst, 2322, (Z_REG(op1_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 9725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_jit_unref_helper, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_unref_helper)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_unref_helper));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_unref_helper)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_unref_helper));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_unref_helper)), (unsigned int)((((ptrdiff_t)zend_jit_unref_helper))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 9726 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 9727 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
				if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
					int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
					const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

					if (!exit_addr) {
						return 0;
					}
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, &exit_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 9738 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 9740 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.cold_code
					dasm_put(Dst, 3360, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT);
#line 9741 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 9742 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
						//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
							if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
						dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
								} else {
						dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
								}
							} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
							if (Z_OFFSET(op1_addr)) {
						dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
							} else {
						dasm_put(Dst, 2322, (Z_REG(op1_addr)));
							}
							} else {
								ZEND_UNREACHABLE();
							}
#line 9744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	SET_EX_OPLINE opline, r0
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
#line 9746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if ((opline->op1_type & (IS_VAR|IS_TMP_VAR)) && !use_this) {
						//|	EXT_CALL zend_jit_invalid_method_call_tmp, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_method_call_tmp)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_method_call_tmp));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_invalid_method_call_tmp)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_method_call_tmp));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_method_call_tmp)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_method_call_tmp))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 9748 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	EXT_CALL zend_jit_invalid_method_call, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_method_call)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_method_call));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_invalid_method_call)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_method_call));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_method_call)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_method_call))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 9750 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	jmp ->exception_handler
					//|.code
					dasm_put(Dst, 5874);
#line 9753 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			//|	GET_ZVAL_PTR FCARG1a, op1_addr
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 9756 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (delayed_call_chain) {
			if (!zend_jit_save_call_chain(Dst, delayed_call_level)) {
				return 0;
			}
		}

		//|	mov aword T1, FCARG1a // save
		dasm_put(Dst, 3959);
#line 9765 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (func) {
			//|	// fbc = CACHED_PTR(opline->result.num + sizeof(void*));
			//|	mov r0, EX->run_time_cache
			//|	mov r0, aword [r0 + opline->result.num + sizeof(void*)]
			//|	test r0, r0
			//|	jz >1
			dasm_put(Dst, 5880, Dt1(->run_time_cache), opline->result.num + sizeof(void*));
#line 9772 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	// if (CACHED_PTR(opline->result.num) == obj->ce)) {
			//|	mov r0, EX->run_time_cache
			//|	mov r2, aword [r0 + opline->result.num]
			//|	cmp r2, [FCARG1a + offsetof(zend_object, ce)]
			//|	jnz >1
			//|	// fbc = CACHED_PTR(opline->result.num + sizeof(void*));
			//|	mov r0, aword [r0 + opline->result.num + sizeof(void*)]
			dasm_put(Dst, 5896, Dt1(->run_time_cache), opline->result.num, offsetof(zend_object, ce), opline->result.num + sizeof(void*));
#line 9780 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|.cold_code
		dasm_put(Dst, 290);
#line 9783 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	LOAD_ADDR FCARG2a, function_name
		dasm_put(Dst, 64);
				if (IS_SIGNED_32BIT(function_name)) {
		dasm_put(Dst, 707, ((ptrdiff_t)function_name));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)function_name)), (unsigned int)((((ptrdiff_t)function_name))>>32));
				}
#line 9785 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
		//|	lea CARG3, aword T1
		//|.else
		//|	lea r0, aword T1
		//|	sub r4, 12
		//|	push r0
		//|.endif
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 5917);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 9793 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if ((opline->op1_type & (IS_VAR|IS_TMP_VAR)) && !use_this) {
			//|	EXT_CALL zend_jit_find_method_tmp_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_find_method_tmp_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_find_method_tmp_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_find_method_tmp_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_find_method_tmp_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_find_method_tmp_helper)), (unsigned int)((((ptrdiff_t)zend_jit_find_method_tmp_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 9795 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	EXT_CALL zend_jit_find_method_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_find_method_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_find_method_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_find_method_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_find_method_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_find_method_helper)), (unsigned int)((((ptrdiff_t)zend_jit_find_method_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 9797 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		//|	test r0, r0
		//|	jnz >2
		//|	jmp ->exception_handler
		//|.code
		dasm_put(Dst, 5922);
#line 9805 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		dasm_put(Dst, 2037);
#line 9806 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!func
	 && trace
	 && trace->op == ZEND_JIT_TRACE_INIT_CALL
	 && trace->func
#ifdef _WIN32
	 && trace->func->type != ZEND_INTERNAL_FUNCTION
#endif
	) {
		int32_t exit_point;
		const void *exit_addr;

		exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_METHOD_CALL);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		if (!exit_addr) {
			return 0;
		}

		func = (zend_function*)trace->func;

		if (func->type == ZEND_USER_FUNCTION &&
		    (!(func->common.fn_flags & ZEND_ACC_IMMUTABLE) ||
		     (func->common.fn_flags & ZEND_ACC_CLOSURE) ||
		     !func->common.function_name)) {
			const zend_op *opcodes = func->op_array.opcodes;

			//|   .if X64
					if (!IS_SIGNED_32BIT(opcodes)) {
			//|			mov64 r1, ((ptrdiff_t)opcodes)
			//|			cmp aword [r0 + offsetof(zend_op_array, opcodes)], r1
			dasm_put(Dst, 5834, (unsigned int)(((ptrdiff_t)opcodes)), (unsigned int)((((ptrdiff_t)opcodes))>>32), offsetof(zend_op_array, opcodes));
					} else {
#line 9838 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|			cmp aword [r0 + offsetof(zend_op_array, opcodes)], opcodes
			dasm_put(Dst, 5843, offsetof(zend_op_array, opcodes), opcodes);
					}
#line 9840 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	.else
			//|		cmp aword [r0 + offsetof(zend_op_array, opcodes)], opcodes
			//|	.endif
			//|	jne &exit_addr
			dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 9844 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|   .if X64
					if (!IS_SIGNED_32BIT(func)) {
			//|			mov64 r1, ((ptrdiff_t)func)
			//|			cmp r0, r1
			dasm_put(Dst, 5849, (unsigned int)(((ptrdiff_t)func)), (unsigned int)((((ptrdiff_t)func))>>32));
					} else {
#line 9850 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|			cmp r0, func
			dasm_put(Dst, 3624, func);
					}
#line 9852 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	.else
			//|		cmp r0, func
			//|	.endif
			//|	jne &exit_addr
			dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 9856 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!func) {
		//|	// if (fbc->common.fn_flags & ZEND_ACC_STATIC) {
		//|	test dword [r0 + offsetof(zend_function, common.fn_flags)], ZEND_ACC_STATIC
		//|	jnz >1
		//|.cold_code
		dasm_put(Dst, 5935, offsetof(zend_function, common.fn_flags), ZEND_ACC_STATIC);
#line 9864 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 9865 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!func || (func->common.fn_flags & ZEND_ACC_STATIC) != 0) {
		//|	mov FCARG1a, aword T1 // restore
		//|	mov FCARG2a, r0
		//|.if X64
		//|	mov CARG3d, opline->extended_value
		//|.else
		//|	sub r4, 12
		//|	push opline->extended_value
		//|.endif
		dasm_put(Dst, 5946, opline->extended_value);
#line 9876 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if ((opline->op1_type & (IS_VAR|IS_TMP_VAR)) && !use_this) {
			//|	EXT_CALL zend_jit_push_static_metod_call_frame_tmp, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_push_static_metod_call_frame_tmp)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_push_static_metod_call_frame_tmp));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_push_static_metod_call_frame_tmp)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_push_static_metod_call_frame_tmp));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_push_static_metod_call_frame_tmp)), (unsigned int)((((ptrdiff_t)zend_jit_push_static_metod_call_frame_tmp))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 9878 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	EXT_CALL zend_jit_push_static_metod_call_frame, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_push_static_metod_call_frame)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_push_static_metod_call_frame));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_push_static_metod_call_frame)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_push_static_metod_call_frame));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_push_static_metod_call_frame)), (unsigned int)((((ptrdiff_t)zend_jit_push_static_metod_call_frame))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 9880 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.if not(X64)
		//|	add r4, 12
		//|.endif
		if ((opline->op1_type & (IS_VAR|IS_TMP_VAR) && !use_this)) {
			//|	test r0, r0
			//|	jz ->exception_handler
			dasm_put(Dst, 5956);
#line 9887 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	mov RX, r0
		dasm_put(Dst, 5964);
#line 9889 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!func) {
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 9894 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!func || (func->common.fn_flags & ZEND_ACC_STATIC) == 0) {
		if (!zend_jit_push_call_frame(Dst, opline, NULL, func, 0, use_this, stack_check)) {
			return 0;
		}
	}

	if (!func) {
		//|9:
		dasm_put(Dst, 4204);
#line 9904 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	zend_jit_start_reuse_ip();

	if (zend_jit_needs_call_chain(call_info, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
		if (!zend_jit_save_call_chain(Dst, call_level)) {
			return 0;
		}
	} else {
		delayed_call_chain = 1;
		delayed_call_level = call_level;
	}

	return 1;
}

static int zend_jit_init_closure_call(dasm_State          **Dst,
                                      const zend_op        *opline,
                                      uint32_t              b,
                                      const zend_op_array  *op_array,
                                      zend_ssa             *ssa,
                                      const zend_ssa_op    *ssa_op,
                                      int                   call_level,
                                      zend_jit_trace_rec   *trace,
                                      zend_bool             stack_check)
{
	zend_function *func = NULL;
	zend_jit_addr op2_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var);

	//|	GET_ZVAL_PTR r0, op2_addr
		ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 5968, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
#line 9933 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (ssa->var_info[ssa_op->op2_use].ce != zend_ce_closure
	 && !(ssa->var_info[ssa_op->op2_use].type & MAY_BE_CLASS_GUARD)) {
		int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
		const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

		if (!exit_addr) {
			return 0;
		}

		//|.if X64
			if (!IS_SIGNED_32BIT(zend_ce_closure)) {
		//|		mov64 FCARG1a, ((ptrdiff_t)zend_ce_closure)
		//|		cmp aword [r0 + offsetof(zend_object, ce)], FCARG1a
		dasm_put(Dst, 5976, (unsigned int)(((ptrdiff_t)zend_ce_closure)), (unsigned int)((((ptrdiff_t)zend_ce_closure))>>32), offsetof(zend_object, ce));
			} else {
#line 9948 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|		cmp aword [r0 + offsetof(zend_object, ce)], zend_ce_closure
		dasm_put(Dst, 5843, offsetof(zend_object, ce), zend_ce_closure);
			}
#line 9950 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
		//|	cmp aword [r0 + offsetof(zend_object, ce)], zend_ce_closure
		//|.endif
		//|	jne &exit_addr
		dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 9954 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (ssa->var_info && ssa_op->op2_use >= 0) {
			ssa->var_info[ssa_op->op2_use].type |= MAY_BE_CLASS_GUARD;
			ssa->var_info[ssa_op->op2_use].ce = zend_ce_closure;
			ssa->var_info[ssa_op->op2_use].is_instanceof = 0;
		}
	}

	if (trace
	 && trace->op == ZEND_JIT_TRACE_INIT_CALL
	 && trace->func
	 && trace->func->type == ZEND_USER_FUNCTION) {
		const zend_op *opcodes;
		int32_t exit_point;
		const void *exit_addr;

		func = (zend_function*)trace->func;
		opcodes = func->op_array.opcodes;
		exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_CLOSURE_CALL);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		if (!exit_addr) {
			return 0;
		}

		//|   .if X64
				if (!IS_SIGNED_32BIT(opcodes)) {
		//|			mov64 FCARG1a, ((ptrdiff_t)opcodes)
		//|			cmp aword [r0 + offsetof(zend_closure, func.op_array.opcodes)], FCARG1a
		dasm_put(Dst, 5976, (unsigned int)(((ptrdiff_t)opcodes)), (unsigned int)((((ptrdiff_t)opcodes))>>32), offsetof(zend_closure, func.op_array.opcodes));
				} else {
#line 9982 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|			cmp aword [r0 + offsetof(zend_closure, func.op_array.opcodes)], opcodes
		dasm_put(Dst, 5843, offsetof(zend_closure, func.op_array.opcodes), opcodes);
				}
#line 9984 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	.else
		//|		cmp aword [r0 + offsetof(zend_closure, func.op_array.opcodes)], opcodes
		//|	.endif
		//|	jne &exit_addr
		dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 9988 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (delayed_call_chain) {
		if (!zend_jit_save_call_chain(Dst, delayed_call_level)) {
			return 0;
		}
	}

	if (!zend_jit_push_call_frame(Dst, opline, NULL, func, 1, 0, stack_check)) {
		return 0;
	}

	if (zend_jit_needs_call_chain(NULL, b, op_array, ssa, ssa_op, opline, call_level, trace)) {
		if (!zend_jit_save_call_chain(Dst, call_level)) {
			return 0;
		}
	} else {
		delayed_call_chain = 1;
		delayed_call_level = call_level;
	}

	if (trace
	 && trace->op == ZEND_JIT_TRACE_END
	 && trace->stop == ZEND_JIT_TRACE_STOP_INTERPRETER) {
		if (!zend_jit_set_valid_ip(Dst, opline + 1)) {
			return 0;
		}
	}

	return 1;
}

static uint32_t skip_valid_arguments(const zend_op_array *op_array, zend_ssa *ssa, const zend_call_info *call_info)
{
	uint32_t num_args = 0;
	zend_function *func = call_info->callee_func;

	while (num_args < call_info->num_args) {
		zend_arg_info *arg_info = func->op_array.arg_info + num_args;

		if (ZEND_TYPE_IS_SET(arg_info->type)) {
			if (ZEND_TYPE_IS_ONLY_MASK(arg_info->type)) {
				zend_op *opline = call_info->arg_info[num_args].opline;
				zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes];
				uint32_t type_mask = ZEND_TYPE_PURE_MASK(arg_info->type);
				if ((OP1_INFO() & (MAY_BE_ANY|MAY_BE_UNDEF)) & ~type_mask) {
					break;
				}
			} else {
				break;
			}
		}
		num_args++;
	}
	return num_args;
}

static int zend_jit_do_fcall(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, int call_level, unsigned int next_block, zend_jit_trace_rec *trace)
{
	zend_func_info *info = ZEND_FUNC_INFO(op_array);
	zend_call_info *call_info = NULL;
	const zend_function *func = NULL;
	uint32_t i;
	zend_jit_addr res_addr;
	uint32_t call_num_args = 0;
	zend_bool unknown_num_args = 0;
	const void *exit_addr = NULL;
	const zend_op *prev_opline;

	if (RETURN_VALUE_USED(opline)) {
		res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	} else {
		/* CPU stack allocated temporary zval */
		res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R4, TMP_ZVAL_OFFSET);
	}

	prev_opline = opline - 1;
	while (prev_opline->opcode == ZEND_EXT_FCALL_BEGIN || prev_opline->opcode == ZEND_TICKS) {
		prev_opline--;
	}
	if (prev_opline->opcode == ZEND_SEND_UNPACK || prev_opline->opcode == ZEND_SEND_ARRAY ||
			prev_opline->opcode == ZEND_CHECK_UNDEF_ARGS) {
		unknown_num_args = 1;
	}

	if (info) {
		call_info = info->callee_info;
		while (call_info && call_info->caller_call_opline != opline) {
			call_info = call_info->next_callee;
		}
		if (call_info && call_info->callee_func) {
			func = call_info->callee_func;
		}
		if ((op_array->fn_flags & ZEND_ACC_TRAIT_CLONE)
		 && JIT_G(current_frame)
		 && JIT_G(current_frame)->call
		 && !JIT_G(current_frame)->call->func) {
			call_info = NULL; func = NULL; /* megamorphic call from trait */
		}
	}
	if (!func) {
		/* resolve function at run time */
	} else if (func->type == ZEND_USER_FUNCTION) {
		ZEND_ASSERT(opline->opcode != ZEND_DO_ICALL);
		call_num_args = call_info->num_args;
	} else if (func->type == ZEND_INTERNAL_FUNCTION) {
		ZEND_ASSERT(opline->opcode != ZEND_DO_UCALL);
		call_num_args = call_info->num_args;
	} else {
		ZEND_UNREACHABLE();
	}

	if (trace && !func) {
		if (trace->op == ZEND_JIT_TRACE_DO_ICALL) {
			ZEND_ASSERT(trace->func->type == ZEND_INTERNAL_FUNCTION);
#ifndef ZEND_WIN32
			// TODO: ASLR may cause different addresses in different workers ???
			func = trace->func;
			if (JIT_G(current_frame) &&
			    JIT_G(current_frame)->call &&
			    TRACE_FRAME_NUM_ARGS(JIT_G(current_frame)->call) >= 0) {
				call_num_args = TRACE_FRAME_NUM_ARGS(JIT_G(current_frame)->call);
			} else {
				unknown_num_args = 1;
			}
#endif
		} else if (trace->op == ZEND_JIT_TRACE_ENTER) {
			ZEND_ASSERT(trace->func->type == ZEND_USER_FUNCTION);
			if (zend_accel_in_shm(trace->func->op_array.opcodes)) {
				func = trace->func;
				if (JIT_G(current_frame) &&
				    JIT_G(current_frame)->call &&
				    TRACE_FRAME_NUM_ARGS(JIT_G(current_frame)->call) >= 0) {
					call_num_args = TRACE_FRAME_NUM_ARGS(JIT_G(current_frame)->call);
				} else {
					unknown_num_args = 1;
				}
			}
		}
	}

	bool may_have_extra_named_params =
		opline->extended_value == ZEND_FCALL_MAY_HAVE_EXTRA_NAMED_PARAMS &&
		(!func || func->common.fn_flags & ZEND_ACC_VARIADIC);

	if (!reuse_ip) {
		zend_jit_start_reuse_ip();
		//|	// call = EX(call);
		//|	mov RX, EX->call
		dasm_put(Dst, 0, Dt1(->call));
#line 10137 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	zend_jit_stop_reuse_ip();

	//|	// fbc = call->func;
	//|	// mov r2, EX:RX->func ???
	//|	// SAVE_OPLINE();
	//|	SET_EX_OPLINE opline, r0
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
#line 10144 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (opline->opcode == ZEND_DO_FCALL) {
		if (!func) {
			if (trace) {
				uint32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);

				exit_addr = zend_jit_trace_get_exit_addr(exit_point);
				if (!exit_addr) {
					return 0;
				}
				//|	mov r0, EX:RX->func
				//|	test dword [r0 + offsetof(zend_op_array, fn_flags)], ZEND_ACC_DEPRECATED
				//|	jnz &exit_addr
				dasm_put(Dst, 5985, Dt1(->func), offsetof(zend_op_array, fn_flags), ZEND_ACC_DEPRECATED, (ptrdiff_t)(exit_addr));
#line 10157 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if (!delayed_call_chain) {
		if (call_level == 1) {
			//|	mov aword EX->call, 0
			dasm_put(Dst, 5998, Dt1(->call));
#line 10164 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	//EX(call) = call->prev_execute_data;
			//|	mov r0, EX:RX->prev_execute_data
			//|	mov EX->call, r0
			dasm_put(Dst, 6007, Dt1(->prev_execute_data), Dt1(->call));
#line 10168 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	delayed_call_chain = 0;

	//|	//call->prev_execute_data = execute_data;
	//|	mov EX:RX->prev_execute_data, EX
	dasm_put(Dst, 6016, Dt1(->prev_execute_data));
#line 10174 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (!func) {
		//|	mov r0, EX:RX->func
		dasm_put(Dst, 6021, Dt1(->func));
#line 10177 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (opline->opcode == ZEND_DO_FCALL) {
		if (!func) {
			if (!trace) {
				//|	test dword [r0 + offsetof(zend_op_array, fn_flags)], ZEND_ACC_DEPRECATED
				//|	jnz >1
				//|.cold_code
				dasm_put(Dst, 5935, offsetof(zend_op_array, fn_flags), ZEND_ACC_DEPRECATED);
#line 10185 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 10186 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!GCC_GLOBAL_REGS) {
					//|	mov FCARG1a, RX
					dasm_put(Dst, 517);
#line 10188 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	EXT_CALL zend_jit_deprecated_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_deprecated_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_deprecated_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_deprecated_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_deprecated_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_deprecated_helper)), (unsigned int)((((ptrdiff_t)zend_jit_deprecated_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 10190 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	test al, al
				//|	mov r0, EX:RX->func // reload
				//|	jne >1
				//|	jmp ->exception_handler
				//|.code
				dasm_put(Dst, 6026, Dt1(->func));
#line 10195 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 10196 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (func->common.fn_flags & ZEND_ACC_DEPRECATED) {
			if (!GCC_GLOBAL_REGS) {
				//|	mov FCARG1a, RX
				dasm_put(Dst, 517);
#line 10200 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	EXT_CALL zend_jit_deprecated_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_deprecated_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_deprecated_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_deprecated_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_deprecated_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_deprecated_helper)), (unsigned int)((((ptrdiff_t)zend_jit_deprecated_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10202 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	test al, al
			//|	je ->exception_handler
			dasm_put(Dst, 6042);
#line 10204 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!func
	 && opline->opcode != ZEND_DO_UCALL
	 && opline->opcode != ZEND_DO_ICALL) {
		//|	cmp byte [r0 + offsetof(zend_function, type)], ZEND_USER_FUNCTION
		//|	jne >8
		dasm_put(Dst, 3687, offsetof(zend_function, type), ZEND_USER_FUNCTION);
#line 10212 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if ((!func || func->type == ZEND_USER_FUNCTION)
	 && opline->opcode != ZEND_DO_ICALL) {
		//|	// EX(call) = NULL;
		//|	mov aword EX:RX->call, 0
		dasm_put(Dst, 1599, Dt1(->call));
#line 10218 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (RETURN_VALUE_USED(opline)) {
			//|	// EX(return_value) = EX_VAR(opline->result.var);
			//|	LOAD_ZVAL_ADDR r2, res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(res_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 10222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov aword EX:RX->return_value, r2
			dasm_put(Dst, 6049, Dt1(->return_value));
#line 10223 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	// EX(return_value) = 0;
			//|	mov aword EX:RX->return_value, 0
			dasm_put(Dst, 1599, Dt1(->return_value));
#line 10226 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//EX_LOAD_RUN_TIME_CACHE(op_array);
		if (!func || func->op_array.cache_size) {
			if (func && op_array == &func->op_array) {
				/* recursive call */
				if (trace || func->op_array.cache_size > sizeof(void*)) {
					//|	mov r2, EX->run_time_cache
					//|	mov EX:RX->run_time_cache, r2
					dasm_put(Dst, 6054, Dt1(->run_time_cache), Dt1(->run_time_cache));
#line 10235 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				if (func) {
					//|	mov r0, EX:RX->func
					dasm_put(Dst, 6021, Dt1(->func));
#line 10239 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	mov r2, aword [r0 + offsetof(zend_op_array, run_time_cache__ptr)]
				dasm_put(Dst, 6063, offsetof(zend_op_array, run_time_cache__ptr));
#line 10241 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#if ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR
				//|	mov r2, aword [r2]
				dasm_put(Dst, 5573);
#line 10243 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
				if (func && !(func->op_array.fn_flags & ZEND_ACC_CLOSURE)) {
					if (ZEND_MAP_PTR_IS_OFFSET(func->op_array.run_time_cache)) {
						//|	MEM_OP2_2_ZTS add, r2, aword, compiler_globals, map_ptr_base, r1
								if (IS_SIGNED_32BIT(&compiler_globals.map_ptr_base)) {
						dasm_put(Dst, 6068, &compiler_globals.map_ptr_base);
								} else {
						dasm_put(Dst, 6074, (unsigned int)(((ptrdiff_t)&compiler_globals.map_ptr_base)), (unsigned int)((((ptrdiff_t)&compiler_globals.map_ptr_base))>>32));
								}
#line 10247 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (!zend_accel_in_shm(func->op_array.opcodes)) {
						/* the called op_array may be not persisted yet */
						//|	test r2, 1
						//|	jz >1
						//|	MEM_OP2_2_ZTS add, r2, aword, compiler_globals, map_ptr_base, r1
						dasm_put(Dst, 6082);
								if (IS_SIGNED_32BIT(&compiler_globals.map_ptr_base)) {
						dasm_put(Dst, 6068, &compiler_globals.map_ptr_base);
								} else {
						dasm_put(Dst, 6074, (unsigned int)(((ptrdiff_t)&compiler_globals.map_ptr_base)), (unsigned int)((((ptrdiff_t)&compiler_globals.map_ptr_base))>>32));
								}
#line 10252 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|1:
						dasm_put(Dst, 64);
#line 10253 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	mov r2, aword [r2]
					dasm_put(Dst, 5573);
#line 10255 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	test r2, 1
					//|	jz >1
					//|	MEM_OP2_2_ZTS add, r2, aword, compiler_globals, map_ptr_base, r1
					dasm_put(Dst, 6082);
							if (IS_SIGNED_32BIT(&compiler_globals.map_ptr_base)) {
					dasm_put(Dst, 6068, &compiler_globals.map_ptr_base);
							} else {
					dasm_put(Dst, 6074, (unsigned int)(((ptrdiff_t)&compiler_globals.map_ptr_base)), (unsigned int)((((ptrdiff_t)&compiler_globals.map_ptr_base))>>32));
							}
#line 10259 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					//|	mov r2, aword [r2]
					dasm_put(Dst, 6095);
#line 10261 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
#else
# error "Unknown ZEND_MAP_PTR_KIND"
#endif
				//|	mov EX:RX->run_time_cache, r2
				dasm_put(Dst, 6049, Dt1(->run_time_cache));
#line 10266 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}

		//|	// EG(current_execute_data) = execute_data;
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, current_execute_data, RX, r1
				if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
		dasm_put(Dst, 481, &executor_globals.current_execute_data);
				} else {
		dasm_put(Dst, 6101, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
				}
#line 10271 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FP, RX
		dasm_put(Dst, 6109);
#line 10272 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|	// opline = op_array->opcodes;
		if (func && !unknown_num_args) {

			for (i = call_num_args; i < func->op_array.last_var; i++) {
				uint32_t n = EX_NUM_TO_VAR(i);
				//|	SET_Z_TYPE_INFO RX + n, IS_UNDEF
				dasm_put(Dst, 5648, n+offsetof(zval,u1.type_info), IS_UNDEF);
#line 10279 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			if (call_num_args <= func->op_array.num_args) {
				if (!trace || (trace->op == ZEND_JIT_TRACE_END
				 && trace->stop == ZEND_JIT_TRACE_STOP_INTERPRETER)) {
					uint32_t num_args;

					if ((func->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) != 0) {
						if (trace) {
							num_args = 0;
						} else if (call_info) {
							num_args = skip_valid_arguments(op_array, ssa, call_info);
						} else {
							num_args = call_num_args;
						}
					} else {
						num_args = call_num_args;
					}
					if (zend_accel_in_shm(func->op_array.opcodes)) {
						//|	LOAD_IP_ADDR (func->op_array.opcodes + num_args)
							if (GCC_GLOBAL_REGS) {
								if (IS_SIGNED_32BIT((func->op_array.opcodes + num_args))) {
						dasm_put(Dst, 498, ((ptrdiff_t)(func->op_array.opcodes + num_args)));
								} else {
						dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(func->op_array.opcodes + num_args))), (unsigned int)((((ptrdiff_t)(func->op_array.opcodes + num_args)))>>32));
								}
							} else {
								if (IS_SIGNED_32BIT((func->op_array.opcodes + num_args))) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(func->op_array.opcodes + num_args)));
								} else {
						dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(func->op_array.opcodes + num_args))), (unsigned int)((((ptrdiff_t)(func->op_array.opcodes + num_args)))>>32), Dt1(->opline));
								}
							}
#line 10299 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	mov r0, EX->func
						dasm_put(Dst, 5782, Dt1(->func));
#line 10301 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						if (GCC_GLOBAL_REGS) {
							//|	mov IP, aword [r0 + offsetof(zend_op_array, opcodes)]
							dasm_put(Dst, 6114, offsetof(zend_op_array, opcodes));
#line 10303 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							if (num_args) {
								//|	add IP, (num_args * sizeof(zend_op))
								dasm_put(Dst, 1617, (num_args * sizeof(zend_op)));
#line 10305 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
						} else {
							//|	mov FCARG1a, aword [r0 + offsetof(zend_op_array, opcodes)]
							dasm_put(Dst, 6119, offsetof(zend_op_array, opcodes));
#line 10308 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							if (num_args) {
								//|	add FCARG1a, (num_args * sizeof(zend_op))
								dasm_put(Dst, 6124, (num_args * sizeof(zend_op)));
#line 10310 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
							//|	mov aword EX->opline, FCARG1a
							dasm_put(Dst, 6129, Dt1(->opline));
#line 10312 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}

					if (GCC_GLOBAL_REGS && !trace && op_array == &func->op_array
							&& num_args >= op_array->required_num_args) {
						/* recursive call */
						if (ZEND_OBSERVER_ENABLED) {
							//|	SAVE_IP
								if (GCC_GLOBAL_REGS) {
							dasm_put(Dst, 8, Dt1(->opline));
								}
#line 10320 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							//|	mov FCARG1a, FP
							//|	EXT_CALL zend_observer_fcall_begin, r0
							dasm_put(Dst, 67);
									if (IS_32BIT(dasm_end) && IS_32BIT(zend_observer_fcall_begin)) {
							dasm_put(Dst, 46, (ptrdiff_t)(zend_observer_fcall_begin));
									} else {
									if (IS_SIGNED_32BIT(zend_observer_fcall_begin)) {
							dasm_put(Dst, 50, ((ptrdiff_t)zend_observer_fcall_begin));
									} else {
							dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_observer_fcall_begin)), (unsigned int)((((ptrdiff_t)zend_observer_fcall_begin))>>32));
									}
							dasm_put(Dst, 60);
									}
#line 10322 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
#ifdef CONTEXT_THREADED_JIT
						//|	call >1
						//|.cold_code
						dasm_put(Dst, 6134);
#line 10326 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|1:
						//|	pop r0
						//|	jmp =>num_args
						//|.code
						dasm_put(Dst, 6140, num_args);
#line 10330 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
						//|	jmp =>num_args
						dasm_put(Dst, 1645, num_args);
#line 10332 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
						return 1;
					}
				}
			} else {
				if (!trace || (trace->op == ZEND_JIT_TRACE_END
				 && trace->stop == ZEND_JIT_TRACE_STOP_INTERPRETER)) {
					if (func && zend_accel_in_shm(func->op_array.opcodes)) {
						//|	LOAD_IP_ADDR (func->op_array.opcodes)
							if (GCC_GLOBAL_REGS) {
								if (IS_SIGNED_32BIT((func->op_array.opcodes))) {
						dasm_put(Dst, 498, ((ptrdiff_t)(func->op_array.opcodes)));
								} else {
						dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(func->op_array.opcodes))), (unsigned int)((((ptrdiff_t)(func->op_array.opcodes)))>>32));
								}
							} else {
								if (IS_SIGNED_32BIT((func->op_array.opcodes))) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(func->op_array.opcodes)));
								} else {
						dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(func->op_array.opcodes))), (unsigned int)((((ptrdiff_t)(func->op_array.opcodes)))>>32), Dt1(->opline));
								}
							}
#line 10341 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (GCC_GLOBAL_REGS) {
						//|	mov IP, aword [r0 + offsetof(zend_op_array, opcodes)]
						dasm_put(Dst, 6114, offsetof(zend_op_array, opcodes));
#line 10343 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	mov FCARG1a, aword [r0 + offsetof(zend_op_array, opcodes)]
						//|	mov aword EX->opline, FCARG1a
						dasm_put(Dst, 6148, offsetof(zend_op_array, opcodes), Dt1(->opline));
#line 10346 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (!GCC_GLOBAL_REGS) {
					//|	mov FCARG1a, FP
					dasm_put(Dst, 67);
#line 10350 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	EXT_CALL zend_jit_copy_extra_args_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_copy_extra_args_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_copy_extra_args_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_copy_extra_args_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_copy_extra_args_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_copy_extra_args_helper)), (unsigned int)((((ptrdiff_t)zend_jit_copy_extra_args_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 10352 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	// opline = op_array->opcodes
			if (func && zend_accel_in_shm(func->op_array.opcodes)) {
				//|	LOAD_IP_ADDR (func->op_array.opcodes)
					if (GCC_GLOBAL_REGS) {
						if (IS_SIGNED_32BIT((func->op_array.opcodes))) {
				dasm_put(Dst, 498, ((ptrdiff_t)(func->op_array.opcodes)));
						} else {
				dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(func->op_array.opcodes))), (unsigned int)((((ptrdiff_t)(func->op_array.opcodes)))>>32));
						}
					} else {
						if (IS_SIGNED_32BIT((func->op_array.opcodes))) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(func->op_array.opcodes)));
						} else {
				dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(func->op_array.opcodes))), (unsigned int)((((ptrdiff_t)(func->op_array.opcodes)))>>32), Dt1(->opline));
						}
					}
#line 10357 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (GCC_GLOBAL_REGS) {
				//|	mov IP, aword [r0 + offsetof(zend_op_array, opcodes)]
				dasm_put(Dst, 6114, offsetof(zend_op_array, opcodes));
#line 10359 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	mov FCARG1a, aword [r0 + offsetof(zend_op_array, opcodes)]
				//|	mov aword EX->opline, FCARG1a
				dasm_put(Dst, 6148, offsetof(zend_op_array, opcodes), Dt1(->opline));
#line 10362 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (func) {
				//|	// num_args = EX_NUM_ARGS();
				//|	mov ecx, dword [FP + offsetof(zend_execute_data, This.u2.num_args)]
				//|	// if (UNEXPECTED(num_args > first_extra_arg))
				//|	cmp ecx, (func->op_array.num_args)
				dasm_put(Dst, 6157, offsetof(zend_execute_data, This.u2.num_args), (func->op_array.num_args));
#line 10368 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	// first_extra_arg = op_array->num_args;
				//|	mov edx, dword [r0 + offsetof(zend_op_array, num_args)]
				//|	// num_args = EX_NUM_ARGS();
				//|	mov ecx, dword [FP + offsetof(zend_execute_data, This.u2.num_args)]
				//|	// if (UNEXPECTED(num_args > first_extra_arg))
				//|	cmp ecx, edx
				dasm_put(Dst, 6166, offsetof(zend_op_array, num_args), offsetof(zend_execute_data, This.u2.num_args));
#line 10375 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	jg >1
			//|.cold_code
			dasm_put(Dst, 6176);
#line 10378 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 10379 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!GCC_GLOBAL_REGS) {
				//|	mov FCARG1a, FP
				dasm_put(Dst, 67);
#line 10381 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	EXT_CALL zend_jit_copy_extra_args_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_copy_extra_args_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_copy_extra_args_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_copy_extra_args_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_copy_extra_args_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_copy_extra_args_helper)), (unsigned int)((((ptrdiff_t)zend_jit_copy_extra_args_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10383 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!func) {
				//|	mov r0, EX->func // reload
				dasm_put(Dst, 5782, Dt1(->func));
#line 10385 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	mov ecx, dword [FP + offsetof(zend_execute_data, This.u2.num_args)] // reload
			//|	jmp >1
			//|.code
			dasm_put(Dst, 6182, offsetof(zend_execute_data, This.u2.num_args));
#line 10389 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!func || (func->op_array.fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0) {
				if (!func) {
					//|	// if (EXPECTED((op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) == 0))
					//|	test dword [r0 + offsetof(zend_op_array, fn_flags)], ZEND_ACC_HAS_TYPE_HINTS
					//|	jnz >1
					dasm_put(Dst, 6192, offsetof(zend_op_array, fn_flags), ZEND_ACC_HAS_TYPE_HINTS);
#line 10394 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	// opline += num_args;
				//|.if X64
						ZEND_ASSERT(sizeof(zend_op) == 32);
					//|	mov edx, ecx
					//|	shl r2, 5
				//|.else
					//|	imul r2, ecx, sizeof(zend_op)
				//|.endif
				//|	ADD_IP r2
				dasm_put(Dst, 6202);
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 6209);
					} else {
				dasm_put(Dst, 6213, Dt1(->opline));
					}
#line 10404 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|1:
			//|	// if (EXPECTED((int)num_args < op_array->last_var)) {
			dasm_put(Dst, 64);
#line 10407 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (func) {
				//|	mov edx, (func->op_array.last_var)
				dasm_put(Dst, 5526, (func->op_array.last_var));
#line 10409 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	mov edx, dword [r0 + offsetof(zend_op_array, last_var)]
				dasm_put(Dst, 6064, offsetof(zend_op_array, last_var));
#line 10411 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	sub edx, ecx
			//|	jle >3 //???
			//|	// zval *var = EX_VAR_NUM(num_args);
			dasm_put(Dst, 6218);
#line 10415 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
//			|.if X64
//				|	movsxd r1, ecx
//			|.endif
			//|	shl r1, 4
			//|	lea r1, [FP + r1 + (ZEND_CALL_FRAME_SLOT * sizeof(zval))]
			//|2:
			//|	SET_Z_TYPE_INFO r1, IS_UNDEF
			//|	sub edx, 1
			//|	lea r1, [r1 + 16]
			//|	jne <2
			//|3:
			dasm_put(Dst, 6225, (ZEND_CALL_FRAME_SLOT * sizeof(zval)), offsetof(zval,u1.type_info), IS_UNDEF, 16);
#line 10426 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (ZEND_OBSERVER_ENABLED) {
			//|	SAVE_IP
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
#line 10430 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG1a, FP
			//|	EXT_CALL zend_observer_fcall_begin, r0
			dasm_put(Dst, 67);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_observer_fcall_begin)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_observer_fcall_begin));
					} else {
					if (IS_SIGNED_32BIT(zend_observer_fcall_begin)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_observer_fcall_begin));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_observer_fcall_begin)), (unsigned int)((((ptrdiff_t)zend_observer_fcall_begin))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10432 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (trace) {
			if (!func && (opline->opcode != ZEND_DO_UCALL)) {
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 10437 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
#ifdef CONTEXT_THREADED_JIT
			//|	call ->context_threaded_call
			dasm_put(Dst, 1882);
#line 10441 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!func && (opline->opcode != ZEND_DO_UCALL)) {
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 10443 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	call ->context_threaded_call
			dasm_put(Dst, 1882);
#line 10445 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!func) {
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 10447 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
#else
			if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
				//|	ADD_HYBRID_SPAD
				#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
				dasm_put(Dst, 102);
				#endif
#line 10451 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	JMP_IP
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 107);
					} else {
				dasm_put(Dst, 112, Dt1(->opline));
					}
#line 10452 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (GCC_GLOBAL_REGS) {
				//|	add r4, SPAD // stack alignment
				//|	JMP_IP
				dasm_put(Dst, 120);
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 107);
					} else {
				dasm_put(Dst, 112, Dt1(->opline));
					}
#line 10455 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	mov FP, aword T2 // restore FP
				//|	mov RX, aword T3 // restore IP
				//|	add r4, NR_SPAD // stack alignment
				//|	mov r0, 1 // ZEND_VM_ENTER
				//|	ret
				dasm_put(Dst, 125);
#line 10461 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
#endif
	}

	if ((!func || func->type == ZEND_INTERNAL_FUNCTION)
	 && (opline->opcode != ZEND_DO_UCALL)) {
		if (!func && (opline->opcode != ZEND_DO_ICALL)) {
			//|8:
			dasm_put(Dst, 4301);
#line 10470 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->opcode == ZEND_DO_FCALL_BY_NAME) {
			if (!func) {
				if (trace) {
					uint32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);

					exit_addr = zend_jit_trace_get_exit_addr(exit_point);
					if (!exit_addr) {
						return 0;
					}
					//|	test dword [r0 + offsetof(zend_op_array, fn_flags)], ZEND_ACC_DEPRECATED
					//|	jnz &exit_addr
					dasm_put(Dst, 5989, offsetof(zend_op_array, fn_flags), ZEND_ACC_DEPRECATED, (ptrdiff_t)(exit_addr));
#line 10482 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	test dword [r0 + offsetof(zend_op_array, fn_flags)], ZEND_ACC_DEPRECATED
					//|	jnz >1
						//|.cold_code
						dasm_put(Dst, 5935, offsetof(zend_op_array, fn_flags), ZEND_ACC_DEPRECATED);
#line 10486 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 10487 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!GCC_GLOBAL_REGS) {
						//|	mov FCARG1a, RX
						dasm_put(Dst, 517);
#line 10489 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	EXT_CALL zend_jit_deprecated_helper, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_deprecated_helper)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_deprecated_helper));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_deprecated_helper)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_deprecated_helper));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_deprecated_helper)), (unsigned int)((((ptrdiff_t)zend_jit_deprecated_helper))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 10491 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	test al, al
					//|	mov r0, EX:RX->func // reload
					//|	jne >1
					//|	jmp ->exception_handler
					//|.code
					dasm_put(Dst, 6026, Dt1(->func));
#line 10496 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 10497 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (func->common.fn_flags & ZEND_ACC_DEPRECATED) {
				if (!GCC_GLOBAL_REGS) {
					//|	mov FCARG1a, RX
					dasm_put(Dst, 517);
#line 10501 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	EXT_CALL zend_jit_deprecated_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_deprecated_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_deprecated_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_deprecated_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_deprecated_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_deprecated_helper)), (unsigned int)((((ptrdiff_t)zend_jit_deprecated_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 10503 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	test al, al
				//|	je ->exception_handler
				//|	mov r0, EX:RX->func // reload
				dasm_put(Dst, 6256, Dt1(->func));
#line 10506 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}

		//|	// ZVAL_NULL(EX_VAR(opline->result.var));
		//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
			if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
				}
			} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(res_addr)) {
		dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(res_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 10511 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_Z_TYPE_INFO FCARG2a, IS_NULL
		dasm_put(Dst, 328, offsetof(zval,u1.type_info), IS_NULL);
#line 10512 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|	// EG(current_execute_data) = execute_data;
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, current_execute_data, RX, r1
				if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
		dasm_put(Dst, 481, &executor_globals.current_execute_data);
				} else {
		dasm_put(Dst, 6101, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
				}
#line 10515 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		zend_jit_reset_last_valid_opline();

		//|	// fbc->internal_function.handler(call, ret);
		//|	mov FCARG1a, RX
		dasm_put(Dst, 517);
#line 10520 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (func) {
			//|	EXT_CALL func->internal_function.handler, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(func->internal_function.handler)) {
			dasm_put(Dst, 46, (ptrdiff_t)(func->internal_function.handler));
					} else {
					if (IS_SIGNED_32BIT(func->internal_function.handler)) {
			dasm_put(Dst, 50, ((ptrdiff_t)func->internal_function.handler));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)func->internal_function.handler)), (unsigned int)((((ptrdiff_t)func->internal_function.handler))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10522 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	call aword [r0 + offsetof(zend_internal_function, handler)]
			dasm_put(Dst, 6267, offsetof(zend_internal_function, handler));
#line 10524 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|	// EG(current_execute_data) = execute_data;
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, current_execute_data, FP, r0
				if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
		dasm_put(Dst, 6272, &executor_globals.current_execute_data);
				} else {
		dasm_put(Dst, 6278, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
				}
#line 10528 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|	// zend_vm_stack_free_args(call);
		if (func && !unknown_num_args) {
			for (i = 0; i < call_num_args; i++ ) {
				uint32_t offset = EX_NUM_TO_VAR(i);
				//|	ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset), MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN, 0, 1, opline
					if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
						if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							if (1) {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset)) == IS_MEM_ZVAL);
				dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				dasm_put(Dst, 64);
							} else {
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset)) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
							}
						}
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset)) == IS_MEM_ZVAL);
				dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset)));
						if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || RC_MAY_BE_1(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN)) {
							if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN)) {
								if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 317);
								} else {
				dasm_put(Dst, 322);
								}
							}
					do {
						if (!((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD)
						 && has_concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
							if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 342);
							}
				dasm_put(Dst, 347);
						}
						if (0 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
							if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_GUARD)) {
								zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
					ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset)) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_RX, offset))+offsetof(zval, u1.v.type), IS_REFERENCE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
							}
				dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
						}
						if (1 && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
				dasm_put(Dst, 383);
						}
				dasm_put(Dst, 389);
					}
#line 10534 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	mov FCARG1a, RX
			//|	EXT_CALL zend_jit_vm_stack_free_args_helper, r0
			dasm_put(Dst, 517);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_vm_stack_free_args_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_vm_stack_free_args_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_vm_stack_free_args_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_vm_stack_free_args_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_vm_stack_free_args_helper)), (unsigned int)((((ptrdiff_t)zend_jit_vm_stack_free_args_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10538 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (may_have_extra_named_params) {
			//|	test byte [RX + offsetof(zend_execute_data, This.u1.type_info) + 3], (ZEND_CALL_HAS_EXTRA_NAMED_PARAMS >> 24)
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6286, offsetof(zend_execute_data, This.u1.type_info) + 3, (ZEND_CALL_HAS_EXTRA_NAMED_PARAMS >> 24));
#line 10543 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	mov FCARG1a, aword [RX + offsetof(zend_execute_data, extra_named_params)]
			//|	EXT_CALL zend_free_extra_named_params, r0
			dasm_put(Dst, 6298, offsetof(zend_execute_data, extra_named_params));
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_free_extra_named_params)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_free_extra_named_params));
					} else {
					if (IS_SIGNED_32BIT(zend_free_extra_named_params)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_free_extra_named_params));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_free_extra_named_params)), (unsigned int)((((ptrdiff_t)zend_free_extra_named_params))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10546 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >2
			//|.code
			dasm_put(Dst, 2912);
#line 10548 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|2:
			dasm_put(Dst, 2037);
#line 10549 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|8:
		dasm_put(Dst, 4301);
#line 10552 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_DO_FCALL) {
			// TODO: optimize ???
			//|	// if (UNEXPECTED(ZEND_CALL_INFO(call) & ZEND_CALL_RELEASE_THIS))
			//|	test byte [RX + offsetof(zend_execute_data, This.u1.type_info) + 2], (ZEND_CALL_RELEASE_THIS >> 16)
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6286, offsetof(zend_execute_data, This.u1.type_info) + 2, (ZEND_CALL_RELEASE_THIS >> 16));
#line 10558 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	GET_Z_PTR FCARG1a, RX + offsetof(zend_execute_data, This)
			//|	// OBJ_RELEASE(object);
			//|	OBJ_RELEASE ZREG_FCARG1a, >2
			dasm_put(Dst, 6305, offsetof(zend_execute_data, This), (ZREG_FCARG1a), 0);
				if (ZREG_FCARG1a != ZREG_FCARG1a) {
			dasm_put(Dst, 2322, (ZREG_FCARG1a));
				}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
			dasm_put(Dst, 6324, (ZREG_FCARG1a), (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (ZREG_FCARG1a != ZREG_FCARG1a) {
			dasm_put(Dst, 2322, (ZREG_FCARG1a));
				}
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10562 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >2
			//|.code
			dasm_put(Dst, 6343);
#line 10564 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|2:
			dasm_put(Dst, 2037);
#line 10565 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
		    !JIT_G(current_frame) ||
		    !JIT_G(current_frame)->call ||
		    !TRACE_FRAME_IS_NESTED(JIT_G(current_frame)->call) ||
		    prev_opline->opcode == ZEND_SEND_UNPACK ||
		    prev_opline->opcode == ZEND_SEND_ARRAY ||
			prev_opline->opcode == ZEND_CHECK_UNDEF_ARGS) {

			//|	// zend_vm_stack_free_call_frame(call);
			//|	test byte [RX + offsetof(zend_execute_data, This.u1.type_info) + 2], (ZEND_CALL_ALLOCATED >> 16)
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6286, offsetof(zend_execute_data, This.u1.type_info) + 2, (ZEND_CALL_ALLOCATED >> 16));
#line 10579 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	mov FCARG1a, RX
			//|	EXT_CALL zend_jit_free_call_frame, r0
			dasm_put(Dst, 6351);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_free_call_frame)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_free_call_frame));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_free_call_frame)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_free_call_frame));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_free_call_frame)), (unsigned int)((((ptrdiff_t)zend_jit_free_call_frame))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10582 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >1
			//|.code
			dasm_put(Dst, 3783);
#line 10584 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, vm_stack_top, RX, r0
				if (IS_SIGNED_32BIT(&executor_globals.vm_stack_top)) {
		dasm_put(Dst, 481, &executor_globals.vm_stack_top);
				} else {
		dasm_put(Dst, 487, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_top)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_top))>>32));
				}
#line 10586 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 10587 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (!RETURN_VALUE_USED(opline)) {
			zend_class_entry *ce;
			zend_bool ce_is_instanceof;
			uint32_t func_info = call_info ?
				zend_get_func_info(call_info, ssa, &ce, &ce_is_instanceof) :
				(MAY_BE_ANY|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN);

			/* If an exception is thrown, the return_value may stay at the
			 * original value of null. */
			func_info |= MAY_BE_NULL;

			if (func_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
				//|	ZVAL_PTR_DTOR res_addr, func_info, 1, 1, opline
					if ((func_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
						if ((func_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							if (1) {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 277, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				dasm_put(Dst, 64);
							} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
							}
						}
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 306, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						if (((func_info) & MAY_BE_GUARD) || RC_MAY_BE_1(func_info)) {
							if (((func_info) & MAY_BE_GUARD) || RC_MAY_BE_N(func_info)) {
								if (1 && (((func_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(func_info) && ((func_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 317);
								} else {
				dasm_put(Dst, 322);
								}
							}
					do {
						if (!((func_info) & MAY_BE_GUARD)
						 && has_concrete_type((func_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((func_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((func_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((func_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
							if (1 && (((func_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(func_info) && ((func_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				dasm_put(Dst, 342);
							}
				dasm_put(Dst, 347);
						}
						if (1 && (((func_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(func_info) && ((func_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
							if ((func_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
								zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
							}
				dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
						if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
				dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
						} else {
						if (IS_SIGNED_32BIT(gc_possible_root)) {
				dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
						}
				dasm_put(Dst, 60);
						}
						}
						if (1 && ((func_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
				dasm_put(Dst, 383);
						}
				dasm_put(Dst, 389);
					}
#line 10601 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}

		//|	// if (UNEXPECTED(EG(exception) != NULL)) {
		//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.exception)) {
		dasm_put(Dst, 72, &executor_globals.exception);
				} else {
		dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
				}
#line 10606 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jne ->icall_throw_handler
		dasm_put(Dst, 6358);
#line 10607 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		// TODO: Can we avoid checking for interrupts after each call ???
		if (trace && last_valid_opline != opline) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline + 1, ZEND_JIT_EXIT_TO_VM);

			exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if (!exit_addr) {
				return 0;
			}
		} else {
			exit_addr = NULL;
		}
		if (!zend_jit_check_timeout(Dst, opline + 1, exit_addr)) {
			return 0;
		}

		if ((!trace || !func) && opline->opcode != ZEND_DO_ICALL) {
			//|	LOAD_IP_ADDR (opline + 1)
				if (GCC_GLOBAL_REGS) {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 498, ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32));
					}
				} else {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32), Dt1(->opline));
					}
				}
#line 10625 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (trace
		 && trace->op == ZEND_JIT_TRACE_END
		 && trace->stop == ZEND_JIT_TRACE_STOP_INTERPRETER) {
			//|	LOAD_IP_ADDR (opline + 1)
				if (GCC_GLOBAL_REGS) {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 498, ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32));
					}
				} else {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32), Dt1(->opline));
					}
				}
#line 10629 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!func) {
		//|9:
		dasm_put(Dst, 4204);
#line 10634 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_send_val(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr)
{
	uint32_t arg_num = opline->op2.num;
	zend_jit_addr arg_addr;

	ZEND_ASSERT(opline->opcode == ZEND_SEND_VAL || arg_num <= MAX_ARG_FLAG_NUM);

	if (!zend_jit_reuse_ip(Dst)) {
		return 0;
	}

	if (opline->opcode == ZEND_SEND_VAL_EX) {
		uint32_t mask = ZEND_SEND_BY_REF << ((arg_num + 3) * 2);

		ZEND_ASSERT(arg_num <= MAX_ARG_FLAG_NUM);

		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
		 && JIT_G(current_frame)
		 && JIT_G(current_frame)->call
		 && JIT_G(current_frame)->call->func) {
			if (ARG_MUST_BE_SENT_BY_REF(JIT_G(current_frame)->call->func, arg_num)) {
				/* Don't generate code that always throws exception */
				return 0;
			}
		} else if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if (!exit_addr) {
				return 0;
			}
			//|	mov r0, EX:RX->func
			//|	test dword [r0 + offsetof(zend_function, quick_arg_flags)], mask
			//|	jnz &exit_addr
			dasm_put(Dst, 5985, Dt1(->func), offsetof(zend_function, quick_arg_flags), mask, (ptrdiff_t)(exit_addr));
#line 10672 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov r0, EX:RX->func
			//|	test dword [r0 + offsetof(zend_function, quick_arg_flags)], mask
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6363, Dt1(->func), offsetof(zend_function, quick_arg_flags), mask);
#line 10677 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	SET_EX_OPLINE opline, r0
			dasm_put(Dst, 64);
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 10679 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp ->throw_cannot_pass_by_ref
			//|.code
			dasm_put(Dst, 6378);
#line 10681 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		}
	}

	arg_addr = ZEND_ADDR_MEM_ZVAL(ZREG_RX, opline->result.var);

	if (opline->op1_type == IS_CONST) {
		zval *zv = RT_CONSTANT(opline, opline->op1);

		//|	ZVAL_COPY_CONST arg_addr, MAY_BE_ANY, MAY_BE_ANY, zv, ZREG_R0
			if (Z_TYPE_P(zv) > IS_TRUE) {
				if (Z_TYPE_P(zv) == IS_DOUBLE) {
					zend_reg dst_reg = (Z_MODE(arg_addr) == IS_REG) ? Z_REG(arg_addr) : ZREG_XMM0;
					if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
						if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						} else {
		dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						}
					} else if (!IS_SIGNED_32BIT(zv)) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)zv)), (unsigned int)((((uintptr_t)zv))>>32));
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
			} else {
		dasm_put(Dst, 2000, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
			}
					} else {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
			} else {
		dasm_put(Dst, 1960, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
			}
					}
			if (Z_MODE(arg_addr) == IS_REG) {
				if (dst_reg != Z_REG(arg_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			} else {
		dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
			}
				} else if (Z_TYPE_P(zv) == IS_LONG && MAY_BE_ANY == MAY_BE_DOUBLE) {
					zend_reg dst_reg = (Z_MODE(arg_addr) == IS_REG) ? Z_REG(arg_addr) : ZREG_XMM0;
				if (Z_LVAL_P(zv) == 0) {
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					} else {
		dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					}
				} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
					} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
					}
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2730, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
					} else {
		dasm_put(Dst, 2754, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
					}
				}
			if (Z_MODE(arg_addr) == IS_REG) {
				if (dst_reg != Z_REG(arg_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			} else {
		dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
			}
				} else if (Z_LVAL_P(zv) == 0 && Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
							if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
							} else {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
			if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R0), (Z_REG(arg_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
							}
						} else {
			if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(zv));
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 3894, (Z_REG(arg_addr)), Z_OFFSET(arg_addr), Z_LVAL_P(zv));
			}
						}
				}
			}
			if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
				if (MAY_BE_ANY == MAY_BE_DOUBLE) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
					}
				} else if (((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (MAY_BE_ANY & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
				}
			}
#line 10691 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REFCOUNTED_P(zv)) {
			//|	ADDREF_CONST zv, r0
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 6384, (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
					} else {
			dasm_put(Dst, 3918, Z_LVAL_P(zv));
					}
#line 10693 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
						}
					} else if (Z_MODE(arg_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(arg_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
					}
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(arg_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(arg_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
			}
					} else if (Z_MODE(arg_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(arg_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(arg_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
			}
					}
				} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
			}
			if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(op1_info & MAY_BE_GUARD) &&
				has_concrete_type(op1_info & MAY_BE_ANY)) {
				if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(op1_info);
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
			}
#line 10696 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_check_undef_args(dasm_State **Dst, const zend_op *opline)
{
	//|	mov FCARG1a, EX->call
	//|	test byte [FCARG1a + offsetof(zend_execute_data, This.u1.type_info) + 3], (ZEND_CALL_MAY_HAVE_UNDEF >> 24)
	//|	jnz >1
	//|.cold_code
	dasm_put(Dst, 6392, Dt1(->call), offsetof(zend_execute_data, This.u1.type_info) + 3, (ZEND_CALL_MAY_HAVE_UNDEF >> 24));
#line 10707 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|1:
	//|	SET_EX_OPLINE opline, r0
	dasm_put(Dst, 64);
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
#line 10709 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	EXT_CALL zend_handle_undef_args, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_handle_undef_args)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_handle_undef_args));
			} else {
			if (IS_SIGNED_32BIT(zend_handle_undef_args)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_handle_undef_args));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_handle_undef_args)), (unsigned int)((((ptrdiff_t)zend_handle_undef_args))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 10710 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	test r0, r0
	//|	jnz ->exception_handler
	//|	jmp >2
	//|.code
	dasm_put(Dst, 6407);
#line 10714 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|2:
	dasm_put(Dst, 2037);
#line 10715 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_send_ref(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info, int cold)
{
	zend_jit_addr op1_addr, arg_addr, ref_addr;

	op1_addr = OP1_ADDR();
	arg_addr = ZEND_ADDR_MEM_ZVAL(ZREG_RX, opline->result.var);

	if (!zend_jit_reuse_ip(Dst)) {
		return 0;
	}

	if (opline->op1_type == IS_VAR) {
		if (op1_info & MAY_BE_INDIRECT) {
			//|	LOAD_ZVAL_ADDR r0, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 6420, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 6428, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 10733 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	// if (EXPECTED(Z_TYPE_P(ret) == IS_INDIRECT)) {
			//|	IF_NOT_Z_TYPE r0, IS_INDIRECT, >1
			//|	// ret = Z_INDIRECT_P(ret);
			//|	GET_Z_PTR r0, r0
			//|1:
			dasm_put(Dst, 3789, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 10738 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);
		}
	} else if (opline->op1_type == IS_CV) {
		if (op1_info & MAY_BE_UNDEF) {
			if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO op1_addr, IS_NULL
				dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10745 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp >2
				//|1:
				dasm_put(Dst, 6434, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 10747 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			op1_info &= ~MAY_BE_UNDEF;
			op1_info |= MAY_BE_NULL;
		}
	} else {
		ZEND_UNREACHABLE();
	}

	if (op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) {
		if (op1_info & MAY_BE_REF) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_REFERENCE, >2
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10758 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GET_ZVAL_PTR r1, op1_addr
			dasm_put(Dst, 2224, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10759 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GC_ADDREF r1
			//|	SET_ZVAL_PTR arg_addr, r1
			dasm_put(Dst, 6449, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
#line 10761 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO arg_addr, IS_REFERENCE_EX
			dasm_put(Dst, 6460, (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
#line 10762 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >6
			dasm_put(Dst, 6468, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), IS_REFERENCE_EX);
#line 10763 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|2:
		//|	// ZVAL_NEW_REF(arg, varptr);
		dasm_put(Dst, 2037);
#line 10766 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op1_type == IS_VAR) {
			if (Z_REG(op1_addr) != ZREG_R0 || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR r0, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 6420, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 6428, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 10769 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	mov aword T1, r0 // save
			dasm_put(Dst, 3512);
#line 10771 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	EMALLOC sizeof(zend_reference), op_array, opline
		#if ZEND_DEBUG
				const char *filename = op_array->filename ? op_array->filename->val : NULL;
		dasm_put(Dst, 702, sizeof(zend_reference));
				if (IS_SIGNED_32BIT(filename)) {
		dasm_put(Dst, 707, ((ptrdiff_t)filename));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)filename)), (unsigned int)((((ptrdiff_t)filename))>>32));
				}
		dasm_put(Dst, 6481, opline->lineno);
				if (IS_32BIT(dasm_end) && IS_32BIT(_emalloc)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_emalloc));
				} else {
				if (IS_SIGNED_32BIT(_emalloc)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_emalloc));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_emalloc)), (unsigned int)((((ptrdiff_t)_emalloc))>>32));
				}
		dasm_put(Dst, 60);
				}
		#else
		#ifdef HAVE_BUILTIN_CONSTANT_P
			if (sizeof(zend_reference) > 24 && sizeof(zend_reference) <= 32) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_emalloc_32)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_emalloc_32));
				} else {
				if (IS_SIGNED_32BIT(_emalloc_32)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_emalloc_32));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_emalloc_32)), (unsigned int)((((ptrdiff_t)_emalloc_32))>>32));
				}
		dasm_put(Dst, 60);
				}
			} else {
		dasm_put(Dst, 702, sizeof(zend_reference));
				if (IS_32BIT(dasm_end) && IS_32BIT(_emalloc)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_emalloc));
				} else {
				if (IS_SIGNED_32BIT(_emalloc)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_emalloc));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_emalloc)), (unsigned int)((((ptrdiff_t)_emalloc))>>32));
				}
		dasm_put(Dst, 60);
				}
			}
		#else
		dasm_put(Dst, 702, sizeof(zend_reference));
				if (IS_32BIT(dasm_end) && IS_32BIT(_emalloc)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_emalloc));
				} else {
				if (IS_SIGNED_32BIT(_emalloc)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_emalloc));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_emalloc)), (unsigned int)((((ptrdiff_t)_emalloc))>>32));
				}
		dasm_put(Dst, 60);
				}
		#endif
		#endif
#line 10773 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov dword [r0], 2
		//|	mov dword [r0 + offsetof(zend_reference, gc.u.type_info)], GC_REFERENCE
		//|	mov aword [r0 + offsetof(zend_reference, sources.ptr)], 0
		dasm_put(Dst, 6490, offsetof(zend_reference, gc.u.type_info), GC_REFERENCE, offsetof(zend_reference, sources.ptr));
#line 10776 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, offsetof(zend_reference, val));
		if (opline->op1_type == IS_VAR) {
			zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R1, 0);

			//|	mov r1, aword T1 // restore
			//|	ZVAL_COPY_VALUE ref_addr, MAY_BE_ANY, val_addr, op1_info, ZREG_R2, ZREG_R2
			dasm_put(Dst, 6509);
				if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(ref_addr) != IS_REG || Z_REG(ref_addr) != Z_REG(val_addr)) {
				if (Z_MODE(ref_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(ref_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
							}
						} else if (Z_MODE(ref_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(ref_addr)), (Z_REG(ref_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(ref_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(ref_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(ref_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(ref_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(ref_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(ref_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(ref_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
						}
					} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(ref_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(ref_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
				}
						} else if (Z_MODE(ref_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(ref_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(ref_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(ref_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(ref_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(ref_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(ref_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(ref_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ref_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ref_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
				}
						}
					} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
				}
				if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(op1_info & MAY_BE_GUARD) &&
					has_concrete_type(op1_info & MAY_BE_ANY)) {
					if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(op1_info);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info));
				}
#line 10782 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_PTR val_addr, r0
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 10783 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO val_addr, IS_REFERENCE_EX
			dasm_put(Dst, 2285, (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info), IS_REFERENCE_EX);
#line 10784 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	ZVAL_COPY_VALUE ref_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R1, ZREG_R2
				if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_addr) == IS_REG) {
							if (Z_MODE(ref_addr) != IS_REG || Z_REG(ref_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(ref_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ref_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
							}
						} else if (Z_MODE(ref_addr) == IS_REG) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(ref_addr)), (Z_REG(ref_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(ref_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(ref_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(ref_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_REG(ref_addr) != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ref_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(ref_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(ref_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
						}
					} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_MODE(ref_addr) == IS_REG) {
					if (Z_REG(op1_addr) != Z_REG(ref_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
				}
						} else if (Z_MODE(ref_addr) == IS_REG) {
				if (Z_MODE(op1_addr) != IS_REG || Z_REG(ref_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(ref_addr)-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(ref_addr)-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(ref_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(ref_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(ref_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(ref_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ref_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ref_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
				}
						}
					} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
				}
				if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(op1_info & MAY_BE_GUARD) &&
					has_concrete_type(op1_info & MAY_BE_ANY)) {
					if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
						if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(op1_info);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info));
				}
#line 10786 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_PTR op1_addr, r0
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10787 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO op1_addr, IS_REFERENCE_EX
			dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_REFERENCE_EX);
#line 10788 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_ZVAL_PTR arg_addr, r0
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
#line 10790 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO arg_addr, IS_REFERENCE_EX
		dasm_put(Dst, 2285, (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), IS_REFERENCE_EX);
#line 10791 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|6:
	//|	FREE_OP opline->op1_type, opline->op1, op1_info, !cold, opline
	dasm_put(Dst, 3385);
		if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (!cold) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
			if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op1_info) & MAY_BE_GUARD)
			 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (!cold && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 10795 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|7:
	dasm_put(Dst, 4449);
#line 10796 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_send_var(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info, zend_jit_addr op1_addr, zend_jit_addr op1_def_addr)
{
	uint32_t arg_num = opline->op2.num;
	zend_jit_addr arg_addr;

	ZEND_ASSERT((opline->opcode != ZEND_SEND_VAR_EX &&
	     opline->opcode != ZEND_SEND_VAR_NO_REF_EX) ||
	    arg_num <= MAX_ARG_FLAG_NUM);

	arg_addr = ZEND_ADDR_MEM_ZVAL(ZREG_RX, opline->result.var);

	if (!zend_jit_reuse_ip(Dst)) {
		return 0;
	}

	if (opline->opcode == ZEND_SEND_VAR_EX) {
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
		 && JIT_G(current_frame)
		 && JIT_G(current_frame)->call
		 && JIT_G(current_frame)->call->func) {
			if (ARG_SHOULD_BE_SENT_BY_REF(JIT_G(current_frame)->call->func, arg_num)) {
				if (!zend_jit_send_ref(Dst, opline, op_array, op1_info, 0)) {
					return 0;
				}
				return 1;
			}
		} else {
			uint32_t mask = (ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF) << ((arg_num + 3) * 2);

			//|	mov r0, EX:RX->func
			//|	test dword [r0 + offsetof(zend_function, quick_arg_flags)], mask
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6363, Dt1(->func), offsetof(zend_function, quick_arg_flags), mask);
#line 10833 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 10834 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!zend_jit_send_ref(Dst, opline, op_array, op1_info, 1)) {
				return 0;
			}
			//|	jmp >7
			//|.code
			dasm_put(Dst, 6514);
#line 10839 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opline->opcode == ZEND_SEND_VAR_NO_REF_EX) {
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
		 && JIT_G(current_frame)
		 && JIT_G(current_frame)->call
		 && JIT_G(current_frame)->call->func) {
			if (ARG_SHOULD_BE_SENT_BY_REF(JIT_G(current_frame)->call->func, arg_num)) {

				//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R1, ZREG_R2
					if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(op1_addr) == IS_REG) {
								if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
								}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_REG(arg_addr) != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
							}
						} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_MODE(arg_addr) == IS_REG) {
						if (Z_REG(op1_addr) != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(op1_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(arg_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							}
						} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						}
					}
					if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(op1_info & MAY_BE_GUARD) &&
						has_concrete_type(op1_info & MAY_BE_ANY)) {
						if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
							if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(op1_info);
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
					}
#line 10848 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

				if (!ARG_MAY_BE_SENT_BY_REF(JIT_G(current_frame)->call->func, arg_num)) {
					if (!(op1_info & MAY_BE_REF)) {
						/* Don't generate code that always throws exception */
						return 0;
					} else {
						int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
						const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);
						if (!exit_addr) {
							return 0;
						}
						//|	cmp cl, IS_REFERENCE
						//|	jne &exit_addr
						dasm_put(Dst, 6520, IS_REFERENCE, (ptrdiff_t)(exit_addr));
#line 10861 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				return 1;
			}
		} else {
			uint32_t mask = (ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF) << ((arg_num + 3) * 2);

			//|	mov r0, EX:RX->func
			//|	test dword [r0 + offsetof(zend_function, quick_arg_flags)], mask
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6363, Dt1(->func), offsetof(zend_function, quick_arg_flags), mask);
#line 10872 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 10873 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			mask = ZEND_SEND_PREFER_REF << ((arg_num + 3) * 2);

			//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R1, ZREG_R2
				if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_addr) == IS_REG) {
							if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(arg_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
							}
						} else if (Z_MODE(arg_addr) == IS_REG) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_REG(arg_addr) != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(arg_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
						}
					} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_REG(op1_addr) != Z_REG(arg_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
				}
						} else if (Z_MODE(arg_addr) == IS_REG) {
				if (Z_MODE(op1_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(arg_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(arg_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
				}
						}
					} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
				}
				if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(op1_info & MAY_BE_GUARD) &&
					has_concrete_type(op1_info & MAY_BE_ANY)) {
					if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
						if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(op1_info);
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
				}
#line 10877 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & MAY_BE_REF) {
				//|	cmp cl, IS_REFERENCE
				//|	je >7
				dasm_put(Dst, 6528, IS_REFERENCE);
#line 10880 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	test dword [r0 + offsetof(zend_function, quick_arg_flags)], mask
			//|	jnz >7
			dasm_put(Dst, 6537, offsetof(zend_function, quick_arg_flags), mask);
#line 10883 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);
				if (!exit_addr) {
					return 0;
				}
				//|	jmp &exit_addr
				dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 10890 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 10892 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	LOAD_ZVAL_ADDR FCARG1a, arg_addr
					if (Z_MODE(arg_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(arg_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(arg_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(arg_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(arg_addr)))>>32));
						}
					} else if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(arg_addr)) {
				dasm_put(Dst, 2314, (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(arg_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 10893 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_only_vars_by_reference, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_only_vars_by_reference)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_only_vars_by_reference));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_only_vars_by_reference)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_only_vars_by_reference));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_only_vars_by_reference)), (unsigned int)((((ptrdiff_t)zend_jit_only_vars_by_reference))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 10894 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!zend_jit_check_exception(Dst)) {
					return 0;
				}
				//|	jmp >7
				dasm_put(Dst, 3722);
#line 10898 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			//|.code
			dasm_put(Dst, 387);
#line 10901 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opline->opcode == ZEND_SEND_FUNC_ARG) {
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
		 && JIT_G(current_frame)
		 && JIT_G(current_frame)->call
		 && JIT_G(current_frame)->call->func) {
			if (ARG_SHOULD_BE_SENT_BY_REF(JIT_G(current_frame)->call->func, arg_num)) {
				if (!zend_jit_send_ref(Dst, opline, op_array, op1_info, 0)) {
					return 0;
				}
				return 1;
			}
		} else {
			//|	test dword [RX + offsetof(zend_execute_data, This.u1.type_info)], ZEND_CALL_SEND_ARG_BY_REF
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 6547, offsetof(zend_execute_data, This.u1.type_info), ZEND_CALL_SEND_ARG_BY_REF);
#line 10917 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 10918 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!zend_jit_send_ref(Dst, opline, op_array, op1_info, 1)) {
				return 0;
			}
			//|	jmp >7
			//|.code
			dasm_put(Dst, 6514);
#line 10923 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op1_info & MAY_BE_UNDEF) {
		if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
			//|	IF_ZVAL_TYPE op1_addr, IS_UNDEF, >1
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10929 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.cold_code
			dasm_put(Dst, 3945, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 10930 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 10931 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 10934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1d, opline->op1.var
		//|	EXT_CALL zend_jit_undefined_op_helper, r0
		dasm_put(Dst, 2311, opline->op1.var);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 10936 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO arg_addr, IS_NULL
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
#line 10937 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	test r0, r0
		//|	jz ->exception_handler
		dasm_put(Dst, 6559, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 10939 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
			//|	jmp >7
			//|.code
			dasm_put(Dst, 6514);
#line 10943 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|7:
			dasm_put(Dst, 4449);
#line 10945 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			return 1;
		}
	}

	if (opline->opcode == ZEND_SEND_VAR_NO_REF) {
		//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R1, ZREG_R2
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
						}
					} else if (Z_MODE(arg_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(arg_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(arg_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
					}
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(arg_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(arg_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
			}
					} else if (Z_MODE(arg_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(arg_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(arg_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
			}
			}
					}
				} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
			}
			if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(op1_info & MAY_BE_GUARD) &&
				has_concrete_type(op1_info & MAY_BE_ANY)) {
				if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(op1_info);
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
			}
#line 10951 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & MAY_BE_REF) {
			//|	cmp cl, IS_REFERENCE
			//|	je >7
			dasm_put(Dst, 6528, IS_REFERENCE);
#line 10954 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if (!exit_addr) {
				return 0;
			}
			//|	jmp &exit_addr
			dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 10962 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 10964 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	LOAD_ZVAL_ADDR FCARG1a, arg_addr
				if (Z_MODE(arg_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(arg_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(arg_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(arg_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(arg_addr)))>>32));
					}
				} else if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(arg_addr)) {
			dasm_put(Dst, 2314, (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(arg_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 10965 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_jit_only_vars_by_reference, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_only_vars_by_reference)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_only_vars_by_reference));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_only_vars_by_reference)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_only_vars_by_reference));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_only_vars_by_reference)), (unsigned int)((((ptrdiff_t)zend_jit_only_vars_by_reference))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 10966 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!zend_jit_check_exception(Dst)) {
				return 0;
			}
		}
	} else {
		if (op1_info & MAY_BE_REF) {
			if (opline->op1_type == IS_CV) {
				zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);

				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 10976 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	ZVAL_DEREF FCARG1a, op1_info
					if (op1_info & MAY_BE_REF) {
				dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
					}
#line 10977 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, val_addr, op1_info, ZREG_R0, ZREG_R2
					if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(val_addr) == IS_REG) {
								if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(val_addr)) {
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
								}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(val_addr)));
								}
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else if (Z_MODE(val_addr) == IS_REG) {
						if (Z_REG(arg_addr) != Z_REG(val_addr)) {
				dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(arg_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(val_addr)));
								}
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else if (Z_MODE(val_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(val_addr)) {
				dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
							}
						} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(val_addr) == IS_REG) {
					if (Z_MODE(arg_addr) == IS_REG) {
						if (Z_REG(val_addr) != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(val_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(val_addr)) {
						if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(val_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(val_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					}
						} else if (Z_MODE(val_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
						if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					}
						} else if (Z_MODE(val_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(arg_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							}
						} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						} else {
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						}
					}
					if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(op1_info & MAY_BE_GUARD) &&
						has_concrete_type(op1_info & MAY_BE_ANY)) {
						if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
							if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(op1_info);
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
					}
#line 10978 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	TRY_ADDREF op1_info, ah, r2
					if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (op1_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 2381);
						}
				dasm_put(Dst, 2205);
					}
#line 10979 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 8);

				//|	IF_ZVAL_TYPE op1_addr, IS_REFERENCE, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10983 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 3945, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 10984 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	// zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
				//|	GET_ZVAL_PTR FCARG1a, op1_addr
				dasm_put(Dst, 64);
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 10987 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	// ZVAL_COPY_VALUE(return_value, &ref->value);
				//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, ref_addr, op1_info, ZREG_R0, ZREG_R2
				dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(ref_addr) == IS_REG) {
								if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(ref_addr)) {
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(ref_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
								}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(ref_addr)));
								}
						}
					} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					} else if (Z_MODE(ref_addr) == IS_REG) {
						if (Z_REG(arg_addr) != Z_REG(ref_addr)) {
				dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(arg_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(ref_addr)));
								}
						}
					} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					} else if (Z_MODE(ref_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(ref_addr)) {
				dasm_put(Dst, 1773, (Z_REG(ref_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
							}
						} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(ref_addr) == IS_REG) {
					if (Z_MODE(arg_addr) == IS_REG) {
						if (Z_REG(ref_addr) != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(ref_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(ref_addr)) {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(ref_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(ref_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
						} else if (Z_MODE(ref_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(ref_addr) != IS_REG || ZREG_XMM0 != Z_REG(ref_addr)) {
						if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
						} else if (Z_MODE(ref_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(arg_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							}
						} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						}
					}
					if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(op1_info & MAY_BE_GUARD) &&
						has_concrete_type(op1_info & MAY_BE_ANY)) {
						if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
							if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(op1_info);
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
					}
#line 10989 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	GC_DELREF FCARG1a
				//|	je >1
				//|	IF_NOT_REFCOUNTED ah, >2
				//|	GC_ADDREF r2
				//|	jmp >2
				//|1:
				//|	EFREE_REG_REFERENCE
				dasm_put(Dst, 6575);
				#if ZEND_DEBUG
				dasm_put(Dst, 4094);
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
				#else
				#ifdef HAVE_BUILTIN_CONSTANT_P
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree_32)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree_32));
						} else {
						if (IS_SIGNED_32BIT(_efree_32)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree_32));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree_32)), (unsigned int)((((ptrdiff_t)_efree_32))>>32));
						}
				dasm_put(Dst, 60);
						}
				#else
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
				#endif
				#endif
#line 10996 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp >2
				//|.code
				dasm_put(Dst, 2912);
#line 10998 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
					if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(op1_addr) == IS_REG) {
								if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
								}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_REG(arg_addr) != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
								}
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else if (Z_MODE(op1_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(op1_addr)) {
				dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(arg_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
							}
						} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_MODE(arg_addr) == IS_REG) {
						if (Z_REG(op1_addr) != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							} else if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_MODE(op1_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					}
						} else if (Z_MODE(op1_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(arg_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(arg_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
					}
							}
						} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
						}
					}
					if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(op1_info & MAY_BE_GUARD) &&
						has_concrete_type(op1_info & MAY_BE_ANY)) {
						if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
							if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(op1_info);
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
					}
#line 10999 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|2:
				dasm_put(Dst, 2037);
#line 11000 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (op1_addr != op1_def_addr) {
				if (!zend_jit_update_regs(Dst, opline->op1.var, op1_addr, op1_def_addr, op1_info)) {
					return 0;
				}
				if (Z_MODE(op1_def_addr) == IS_REG && Z_MODE(op1_addr) != IS_REG) {
					op1_addr= op1_def_addr;
				}
			}
			//|	ZVAL_COPY_VALUE arg_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
				if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(op1_addr) == IS_REG) {
							if (Z_MODE(arg_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(arg_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
							}
						} else if (Z_MODE(arg_addr) == IS_REG) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(arg_addr)), (Z_REG(arg_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(arg_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(arg_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(arg_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (Z_REG(arg_addr) != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(arg_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(arg_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(arg_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
						}
					} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_MODE(arg_addr) == IS_REG) {
					if (Z_REG(op1_addr) != Z_REG(arg_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
				}
						} else if (Z_MODE(arg_addr) == IS_REG) {
				if (Z_MODE(op1_addr) != IS_REG || Z_REG(arg_addr) != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(arg_addr)-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(arg_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(arg_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				}
					} else if (Z_MODE(op1_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(arg_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(arg_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(arg_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
				}
				}
						}
					} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(arg_addr)), Z_OFFSET(arg_addr));
					}
				}
				if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(op1_info & MAY_BE_GUARD) &&
					has_concrete_type(op1_info & MAY_BE_ANY)) {
					if (Z_MODE(arg_addr) == IS_MEM_ZVAL) {
						if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(op1_info);
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(arg_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(arg_addr)), Z_OFFSET(arg_addr)+offsetof(zval,u1.type_info));
				}
#line 11011 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->op1_type == IS_CV) {
				//|	TRY_ADDREF op1_info, ah, r2
					if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (op1_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 2381);
						}
				dasm_put(Dst, 2205);
					}
#line 11013 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}
	//|7:
	dasm_put(Dst, 4449);
#line 11017 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_check_func_arg(dasm_State **Dst, const zend_op *opline)
{
	uint32_t arg_num = opline->op2.num;

	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
	 && JIT_G(current_frame)
	 && JIT_G(current_frame)->call
	 && JIT_G(current_frame)->call->func) {
		if (ARG_SHOULD_BE_SENT_BY_REF(JIT_G(current_frame)->call->func, arg_num)) {
			if (!TRACE_FRAME_IS_LAST_SEND_BY_REF(JIT_G(current_frame)->call)) {
				TRACE_FRAME_SET_LAST_SEND_BY_REF(JIT_G(current_frame)->call);
				//|	// ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF);
					if (reuse_ip) {
				//|		or dword [RX + offsetof(zend_execute_data, This.u1.type_info)], ZEND_CALL_SEND_ARG_BY_REF
				dasm_put(Dst, 5687, offsetof(zend_execute_data, This.u1.type_info), ZEND_CALL_SEND_ARG_BY_REF);
					} else {
#line 11036 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|		mov r0, EX->call
				//|		or dword [r0 + offsetof(zend_execute_data, This.u1.type_info)], ZEND_CALL_SEND_ARG_BY_REF
				dasm_put(Dst, 6598, Dt1(->call), offsetof(zend_execute_data, This.u1.type_info), ZEND_CALL_SEND_ARG_BY_REF);
					}
#line 11039 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (!TRACE_FRAME_IS_LAST_SEND_BY_VAL(JIT_G(current_frame)->call)) {
				TRACE_FRAME_SET_LAST_SEND_BY_VAL(JIT_G(current_frame)->call);
				//|	// ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF);
					if (reuse_ip) {
				//|		and dword [RX + offsetof(zend_execute_data, This.u1.type_info)], ~ZEND_CALL_SEND_ARG_BY_REF
				dasm_put(Dst, 6607, offsetof(zend_execute_data, This.u1.type_info), ~ZEND_CALL_SEND_ARG_BY_REF);
					} else {
#line 11047 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|		mov r0, EX->call
				//|		and dword [r0 + offsetof(zend_execute_data, This.u1.type_info)], ~ZEND_CALL_SEND_ARG_BY_REF
				dasm_put(Dst, 6613, Dt1(->call), offsetof(zend_execute_data, This.u1.type_info), ~ZEND_CALL_SEND_ARG_BY_REF);
					}
#line 11050 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else {
		// if (QUICK_ARG_SHOULD_BE_SENT_BY_REF(EX(call)->func, arg_num)) {
		uint32_t mask = (ZEND_SEND_BY_REF|ZEND_SEND_PREFER_REF) << ((arg_num + 3) * 2);

		if (!zend_jit_reuse_ip(Dst)) {
			return 0;
		}

		//|	mov r0, EX:RX->func
		//|	test dword [r0 + offsetof(zend_function, quick_arg_flags)], mask
		//|	jnz >1
		//|.cold_code
		dasm_put(Dst, 6363, Dt1(->func), offsetof(zend_function, quick_arg_flags), mask);
#line 11064 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	// ZEND_ADD_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF);
		//|	or dword [RX + offsetof(zend_execute_data, This.u1.type_info)], ZEND_CALL_SEND_ARG_BY_REF
		//|	jmp >1
		//|.code
		dasm_put(Dst, 6622, offsetof(zend_execute_data, This.u1.type_info), ZEND_CALL_SEND_ARG_BY_REF);
#line 11069 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// ZEND_DEL_CALL_FLAG(EX(call), ZEND_CALL_SEND_ARG_BY_REF);
		//|	and dword [RX + offsetof(zend_execute_data, This.u1.type_info)], ~ZEND_CALL_SEND_ARG_BY_REF
		//|1:
		dasm_put(Dst, 6635, offsetof(zend_execute_data, This.u1.type_info), ~ZEND_CALL_SEND_ARG_BY_REF);
#line 11072 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_smart_true(dasm_State **Dst, const zend_op *opline, int jmp, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2)
{
	if (smart_branch_opcode) {
		if (smart_branch_opcode == ZEND_JMPZ) {
			if (jmp) {
				//|	jmp >7
				dasm_put(Dst, 3722);
#line 11083 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (smart_branch_opcode == ZEND_JMPNZ) {
			//|	jmp =>target_label
			dasm_put(Dst, 1645, target_label);
#line 11086 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			//|	jmp =>target_label2
			dasm_put(Dst, 1645, target_label2);
#line 11088 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
	} else {
		zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

		//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 11095 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (jmp) {
			//|	jmp >7
			dasm_put(Dst, 3722);
#line 11097 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_smart_false(dasm_State **Dst, const zend_op *opline, int jmp, zend_uchar smart_branch_opcode, uint32_t target_label)
{
	if (smart_branch_opcode) {
		if (smart_branch_opcode == ZEND_JMPZ) {
			//|	jmp =>target_label
			dasm_put(Dst, 1645, target_label);
#line 11108 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (smart_branch_opcode == ZEND_JMPNZ) {
			if (jmp) {
				//|	jmp >7
				dasm_put(Dst, 3722);
#line 11111 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			//|	jmp =>target_label
			dasm_put(Dst, 1645, target_label);
#line 11114 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
	} else {
		zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

		//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 11121 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (jmp) {
			//|	jmp >7
			dasm_put(Dst, 3722);
#line 11123 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_defined(dasm_State **Dst, const zend_op *opline, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	uint32_t defined_label = (uint32_t)-1;
	uint32_t undefined_label = (uint32_t)-1;
	zval *zv = RT_CONSTANT(opline, opline->op1);
	zend_jit_addr res_addr = 0;

	if (smart_branch_opcode && !exit_addr) {
		if (smart_branch_opcode == ZEND_JMPZ) {
			undefined_label = target_label;
		} else if (smart_branch_opcode == ZEND_JMPNZ) {
			defined_label = target_label;
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			undefined_label = target_label;
			defined_label = target_label2;
		} else {
			ZEND_UNREACHABLE();
		}
	}

	//|	// if (CACHED_PTR(opline->extended_value)) {
	//|	mov r0, EX->run_time_cache
	//|	mov r0, aword [r0 + opline->extended_value]
	//|	test r0, r0
	//|	jz >1
	//|	test r0, 0x1
	//|	jnz >4
	//|.cold_code
	dasm_put(Dst, 6643, Dt1(->run_time_cache), opline->extended_value);
#line 11157 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|4:
	//|	MEM_OP2_2_ZTS mov, FCARG1a, aword, executor_globals, zend_constants, FCARG1a
	dasm_put(Dst, 389);
			if (IS_SIGNED_32BIT(&executor_globals.zend_constants)) {
	dasm_put(Dst, 6670, &executor_globals.zend_constants);
			} else {
	dasm_put(Dst, 6676, (unsigned int)(((ptrdiff_t)&executor_globals.zend_constants)), (unsigned int)((((ptrdiff_t)&executor_globals.zend_constants))>>32));
			}
#line 11159 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	shr r0, 1
	//|	cmp dword [FCARG1a + offsetof(HashTable, nNumOfElements)], eax
	dasm_put(Dst, 6684, offsetof(HashTable, nNumOfElements));
#line 11161 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (smart_branch_opcode) {
		if (exit_addr) {
			if (smart_branch_opcode == ZEND_JMPZ) {
				//|	jz &exit_addr
				dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 11166 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jz >3
				dasm_put(Dst, 4027);
#line 11168 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (undefined_label != (uint32_t)-1) {
			//|	jz =>undefined_label
			dasm_put(Dst, 4659, undefined_label);
#line 11171 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jz >3
			dasm_put(Dst, 4027);
#line 11173 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|	jz >2
		dasm_put(Dst, 2022);
#line 11176 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|1:
	//|	SET_EX_OPLINE opline, r0
	dasm_put(Dst, 64);
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
#line 11179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	LOAD_ADDR FCARG1a, zv
			if (IS_SIGNED_32BIT(zv)) {
	dasm_put(Dst, 702, ((ptrdiff_t)zv));
			} else {
	dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)zv)), (unsigned int)((((ptrdiff_t)zv))>>32));
			}
#line 11180 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	EXT_CALL zend_jit_check_constant, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_check_constant)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_check_constant));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_check_constant)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_check_constant));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_check_constant)), (unsigned int)((((ptrdiff_t)zend_jit_check_constant))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 11181 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	test r0, r0
	dasm_put(Dst, 3620);
#line 11182 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (exit_addr) {
		if (smart_branch_opcode == ZEND_JMPNZ) {
			//|	jz >3
			dasm_put(Dst, 4027);
#line 11185 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jnz >3
			dasm_put(Dst, 317);
#line 11187 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	jmp &exit_addr
		dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 11189 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (smart_branch_opcode) {
		if (undefined_label != (uint32_t)-1) {
			//|	jz =>undefined_label
			dasm_put(Dst, 4659, undefined_label);
#line 11192 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jz >3
			dasm_put(Dst, 4027);
#line 11194 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (defined_label != (uint32_t)-1) {
			//|	jmp =>defined_label
			dasm_put(Dst, 1645, defined_label);
#line 11197 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jmp >3
			dasm_put(Dst, 3991);
#line 11199 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
		//|	jnz >1
		//|2:
		//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
		dasm_put(Dst, 6692);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 11205 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >3
		dasm_put(Dst, 6699, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 11206 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|.code
	dasm_put(Dst, 387);
#line 11208 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (smart_branch_opcode) {
		if (exit_addr) {
			if (smart_branch_opcode == ZEND_JMPNZ) {
				//|	jmp &exit_addr
				dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 11212 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (defined_label != (uint32_t)-1) {
			//|	jmp =>defined_label
			dasm_put(Dst, 1645, defined_label);
#line 11215 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|1:
		//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
		dasm_put(Dst, 64);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 11219 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|3:
	dasm_put(Dst, 347);
#line 11221 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_type_check(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	uint32_t  mask;
	zend_uchar type;
	zend_jit_addr op1_addr = OP1_ADDR();

	// TODO: support for is_resource() ???
	ZEND_ASSERT(opline->extended_value != MAY_BE_RESOURCE);

	if (op1_info & MAY_BE_UNDEF) {
		if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
			//|	IF_ZVAL_TYPE op1_addr, IS_UNDEF, >1
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11237 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.cold_code
			dasm_put(Dst, 3945, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 11238 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 11239 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 11241 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1d, opline->op1.var
		//|	EXT_CALL zend_jit_undefined_op_helper, r0
		dasm_put(Dst, 2311, opline->op1.var);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 11243 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		zend_jit_check_exception_undef_result(Dst, opline);
		if (opline->extended_value & MAY_BE_NULL) {
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 11248 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_REF)) != 0) {
					//|	jmp >7
					dasm_put(Dst, 3722);
#line 11250 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (!zend_jit_smart_true(Dst, opline, (op1_info & (MAY_BE_ANY|MAY_BE_REF)) != 0, smart_branch_opcode, target_label, target_label2)) {
				return 0;
			}
		} else {
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 11258 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_REF)) != 0) {
					//|	jmp >7
					dasm_put(Dst, 3722);
#line 11260 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (!zend_jit_smart_false(Dst, opline, (op1_info & (MAY_BE_ANY|MAY_BE_REF)) != 0, smart_branch_opcode, target_label)) {
				return 0;
			}
		}
		if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
			//|.code
			dasm_put(Dst, 387);
#line 11267 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op1_info & (MAY_BE_ANY|MAY_BE_REF)) {
		mask = opline->extended_value;
		switch (mask) {
			case MAY_BE_NULL:   type = IS_NULL;   break;
			case MAY_BE_FALSE:  type = IS_FALSE;  break;
			case MAY_BE_TRUE:   type = IS_TRUE;   break;
			case MAY_BE_LONG:   type = IS_LONG;   break;
			case MAY_BE_DOUBLE: type = IS_DOUBLE; break;
			case MAY_BE_STRING: type = IS_STRING; break;
			case MAY_BE_ARRAY:  type = IS_ARRAY;  break;
			case MAY_BE_OBJECT: type = IS_OBJECT; break;
			default:
				type = 0;
		}

		if (!(op1_info & MAY_BE_GUARD) && !(op1_info & (MAY_BE_ANY - mask))) {
			//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
				if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (1) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 11287 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 11290 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (!zend_jit_smart_true(Dst, opline, 0, smart_branch_opcode, target_label, target_label2)) {
				return 0;
			}
	    } else if (!(op1_info & MAY_BE_GUARD) && !(op1_info & mask)) {
			//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
				if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (1) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 11296 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 11299 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (!zend_jit_smart_false(Dst, opline, 0, smart_branch_opcode, target_label)) {
				return 0;
			}
		} else {
			if (op1_info & MAY_BE_REF) {
				//|	LOAD_ZVAL_ADDR r0, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 6420, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 6428, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 11306 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	ZVAL_DEREF r0, op1_info
					if (op1_info & MAY_BE_REF) {
				dasm_put(Dst, 3837, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
					}
#line 11307 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (type == 0) {
				if (smart_branch_opcode &&
				    (opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
				    (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if ((op1_info) & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						//|	// if (Z_REFCOUNTED_P(cv)) {
						//|	IF_ZVAL_REFCOUNTED op1_addr, >1
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11315 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|.cold_code
						dasm_put(Dst, 277, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 11316 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|1:
						dasm_put(Dst, 64);
#line 11317 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	// if (!Z_DELREF_P(cv)) {
					//|	GET_ZVAL_PTR FCARG1a, op1_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11320 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	GC_DELREF FCARG1a
					dasm_put(Dst, 306, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 11321 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (RC_MAY_BE_1(op1_info)) {
						if (RC_MAY_BE_N(op1_info)) {
							//|	jnz >3
							dasm_put(Dst, 317);
#line 11324 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						if (op1_info & MAY_BE_REF) {
							//|	mov al, byte [r0 + 8]
							dasm_put(Dst, 6712, 8);
#line 11327 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	mov al, byte [FP + opline->op1.var + 8]
							dasm_put(Dst, 6716, opline->op1.var + 8);
#line 11329 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						//|	mov byte T1, al // save
						//|	// zval_dtor_func(r);
						//|	ZVAL_DTOR_FUNC op1_info, opline
						dasm_put(Dst, 6721);
							do {
								if (!((op1_info) & MAY_BE_GUARD)
								 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
									zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
									if (type == IS_STRING && !ZEND_DEBUG) {
								if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
						dasm_put(Dst, 46, (ptrdiff_t)(_efree));
								} else {
								if (IS_SIGNED_32BIT(_efree)) {
						dasm_put(Dst, 50, ((ptrdiff_t)_efree));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
								}
						dasm_put(Dst, 60);
								}
										break;
									} else if (type == IS_ARRAY) {
										if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
											if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
							if (opline == last_valid_opline) {
								zend_jit_use_last_valid_opline();
							if (GCC_GLOBAL_REGS) {
						dasm_put(Dst, 8, Dt1(->opline));
							}
							} else {
								if (IS_SIGNED_32BIT(opline)) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
								} else {
						dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
								}
								if (!GCC_GLOBAL_REGS) {
									zend_jit_reset_last_valid_opline();
								}
							}
											}
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
								} else {
								if (IS_SIGNED_32BIT(zend_array_destroy)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
								}
						dasm_put(Dst, 60);
								}
										} else {
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_array_free)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
								}
						dasm_put(Dst, 60);
								}
										}
										break;
									} else if (type == IS_OBJECT) {
										if (opline) {
							if (opline == last_valid_opline) {
								zend_jit_use_last_valid_opline();
							if (GCC_GLOBAL_REGS) {
						dasm_put(Dst, 8, Dt1(->opline));
							}
							} else {
								if (IS_SIGNED_32BIT(opline)) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
								} else {
						dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
								}
								if (!GCC_GLOBAL_REGS) {
									zend_jit_reset_last_valid_opline();
								}
							}
										}
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
								} else {
								if (IS_SIGNED_32BIT(zend_objects_store_del)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
								}
						dasm_put(Dst, 60);
								}
										break;
									}
								}
								if (opline) {
							if (opline == last_valid_opline) {
								zend_jit_use_last_valid_opline();
							if (GCC_GLOBAL_REGS) {
						dasm_put(Dst, 8, Dt1(->opline));
							}
							} else {
								if (IS_SIGNED_32BIT(opline)) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
								} else {
						dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
								}
								if (!GCC_GLOBAL_REGS) {
									zend_jit_reset_last_valid_opline();
								}
							}
								}
								if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
						dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
								} else {
								if (IS_SIGNED_32BIT(rc_dtor_func)) {
						dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
								}
						dasm_put(Dst, 60);
								}
							} while(0);
#line 11333 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	mov cl, byte T1 // restore
						//|jmp >2
						dasm_put(Dst, 6725);
#line 11335 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					if ((op1_info) & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (!RC_MAY_BE_1(op1_info)) {
							//|	jmp >3
							dasm_put(Dst, 3991);
#line 11339 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						//|.code
						dasm_put(Dst, 387);
#line 11341 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|3:
					dasm_put(Dst, 347);
#line 11343 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & MAY_BE_REF) {
						//|	mov cl, byte [r0 + 8]
						dasm_put(Dst, 6733, 8);
#line 11345 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	mov cl, byte [FP + opline->op1.var + 8]
						dasm_put(Dst, 6737, opline->op1.var + 8);
#line 11347 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|2:
					dasm_put(Dst, 2037);
#line 11349 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					if (op1_info & MAY_BE_REF) {
						//|	mov cl, byte [r0 + 8]
						dasm_put(Dst, 6733, 8);
#line 11352 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	mov cl, byte [FP + opline->op1.var + 8]
						dasm_put(Dst, 6737, opline->op1.var + 8);
#line 11354 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				//|	mov eax, 1
				//|	shl eax, cl
				//|	test eax, mask
				dasm_put(Dst, 6742, mask);
#line 11359 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (exit_addr) {
					if (smart_branch_opcode == ZEND_JMPNZ) {
						//|	jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 11362 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 11364 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (smart_branch_opcode) {
					if (smart_branch_opcode == ZEND_JMPZ) {
						//|	je =>target_label
						dasm_put(Dst, 4659, target_label);
#line 11368 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (smart_branch_opcode == ZEND_JMPNZ) {
						//|	jne =>target_label
						dasm_put(Dst, 1878, target_label);
#line 11370 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (smart_branch_opcode == ZEND_JMPZNZ) {
						//|	je =>target_label
						//|	jmp =>target_label2
						dasm_put(Dst, 6752, target_label, target_label2);
#line 11373 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						ZEND_UNREACHABLE();
					}
				} else {
					zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

					//|	setne al
					//|	movzx eax, al
					//|	add eax, 2
					//|	SET_ZVAL_TYPE_INFO res_addr, eax
					dasm_put(Dst, 6759);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 11383 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
					dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
						if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
						if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
							if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
								if (1) {
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					dasm_put(Dst, 64);
								} else {
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
								}
							}
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
							if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
								if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
									if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					dasm_put(Dst, 317);
									} else {
					dasm_put(Dst, 322);
									}
								}
						do {
							if (!((op1_info) & MAY_BE_GUARD)
							 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
								zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
								if (type == IS_STRING && !ZEND_DEBUG) {
							if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
					dasm_put(Dst, 46, (ptrdiff_t)(_efree));
							} else {
							if (IS_SIGNED_32BIT(_efree)) {
					dasm_put(Dst, 50, ((ptrdiff_t)_efree));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
							}
					dasm_put(Dst, 60);
							}
									break;
								} else if (type == IS_ARRAY) {
									if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
										if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
										}
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
							} else {
							if (IS_SIGNED_32BIT(zend_array_destroy)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
							}
					dasm_put(Dst, 60);
							}
									} else {
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_array_free)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
							}
					dasm_put(Dst, 60);
							}
									}
									break;
								} else if (type == IS_OBJECT) {
									if (opline) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
									}
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
							} else {
							if (IS_SIGNED_32BIT(zend_objects_store_del)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
							}
					dasm_put(Dst, 60);
							}
									break;
								}
							}
							if (opline) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
							}
							if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
					dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
							} else {
							if (IS_SIGNED_32BIT(rc_dtor_func)) {
					dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
							}
					dasm_put(Dst, 60);
							}
						} while(0);
								if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					dasm_put(Dst, 342);
								}
					dasm_put(Dst, 347);
							}
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
								if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
									zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
								}
					dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
							if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
					dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
							} else {
							if (IS_SIGNED_32BIT(gc_possible_root)) {
					dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
							}
					dasm_put(Dst, 60);
							}
							}
							if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
					dasm_put(Dst, 383);
							}
					dasm_put(Dst, 389);
						}
						}
#line 11384 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				if (smart_branch_opcode &&
				    (opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
				    (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if ((op1_info) & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						//|	// if (Z_REFCOUNTED_P(cv)) {
						//|	IF_ZVAL_REFCOUNTED op1_addr, >1
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11392 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|.cold_code
						dasm_put(Dst, 277, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 11393 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|1:
						dasm_put(Dst, 64);
#line 11394 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	// if (!Z_DELREF_P(cv)) {
					//|	GET_ZVAL_PTR FCARG1a, op1_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11397 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	GC_DELREF FCARG1a
					dasm_put(Dst, 306, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 11398 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (RC_MAY_BE_1(op1_info)) {
						if (RC_MAY_BE_N(op1_info)) {
							//|	jnz >3
							dasm_put(Dst, 317);
#line 11401 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						if (op1_info & MAY_BE_REF) {
							//|	mov al, byte [r0 + 8]
							dasm_put(Dst, 6712, 8);
#line 11404 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	mov al, byte [FP + opline->op1.var + 8]
							dasm_put(Dst, 6716, opline->op1.var + 8);
#line 11406 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						//|	mov byte T1, al // save
						//|	// zval_dtor_func(r);
						//|	ZVAL_DTOR_FUNC op1_info, opline
						dasm_put(Dst, 6721);
							do {
								if (!((op1_info) & MAY_BE_GUARD)
								 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
									zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
									if (type == IS_STRING && !ZEND_DEBUG) {
								if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
						dasm_put(Dst, 46, (ptrdiff_t)(_efree));
								} else {
								if (IS_SIGNED_32BIT(_efree)) {
						dasm_put(Dst, 50, ((ptrdiff_t)_efree));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
								}
						dasm_put(Dst, 60);
								}
										break;
									} else if (type == IS_ARRAY) {
										if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
											if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
							if (opline == last_valid_opline) {
								zend_jit_use_last_valid_opline();
							if (GCC_GLOBAL_REGS) {
						dasm_put(Dst, 8, Dt1(->opline));
							}
							} else {
								if (IS_SIGNED_32BIT(opline)) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
								} else {
						dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
								}
								if (!GCC_GLOBAL_REGS) {
									zend_jit_reset_last_valid_opline();
								}
							}
											}
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
								} else {
								if (IS_SIGNED_32BIT(zend_array_destroy)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
								}
						dasm_put(Dst, 60);
								}
										} else {
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_array_free)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
								}
						dasm_put(Dst, 60);
								}
										}
										break;
									} else if (type == IS_OBJECT) {
										if (opline) {
							if (opline == last_valid_opline) {
								zend_jit_use_last_valid_opline();
							if (GCC_GLOBAL_REGS) {
						dasm_put(Dst, 8, Dt1(->opline));
							}
							} else {
								if (IS_SIGNED_32BIT(opline)) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
								} else {
						dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
								}
								if (!GCC_GLOBAL_REGS) {
									zend_jit_reset_last_valid_opline();
								}
							}
										}
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
								} else {
								if (IS_SIGNED_32BIT(zend_objects_store_del)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
								}
						dasm_put(Dst, 60);
								}
										break;
									}
								}
								if (opline) {
							if (opline == last_valid_opline) {
								zend_jit_use_last_valid_opline();
							if (GCC_GLOBAL_REGS) {
						dasm_put(Dst, 8, Dt1(->opline));
							}
							} else {
								if (IS_SIGNED_32BIT(opline)) {
						dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
								} else {
						dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
								}
								if (!GCC_GLOBAL_REGS) {
									zend_jit_reset_last_valid_opline();
								}
							}
								}
								if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
						dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
								} else {
								if (IS_SIGNED_32BIT(rc_dtor_func)) {
						dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
								}
						dasm_put(Dst, 60);
								}
							} while(0);
#line 11410 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						//|	mov cl, byte T1 // restore
						//|jmp >2
						dasm_put(Dst, 6725);
#line 11412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					if ((op1_info) & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (!RC_MAY_BE_1(op1_info)) {
							//|	jmp >3
							dasm_put(Dst, 3991);
#line 11416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
						//|.code
						dasm_put(Dst, 387);
#line 11418 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|3:
					dasm_put(Dst, 347);
#line 11420 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & MAY_BE_REF) {
						//|	mov cl, byte [r0 + 8]
						dasm_put(Dst, 6733, 8);
#line 11422 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	mov cl, byte [FP + opline->op1.var + 8]
						dasm_put(Dst, 6737, opline->op1.var + 8);
#line 11424 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|2:
					//|	cmp cl, type
					dasm_put(Dst, 6769, type);
#line 11427 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					if (op1_info & MAY_BE_REF) {
						//|	cmp byte [r0 + 8], type
						dasm_put(Dst, 3855, 8, type);
#line 11430 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	cmp byte [FP + opline->op1.var + 8], type
						dasm_put(Dst, 6776, opline->op1.var + 8, type);
#line 11432 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (exit_addr) {
					if (smart_branch_opcode == ZEND_JMPNZ) {
						//|	je &exit_addr
						dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 11437 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jne &exit_addr
						dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 11439 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else if (smart_branch_opcode) {
					if (smart_branch_opcode == ZEND_JMPZ) {
						//|	jne =>target_label
						dasm_put(Dst, 1878, target_label);
#line 11443 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (smart_branch_opcode == ZEND_JMPNZ) {
						//|	je =>target_label
						dasm_put(Dst, 4659, target_label);
#line 11445 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (smart_branch_opcode == ZEND_JMPZNZ) {
						//|	jne =>target_label
						//|	jmp =>target_label2
						dasm_put(Dst, 6782, target_label, target_label2);
#line 11448 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						ZEND_UNREACHABLE();
					}
				} else {
					zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

					//|	sete al
					//|	movzx eax, al
					//|	add eax, 2
					//|	SET_ZVAL_TYPE_INFO res_addr, eax
					dasm_put(Dst, 6789);
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 11458 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
					dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
						if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
						if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
							if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
								if (1) {
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					dasm_put(Dst, 64);
								} else {
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
								}
							}
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
							if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
								if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
									if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					dasm_put(Dst, 317);
									} else {
					dasm_put(Dst, 322);
									}
								}
						do {
							if (!((op1_info) & MAY_BE_GUARD)
							 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
								zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
								if (type == IS_STRING && !ZEND_DEBUG) {
							if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
					dasm_put(Dst, 46, (ptrdiff_t)(_efree));
							} else {
							if (IS_SIGNED_32BIT(_efree)) {
					dasm_put(Dst, 50, ((ptrdiff_t)_efree));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
							}
					dasm_put(Dst, 60);
							}
									break;
								} else if (type == IS_ARRAY) {
									if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
										if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
										}
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
							} else {
							if (IS_SIGNED_32BIT(zend_array_destroy)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
							}
					dasm_put(Dst, 60);
							}
									} else {
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_array_free)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
							}
					dasm_put(Dst, 60);
							}
									}
									break;
								} else if (type == IS_OBJECT) {
									if (opline) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
									}
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
							} else {
							if (IS_SIGNED_32BIT(zend_objects_store_del)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
							}
					dasm_put(Dst, 60);
							}
									break;
								}
							}
							if (opline) {
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
							}
							if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
					dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
							} else {
							if (IS_SIGNED_32BIT(rc_dtor_func)) {
					dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
							}
					dasm_put(Dst, 60);
							}
						} while(0);
								if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					dasm_put(Dst, 342);
								}
					dasm_put(Dst, 347);
							}
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
								if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
									zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
						ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
						ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
								}
					dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
							if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
					dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
							} else {
							if (IS_SIGNED_32BIT(gc_possible_root)) {
					dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
							}
					dasm_put(Dst, 60);
							}
							}
							if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
					dasm_put(Dst, 383);
							}
					dasm_put(Dst, 389);
						}
						}
#line 11459 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
	    }
	}

	//|7:
	dasm_put(Dst, 4449);
#line 11465 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static uint32_t zend_ssa_cv_info(const zend_op_array *op_array, zend_ssa *ssa, uint32_t var)
{
	uint32_t j, info;

	if (ssa->vars && ssa->var_info) {
		info = ssa->var_info[var].type;
		for (j = op_array->last_var; j < ssa->vars_count; j++) {
			if (ssa->vars[j].var == var) {
				info |= ssa->var_info[j].type;
			}
		}
	} else {
		info = MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_REF | MAY_BE_ANY | MAY_BE_UNDEF |
			MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF;
	}

#ifdef ZEND_JIT_USE_RC_INFERENCE
	/* Refcount may be increased by RETURN opcode */
	if ((info & MAY_BE_RC1) && !(info & MAY_BE_RCN)) {
		for (j = 0; j < ssa->cfg.blocks_count; j++) {
			if ((ssa->cfg.blocks[j].flags & ZEND_BB_REACHABLE) &&
			    ssa->cfg.blocks[j].len > 0) {
				const zend_op *opline = op_array->opcodes + ssa->cfg.blocks[j].start + ssa->cfg.blocks[j].len - 1;

				if (opline->opcode == ZEND_RETURN) {
					if (opline->op1_type == IS_CV && opline->op1.var == EX_NUM_TO_VAR(var)) {
						info |= MAY_BE_RCN;
						break;
					}
				}
			}
		}
	}
#endif

	return info;
}

static int zend_jit_leave_frame(dasm_State **Dst)
{
	//|	// EG(current_execute_data) = EX(prev_execute_data);
	//|	mov r0, EX->prev_execute_data
	//|	MEM_OP2_1_ZTS mov, aword, executor_globals, current_execute_data, r0, r2
	dasm_put(Dst, 5782, Dt1(->prev_execute_data));
			if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
	dasm_put(Dst, 6799, &executor_globals.current_execute_data);
			} else {
	dasm_put(Dst, 6805, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
			}
#line 11512 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_free_cv(dasm_State **Dst, uint32_t info, uint32_t var)
{
	if (info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
		uint32_t offset = EX_NUM_TO_VAR(var);
		//| ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset), info, 1, 1, NULL
			if ((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (1) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset)));
				if (((info) & MAY_BE_GUARD) || RC_MAY_BE_1(info)) {
					if (((info) & MAY_BE_GUARD) || RC_MAY_BE_N(info)) {
						if (1 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((info) & MAY_BE_GUARD)
				 && has_concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (NULL && ((info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (NULL == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(NULL)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (NULL) {
			if (NULL == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(NULL)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (NULL) {
			if (NULL == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(NULL)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)NULL));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)NULL)), (unsigned int)((((ptrdiff_t)NULL))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (1 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (1 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, offset))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (1 && ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
#line 11520 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_free_op(dasm_State **Dst, const zend_op *opline, uint32_t info, uint32_t var_offset)
{
	if (info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
		//| ZVAL_PTR_DTOR ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset), info, 0, 1, opline
			if ((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (1) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset)));
				if (((info) & MAY_BE_GUARD) || RC_MAY_BE_1(info)) {
					if (((info) & MAY_BE_GUARD) || RC_MAY_BE_N(info)) {
						if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((info) & MAY_BE_GUARD)
				 && has_concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, var_offset))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (1 && ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
#line 11528 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_leave_func(dasm_State          **Dst,
                               const zend_op_array  *op_array,
                               const zend_op        *opline,
                               uint32_t              op1_info,
                               zend_bool             left_frame,
                               zend_jit_trace_rec   *trace,
                               zend_jit_trace_info  *trace_info,
                               int                   indirect_var_access,
                               int                   may_throw)
{
	zend_bool may_be_top_frame =
		JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
		!JIT_G(current_frame) ||
		!TRACE_FRAME_IS_NESTED(JIT_G(current_frame));
	zend_bool may_need_call_helper =
		indirect_var_access || /* may have symbol table */
		!op_array->function_name || /* may have symbol table */
		may_be_top_frame ||
		(op_array->fn_flags & ZEND_ACC_VARIADIC) || /* may have extra named args */
		JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
		!JIT_G(current_frame) ||
		TRACE_FRAME_NUM_ARGS(JIT_G(current_frame)) == -1 || /* unknown number of args */
		(uint32_t)TRACE_FRAME_NUM_ARGS(JIT_G(current_frame)) > op_array->num_args; /* extra args */
	zend_bool may_need_release_this =
		!(op_array->fn_flags & ZEND_ACC_CLOSURE) &&
		op_array->scope &&
		!(op_array->fn_flags & ZEND_ACC_STATIC) &&
		(JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
		 !JIT_G(current_frame) ||
		 !TRACE_FRAME_NO_NEED_RELEASE_THIS(JIT_G(current_frame)));

	if (may_need_call_helper || may_need_release_this) {
		//|	mov FCARG1d, dword [FP + offsetof(zend_execute_data, This.u1.type_info)]
		dasm_put(Dst, 6813, offsetof(zend_execute_data, This.u1.type_info));
#line 11565 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (may_need_call_helper) {
		if (!left_frame) {
			left_frame = 1;
		    if (!zend_jit_leave_frame(Dst)) {
				return 0;
		    }
		}
		/* ZEND_CALL_FAKE_CLOSURE handled on slow path to eliminate check for ZEND_CALL_CLOSURE on fast path */
		//|	test FCARG1d, (ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED|ZEND_CALL_HAS_EXTRA_NAMED_PARAMS|ZEND_CALL_FAKE_CLOSURE)
		dasm_put(Dst, 6818, (ZEND_CALL_TOP|ZEND_CALL_HAS_SYMBOL_TABLE|ZEND_CALL_FREE_EXTRA_ARGS|ZEND_CALL_ALLOCATED|ZEND_CALL_HAS_EXTRA_NAMED_PARAMS|ZEND_CALL_FAKE_CLOSURE));
#line 11575 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (trace && trace->op != ZEND_JIT_TRACE_END) {
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 286);
#line 11578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 11579 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!GCC_GLOBAL_REGS) {
				//|	mov FCARG2a, FP
				dasm_put(Dst, 6823);
#line 11581 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	EXT_CALL zend_jit_leave_func_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_leave_func_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_leave_func_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_leave_func_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_leave_func_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_leave_func_helper)), (unsigned int)((((ptrdiff_t)zend_jit_leave_func_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 11583 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			if (may_be_top_frame) {
				// TODO: try to avoid this check ???
				if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
#if 0
					/* this check should be handled by the following OPLINE guard */
					//|	cmp IP, zend_jit_halt_op
					//|	je ->trace_halt
					dasm_put(Dst, 1816, zend_jit_halt_op);
#line 11591 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
				} else if (GCC_GLOBAL_REGS) {
					//|	test IP, IP
					//|	je ->trace_halt
					dasm_put(Dst, 1826);
#line 11595 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	test eax, eax
					//|	jl ->trace_halt
					dasm_put(Dst, 1835);
#line 11598 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}

			if (!GCC_GLOBAL_REGS) {
				//|	// execute_data = EG(current_execute_data)
				//|	MEM_OP2_2_ZTS mov, FP, aword, executor_globals, current_execute_data, r0
						if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
				dasm_put(Dst, 88, &executor_globals.current_execute_data);
						} else {
				dasm_put(Dst, 94, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
						}
#line 11604 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	jmp >8
			//|.code
			dasm_put(Dst, 6828);
#line 11607 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jnz ->leave_function_handler
			dasm_put(Dst, 6834);
#line 11609 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op_array->fn_flags & ZEND_ACC_CLOSURE) {
		if (!left_frame) {
			left_frame = 1;
		    if (!zend_jit_leave_frame(Dst)) {
				return 0;
		    }
		}
		//|	// OBJ_RELEASE(ZEND_CLOSURE_OBJECT(EX(func)));
		//|	mov FCARG1a, EX->func
		//|	sub FCARG1a, sizeof(zend_object)
		//|	OBJ_RELEASE ZREG_FCARG1a, >4
		dasm_put(Dst, 6839, Dt1(->func), sizeof(zend_object), (ZREG_FCARG1a), 0);
			if (ZREG_FCARG1a != ZREG_FCARG1a) {
		dasm_put(Dst, 2322, (ZREG_FCARG1a));
			}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
		dasm_put(Dst, 6861, (ZREG_FCARG1a), (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (ZREG_FCARG1a != ZREG_FCARG1a) {
		dasm_put(Dst, 2322, (ZREG_FCARG1a));
			}
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 11623 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|4:
		dasm_put(Dst, 6880);
#line 11624 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (may_need_release_this) {
		if (!left_frame) {
			left_frame = 1;
		    if (!zend_jit_leave_frame(Dst)) {
				return 0;
		    }
		}
		//|	// if (call_info & ZEND_CALL_RELEASE_THIS)
		//|	test FCARG1d, ZEND_CALL_RELEASE_THIS
		//|	je >4
		//|	// zend_object *object = Z_OBJ(execute_data->This);
		//|	mov FCARG1a, EX->This.value.obj
		//|	// OBJ_RELEASE(object);
		//|	OBJ_RELEASE ZREG_FCARG1a, >4
		dasm_put(Dst, 6885, ZEND_CALL_RELEASE_THIS, Dt1(->This.value.obj), (ZREG_FCARG1a), 0);
			if (ZREG_FCARG1a != ZREG_FCARG1a) {
		dasm_put(Dst, 2322, (ZREG_FCARG1a));
			}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
		dasm_put(Dst, 6861, (ZREG_FCARG1a), (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (ZREG_FCARG1a != ZREG_FCARG1a) {
		dasm_put(Dst, 2322, (ZREG_FCARG1a));
			}
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 11638 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|4:
		dasm_put(Dst, 6880);
#line 11639 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		// TODO: avoid EG(excption) check for $this->foo() calls
		may_throw = 1;
	}

	//|	// EG(vm_stack_top) = (zval*)execute_data;
	//|	MEM_OP2_1_ZTS mov, aword, executor_globals, vm_stack_top, FP, r0
			if (IS_SIGNED_32BIT(&executor_globals.vm_stack_top)) {
	dasm_put(Dst, 6272, &executor_globals.vm_stack_top);
			} else {
	dasm_put(Dst, 6278, (unsigned int)(((ptrdiff_t)&executor_globals.vm_stack_top)), (unsigned int)((((ptrdiff_t)&executor_globals.vm_stack_top))>>32));
			}
#line 11645 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// execute_data = EX(prev_execute_data);
	//|	mov FP, EX->prev_execute_data
	dasm_put(Dst, 6910, Dt1(->prev_execute_data));
#line 11647 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (!left_frame) {
		//|	// EG(current_execute_data) = execute_data;
		//|	MEM_OP2_1_ZTS mov, aword, executor_globals, current_execute_data, FP, r0
				if (IS_SIGNED_32BIT(&executor_globals.current_execute_data)) {
		dasm_put(Dst, 6272, &executor_globals.current_execute_data);
				} else {
		dasm_put(Dst, 6278, (unsigned int)(((ptrdiff_t)&executor_globals.current_execute_data)), (unsigned int)((((ptrdiff_t)&executor_globals.current_execute_data))>>32));
				}
#line 11651 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|9:
	dasm_put(Dst, 4204);
#line 11654 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (trace) {
		if (trace->op != ZEND_JIT_TRACE_END
		 && (JIT_G(current_frame) && !TRACE_FRAME_IS_UNKNOWN_RETURN(JIT_G(current_frame)))) {
			zend_jit_reset_last_valid_opline();
		} else {
			//|	LOAD_IP
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 0, Dt1(->opline));
				}
#line 11660 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	ADD_IP sizeof(zend_op)
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 1617, sizeof(zend_op));
				} else {
			dasm_put(Dst, 1622, Dt1(->opline), sizeof(zend_op));
				}
#line 11661 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|8:
		dasm_put(Dst, 4301);
#line 11664 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (trace->op == ZEND_JIT_TRACE_BACK
		 && (!JIT_G(current_frame) || TRACE_FRAME_IS_UNKNOWN_RETURN(JIT_G(current_frame)))) {
			const zend_op *next_opline = trace->opline;

			if ((opline->op1_type & (IS_VAR|IS_TMP_VAR))
			 && (op1_info & MAY_BE_RC1)
			 && (op1_info & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY))) {
				/* exception might be thrown during destruction of unused return value */
				//|	// if (EG(exception))
				//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
						if (IS_SIGNED_32BIT(&executor_globals.exception)) {
				dasm_put(Dst, 72, &executor_globals.exception);
						} else {
				dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
						}
#line 11675 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jne ->leave_throw_handler
				dasm_put(Dst, 6915);
#line 11676 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			do {
				trace++;
			} while (trace->op == ZEND_JIT_TRACE_INIT_CALL);
			ZEND_ASSERT(trace->op == ZEND_JIT_TRACE_VM || trace->op == ZEND_JIT_TRACE_END);
			next_opline = trace->opline;
			ZEND_ASSERT(next_opline != NULL);

			if (trace->op == ZEND_JIT_TRACE_END
			 && trace->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_RET) {
				trace_info->flags |= ZEND_JIT_TRACE_LOOP;
				//|	CMP_IP next_opline
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 1847, next_opline);
					} else {
				dasm_put(Dst, 1853, Dt1(->opline), next_opline);
					}
#line 11688 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	je =>0 // LOOP
				dasm_put(Dst, 4659, 0);
#line 11689 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#ifdef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
				//|	JMP_IP
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 107);
					} else {
				dasm_put(Dst, 112, Dt1(->opline));
					}
#line 11691 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
				//|	jmp ->trace_escape
				dasm_put(Dst, 1697);
#line 11693 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
			} else {
				//|	CMP_IP next_opline
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 1847, next_opline);
					} else {
				dasm_put(Dst, 1853, Dt1(->opline), next_opline);
					}
#line 11696 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jne ->trace_escape
				dasm_put(Dst, 6920);
#line 11697 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			zend_jit_set_last_valid_opline(trace->opline);

			return 1;
		} else if (may_throw ||
				(((opline->op1_type & (IS_VAR|IS_TMP_VAR))
				  && (op1_info & MAY_BE_RC1)
				  && (op1_info & (MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_ARRAY)))
				 && (!JIT_G(current_frame) || TRACE_FRAME_IS_RETURN_VALUE_UNUSED(JIT_G(current_frame))))) {
			//|	// if (EG(exception))
			//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
					if (IS_SIGNED_32BIT(&executor_globals.exception)) {
			dasm_put(Dst, 72, &executor_globals.exception);
					} else {
			dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
					}
#line 11709 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jne ->leave_throw_handler
			dasm_put(Dst, 6915);
#line 11710 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		return 1;
	} else {
		//|	// if (EG(exception))
		//|	MEM_OP2_1_ZTS cmp, aword, executor_globals, exception, 0, r0
				if (IS_SIGNED_32BIT(&executor_globals.exception)) {
		dasm_put(Dst, 72, &executor_globals.exception);
				} else {
		dasm_put(Dst, 79, (unsigned int)(((ptrdiff_t)&executor_globals.exception)), (unsigned int)((((ptrdiff_t)&executor_globals.exception))>>32));
				}
#line 11716 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	LOAD_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 0, Dt1(->opline));
			}
#line 11717 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jne ->leave_throw_handler
		//|	// opline = EX(opline) + 1
		//|	ADD_IP sizeof(zend_op)
		dasm_put(Dst, 6915);
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 1617, sizeof(zend_op));
			} else {
		dasm_put(Dst, 1622, Dt1(->opline), sizeof(zend_op));
			}
#line 11720 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (zend_jit_vm_kind == ZEND_VM_KIND_HYBRID) {
		//|	ADD_HYBRID_SPAD
		#ifndef ZEND_VM_HYBRID_JIT_RED_ZONE_SIZE
		dasm_put(Dst, 102);
		#endif
#line 11724 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#ifdef CONTEXT_THREADED_JIT
		//|	push aword [IP]
		//|	ret
		dasm_put(Dst, 6925);
#line 11727 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 11729 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
	} else if (GCC_GLOBAL_REGS) {
		//|	add r4, SPAD // stack alignment
		dasm_put(Dst, 120);
#line 11732 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#ifdef CONTEXT_THREADED_JIT
		//|	push aword [IP]
		//|	ret
		dasm_put(Dst, 6925);
#line 11735 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
		//|	JMP_IP
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 107);
			} else {
		dasm_put(Dst, 112, Dt1(->opline));
			}
#line 11737 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
	} else {
#ifdef CONTEXT_THREADED_JIT
		ZEND_UNREACHABLE();
		// TODO: context threading can't work without GLOBAL REGS because we have to change
		//       the value of execute_data in execute_ex()
		//|	mov FCARG1a, FP
		//|	mov r0, aword [FP]
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	push aword [r0]
		//|	ret
		dasm_put(Dst, 6931);
#line 11750 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#else
		//|	mov FP, aword T2 // restore FP
		//|	mov RX, aword T3 // restore IP
		//|	add r4, NR_SPAD // stack alignment
		//|	mov r0, 2 // ZEND_VM_LEAVE
		//|	ret
		dasm_put(Dst, 541);
#line 11756 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
#endif
	}

	return 1;
}

static int zend_jit_return(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info, zend_jit_addr op1_addr)
{
	zend_jit_addr ret_addr;
	int8_t return_value_used;

	ZEND_ASSERT(op_array->type != ZEND_EVAL_CODE && op_array->function_name);
	ZEND_ASSERT(!(op1_info & MAY_BE_UNDEF));

	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && JIT_G(current_frame)) {
		if (TRACE_FRAME_IS_RETURN_VALUE_USED(JIT_G(current_frame))) {
			return_value_used = 1;
		} else if (TRACE_FRAME_IS_RETURN_VALUE_UNUSED(JIT_G(current_frame))) {
			return_value_used = 0;
		} else {
			return_value_used = -1;
		}
	} else {
		return_value_used = -1;
	}

	if (ZEND_OBSERVER_ENABLED) {
		if (Z_MODE(op1_addr) == IS_REG) {
			zend_jit_addr dst = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);

			if (!zend_jit_spill_store(Dst, op1_addr, dst, op1_info, 1)) {
				return 0;
			}
			op1_addr = dst;
		}
		//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2357, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 11792 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1a, FP
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 67);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 11794 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_observer_fcall_end, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_observer_fcall_end)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_observer_fcall_end));
				} else {
				if (IS_SIGNED_32BIT(zend_observer_fcall_end)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_observer_fcall_end));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_observer_fcall_end)), (unsigned int)((((ptrdiff_t)zend_observer_fcall_end))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 11795 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	// if (!EX(return_value))
	if (Z_MODE(op1_addr) == IS_REG && Z_REG(op1_addr) == ZREG_R1) {
		if (return_value_used != 0) {
			//|	mov r2, EX->return_value
			dasm_put(Dst, 1003, Dt1(->return_value));
#line 11801 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (return_value_used == -1) {
			//|	test r2, r2
			dasm_put(Dst, 6957);
#line 11804 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		ret_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R2, 0);
	} else {
		if (return_value_used != 0) {
			//|	mov r1, EX->return_value
			dasm_put(Dst, 5757, Dt1(->return_value));
#line 11809 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (return_value_used == -1) {
			//|	test r1, r1
			dasm_put(Dst, 6961);
#line 11812 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		ret_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R1, 0);
	}
	if ((opline->op1_type & (IS_VAR|IS_TMP_VAR)) &&
	    (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
		if (return_value_used == -1) {
			//|	jz >1
			//|.cold_code
			dasm_put(Dst, 3563);
#line 11820 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 11821 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (return_value_used != 1) {
			if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (jit_return_label >= 0) {
					//|	IF_NOT_ZVAL_REFCOUNTED op1_addr, =>jit_return_label
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 6965, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED, jit_return_label);
#line 11826 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_REFCOUNTED op1_addr, >9
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 6978, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 11828 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			//|	GET_ZVAL_PTR FCARG1a, op1_addr
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11831 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GC_DELREF FCARG1a
			dasm_put(Dst, 306, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 11832 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (RC_MAY_BE_1(op1_info)) {
				if (RC_MAY_BE_N(op1_info)) {
					if (jit_return_label >= 0) {
						//|	jnz =>jit_return_label
						dasm_put(Dst, 1878, jit_return_label);
#line 11836 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jnz >9
						dasm_put(Dst, 5121);
#line 11838 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				//|	//SAVE_OPLINE()
				//|	ZVAL_DTOR_FUNC op1_info, opline
					do {
						if (!((op1_info) & MAY_BE_GUARD)
						 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
							zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
							if (type == IS_STRING && !ZEND_DEBUG) {
						if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
				dasm_put(Dst, 46, (ptrdiff_t)(_efree));
						} else {
						if (IS_SIGNED_32BIT(_efree)) {
				dasm_put(Dst, 50, ((ptrdiff_t)_efree));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							} else if (type == IS_ARRAY) {
								if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
									if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
									}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
						} else {
						if (IS_SIGNED_32BIT(zend_array_destroy)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
						}
				dasm_put(Dst, 60);
						}
								} else {
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_array_free)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
						}
				dasm_put(Dst, 60);
						}
								}
								break;
							} else if (type == IS_OBJECT) {
								if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
								}
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
						} else {
						if (IS_SIGNED_32BIT(zend_objects_store_del)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
						}
				dasm_put(Dst, 60);
						}
								break;
							}
						}
						if (opline) {
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
						}
						if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
						} else {
						if (IS_SIGNED_32BIT(rc_dtor_func)) {
				dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
						}
				dasm_put(Dst, 60);
						}
					} while(0);
#line 11842 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	//????mov r1, EX->return_value // reload ???
			}
			if (return_value_used == -1) {
				if (jit_return_label >= 0) {
					//|	jmp =>jit_return_label
					dasm_put(Dst, 1645, jit_return_label);
#line 11847 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 11849 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|.code
				dasm_put(Dst, 387);
#line 11851 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else if (return_value_used == -1) {
		if (jit_return_label >= 0) {
			//|	jz =>jit_return_label
			dasm_put(Dst, 4659, jit_return_label);
#line 11856 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jz >9
			dasm_put(Dst, 3677);
#line 11858 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (return_value_used == 0) {
		//|9:
		dasm_put(Dst, 4204);
#line 11863 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		return 1;
	}

	if (opline->op1_type == IS_CONST) {
		zval *zv = RT_CONSTANT(opline, opline->op1);
		//|	ZVAL_COPY_CONST ret_addr, MAY_BE_ANY, MAY_BE_ANY, zv, ZREG_R0
			if (Z_TYPE_P(zv) > IS_TRUE) {
				if (Z_TYPE_P(zv) == IS_DOUBLE) {
					zend_reg dst_reg = (Z_MODE(ret_addr) == IS_REG) ? Z_REG(ret_addr) : ZREG_XMM0;
					if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
						if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						} else {
		dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						}
					} else if (!IS_SIGNED_32BIT(zv)) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)zv)), (unsigned int)((((uintptr_t)zv))>>32));
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
			} else {
		dasm_put(Dst, 2000, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
			}
					} else {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
			} else {
		dasm_put(Dst, 1960, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
			}
					}
			if (Z_MODE(ret_addr) == IS_REG) {
				if (dst_reg != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
				} else if (Z_TYPE_P(zv) == IS_LONG && MAY_BE_ANY == MAY_BE_DOUBLE) {
					zend_reg dst_reg = (Z_MODE(ret_addr) == IS_REG) ? Z_REG(ret_addr) : ZREG_XMM0;
				if (Z_LVAL_P(zv) == 0) {
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					} else {
		dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					}
				} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
					} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
					}
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2730, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
					} else {
		dasm_put(Dst, 2754, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
					}
				}
			if (Z_MODE(ret_addr) == IS_REG) {
				if (dst_reg != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
				} else if (Z_LVAL_P(zv) == 0 && Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1741, (Z_REG(ret_addr)), (Z_REG(ret_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
							if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1749, (Z_REG(ret_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
							} else {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R0), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
							}
						} else {
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1756, (Z_REG(ret_addr)), Z_LVAL_P(zv));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 3894, (Z_REG(ret_addr)), Z_OFFSET(ret_addr), Z_LVAL_P(zv));
			}
						}
				}
			}
			if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
				if (MAY_BE_ANY == MAY_BE_DOUBLE) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
					}
				} else if (((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (MAY_BE_ANY & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
				}
			}
#line 11869 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REFCOUNTED_P(zv)) {
			//|	ADDREF_CONST zv, r0
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 6384, (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
					} else {
			dasm_put(Dst, 3918, Z_LVAL_P(zv));
					}
#line 11871 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (opline->op1_type == IS_TMP_VAR) {
		//|	ZVAL_COPY_VALUE ret_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(ret_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
						}
					} else if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(ret_addr)), (Z_REG(ret_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(ret_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(ret_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(ret_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(ret_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ret_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
					}
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(ret_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
					} else if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(ret_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(ret_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(ret_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
					}
				} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
			}
			if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(op1_info & MAY_BE_GUARD) &&
				has_concrete_type(op1_info & MAY_BE_ANY)) {
				if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(op1_info);
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info));
			}
#line 11874 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (opline->op1_type == IS_CV) {
		if (op1_info & MAY_BE_REF) {
			//|	LOAD_ZVAL_ADDR r0, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 6420, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 6428, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 11877 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	ZVAL_DEREF r0, op1_info
				if (op1_info & MAY_BE_REF) {
			dasm_put(Dst, 3837, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
				}
#line 11878 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);
		}
		//|	ZVAL_COPY_VALUE ret_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(ret_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
						}
					} else if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(ret_addr)), (Z_REG(ret_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(ret_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(ret_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(ret_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(ret_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ret_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
					}
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(ret_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
					} else if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(ret_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(ret_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(ret_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
					}
				} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
			}
			if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(op1_info & MAY_BE_GUARD) &&
				has_concrete_type(op1_info & MAY_BE_ANY)) {
				if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(op1_info);
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info));
			}
#line 11881 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
			if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
			    (op1_info & (MAY_BE_REF|MAY_BE_OBJECT)) ||
			    !op_array->function_name) {
				//|	TRY_ADDREF op1_info, ah, r2
					if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
						if (op1_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				dasm_put(Dst, 2381);
						}
				dasm_put(Dst, 2205);
					}
#line 11886 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (return_value_used != 1) {
				//|	// if (EXPECTED(!(EX_CALL_INFO() & ZEND_CALL_CODE))) ZVAL_NULL(retval_ptr);
				//|	SET_ZVAL_TYPE_INFO op1_addr, IS_NULL
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 11889 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	} else {
		if (op1_info & MAY_BE_REF) {
			zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, offsetof(zend_reference, val));

			//|	IF_ZVAL_TYPE op1_addr, IS_REFERENCE, >1
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11896 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.cold_code
			dasm_put(Dst, 3945, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 11897 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	// zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
			//|	GET_ZVAL_PTR r0, op1_addr
			dasm_put(Dst, 64);
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 11900 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	// ZVAL_COPY_VALUE(return_value, &ref->value);
			//|	ZVAL_COPY_VALUE ret_addr, MAY_BE_ANY, ref_addr, op1_info, ZREG_R2, ZREG_R2
			dasm_put(Dst, 5968, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(ref_addr) == IS_REG) {
							if (Z_MODE(ret_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(ref_addr)) {
				if (Z_MODE(ret_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(ret_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(ref_addr)), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
							}
						} else if (Z_MODE(ret_addr) == IS_REG) {
				if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(ret_addr)), (Z_REG(ret_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(ret_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(ret_addr)), Z_LVAL_P(Z_ZV(ref_addr)));
							}
					}
				} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(ret_addr)), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else if (Z_MODE(ref_addr) == IS_REG) {
					if (Z_REG(ret_addr) != Z_REG(ref_addr)) {
			dasm_put(Dst, 1773, (Z_REG(ref_addr)), (Z_REG(ret_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(ref_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(ref_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(ref_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(ref_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(ref_addr)));
							}
					}
				} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else if (Z_MODE(ref_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(ref_addr)) {
			dasm_put(Dst, 1773, (Z_REG(ref_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(ret_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(ret_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
						}
					} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(ref_addr) == IS_REG) {
				if (Z_MODE(ret_addr) == IS_REG) {
					if (Z_REG(ref_addr) != Z_REG(ret_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(ref_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
				}
						} else if (Z_MODE(ret_addr) == IS_REG) {
				if (Z_MODE(ref_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(ref_addr)) {
					if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(ref_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(ref_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(ret_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(ret_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
					} else if (Z_MODE(ref_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(ref_addr) != IS_REG || ZREG_XMM0 != Z_REG(ref_addr)) {
					if (Z_MODE(ref_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(ref_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(ref_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(ref_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(ref_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(ref_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(ref_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
					} else if (Z_MODE(ref_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ref_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(ret_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(ret_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
				}
						}
					} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
					} else {
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
					}
				}
				if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(op1_info & MAY_BE_GUARD) &&
					has_concrete_type(op1_info & MAY_BE_ANY)) {
					if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
						if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(op1_info);
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R2), (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info));
				}
#line 11902 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GC_DELREF r0
			//|	je >2
			//|	// if (IS_REFCOUNTED())
			dasm_put(Dst, 6992);
#line 11905 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (jit_return_label >= 0) {
				//|	IF_NOT_REFCOUNTED dh, =>jit_return_label
				dasm_put(Dst, 7000, jit_return_label);
#line 11907 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_REFCOUNTED dh, >9
				dasm_put(Dst, 7007);
#line 11909 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	// ADDREF
			//|	GET_ZVAL_PTR r2, ret_addr // reload
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
#line 11912 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GC_ADDREF r2
			dasm_put(Dst, 7015, (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
#line 11913 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (jit_return_label >= 0) {
				//|	jmp =>jit_return_label
				dasm_put(Dst, 1645, jit_return_label);
#line 11915 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 11917 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|2:
			//|	EFREE_REFERENCE r0
			dasm_put(Dst, 4370);
			#if ZEND_DEBUG
			dasm_put(Dst, 4094);
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
			#else
			#ifdef HAVE_BUILTIN_CONSTANT_P
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree_32)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree_32));
					} else {
					if (IS_SIGNED_32BIT(_efree_32)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree_32));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree_32)), (unsigned int)((((ptrdiff_t)_efree_32))>>32));
					}
			dasm_put(Dst, 60);
					}
			#else
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
			#endif
			#endif
#line 11920 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (jit_return_label >= 0) {
				//|	jmp =>jit_return_label
				dasm_put(Dst, 1645, jit_return_label);
#line 11922 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 11924 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.code
			dasm_put(Dst, 387);
#line 11926 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	ZVAL_COPY_VALUE ret_addr, MAY_BE_ANY, op1_addr, op1_info, ZREG_R0, ZREG_R2
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(ret_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
						}
					} else if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(ret_addr)), (Z_REG(ret_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(ret_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(ret_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(ret_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(ret_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(ret_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R2 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R2));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(ret_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(ret_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
					}
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(ret_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
					} else if (Z_MODE(ret_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(ret_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(ret_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(ret_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(ret_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(ret_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(ret_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(ret_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
			}
			}
					}
				} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(ret_addr)), Z_OFFSET(ret_addr));
				}
			}
			if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(op1_info & MAY_BE_GUARD) &&
				has_concrete_type(op1_info & MAY_BE_ANY)) {
				if (Z_MODE(ret_addr) == IS_MEM_ZVAL) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(op1_info);
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(ret_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(ret_addr)), Z_OFFSET(ret_addr)+offsetof(zval,u1.type_info));
			}
#line 11928 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|9:
	dasm_put(Dst, 4204);
#line 11931 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_zval_copy_deref(dasm_State **Dst, zend_jit_addr res_addr, zend_jit_addr val_addr, zend_reg type_reg)
{
	ZEND_ASSERT(type_reg == ZREG_R2);

	//|.if not(X64)
#line 11940 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	GET_ZVAL_W2 r0, val_addr
#line 11942 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.endif
	//|	GET_ZVAL_PTR r1, val_addr
		ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 11944 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.if not(X64)
#line 11946 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	GET_ZVAL_W2 r0, val_addr
#line 11948 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.endif
	//|	IF_NOT_REFCOUNTED dh, >2
	//|	IF_NOT_TYPE dl, IS_REFERENCE, >1
	//|	GET_Z_TYPE_INFO edx, r1+offsetof(zend_reference, val)
	//|.if not(X64)
	//|	GET_Z_W2 r0, r1+offsetof(zend_reference, val)
	//|.endif
	//|	GET_Z_PTR r1, r1+offsetof(zend_reference, val)
	//|	IF_NOT_REFCOUNTED dh, >2
	//|1:
	//|	GC_ADDREF r1
	//|2:
	//|	SET_ZVAL_PTR res_addr, r1
	dasm_put(Dst, 7026, (Z_REG(val_addr)), Z_OFFSET(val_addr), IS_REFERENCE, offsetof(zend_reference, val)+offsetof(zval,u1.type_info), offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 11961 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.if not(X64)
	//|	SET_ZVAL_W2 res_addr, r0
	//|.endif
	//|	SET_ZVAL_TYPE_INFO res_addr, edx
	dasm_put(Dst, 6460, (Z_REG(res_addr)), Z_OFFSET(res_addr));
		ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 7070, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 11965 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static zend_bool zend_jit_may_avoid_refcounting(const zend_op *opline, uint32_t op1_info)
{
	switch (opline->opcode) {
		case ZEND_FETCH_OBJ_FUNC_ARG:
			if (!JIT_G(current_frame) ||
			    !JIT_G(current_frame)->call->func ||
			    !TRACE_FRAME_IS_LAST_SEND_BY_VAL(JIT_G(current_frame)->call)) {
				return 0;
			}
			/* break missing intentionally */
		case ZEND_FETCH_OBJ_R:
		case ZEND_FETCH_OBJ_IS:
			if ((op1_info & MAY_BE_OBJECT)
			 && opline->op2_type == IS_CONST
			 && Z_TYPE_P(RT_CONSTANT(opline, opline->op2)) == IS_STRING
			 && Z_STRVAL_P(RT_CONSTANT(opline, opline->op2))[0] != '\0') {
				return 1;
			}
			break;
		case ZEND_FETCH_DIM_FUNC_ARG:
			if (!JIT_G(current_frame) ||
			    !JIT_G(current_frame)->call->func ||
			    !TRACE_FRAME_IS_LAST_SEND_BY_VAL(JIT_G(current_frame)->call)) {
				return 0;
			}
			/* break missing intentionally */
		case ZEND_FETCH_DIM_R:
		case ZEND_FETCH_DIM_IS:
			return 1;
		case ZEND_ISSET_ISEMPTY_DIM_OBJ:
			if (!(opline->extended_value & ZEND_ISEMPTY)) {
				return 1;
			}
			break;
	}
	return 0;
}

static int zend_jit_fetch_dim_read(dasm_State        **Dst,
                                   const zend_op      *opline,
                                   zend_ssa           *ssa,
                                   const zend_ssa_op  *ssa_op,
                                   uint32_t            op1_info,
                                   zend_jit_addr       op1_addr,
                                   zend_bool           op1_avoid_refcounting,
                                   uint32_t            op2_info,
                                   uint32_t            res_info,
                                   zend_jit_addr       res_addr,
                                   int                 may_throw)
{
	zend_jit_addr orig_op1_addr, op2_addr;
	const void *exit_addr = NULL;
	const void *not_found_exit_addr = NULL;
	const void *res_exit_addr = NULL;
	zend_bool result_avoid_refcounting = 0;
	uint32_t may_be_string = (opline->opcode != ZEND_FETCH_LIST_R) ? MAY_BE_STRING : 0;

	orig_op1_addr = OP1_ADDR();
	op2_addr = OP2_ADDR();

	if (opline->opcode != ZEND_FETCH_DIM_IS
	 && JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
		int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		if (!exit_addr) {
			return 0;
		}
	}

	if ((res_info & MAY_BE_GUARD)
	 && JIT_G(current_frame)
	 && (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_ARRAY) {
		uint32_t flags = 0;
		uint32_t old_op1_info = 0;
		uint32_t old_info;
		zend_jit_trace_stack *stack = JIT_G(current_frame)->stack;
		int32_t exit_point;

		if (opline->opcode != ZEND_FETCH_LIST_R
		 && (opline->op1_type & (IS_VAR|IS_TMP_VAR))
		 && !op1_avoid_refcounting) {
			flags |= ZEND_JIT_EXIT_FREE_OP1;
		}
		if ((opline->op2_type & (IS_VAR|IS_TMP_VAR))
		 && (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			flags |= ZEND_JIT_EXIT_FREE_OP2;
		}
		if ((opline->result_type & (IS_VAR|IS_TMP_VAR))
		 && !(flags & ZEND_JIT_EXIT_FREE_OP1)
		 && (res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))
		 && (ssa_op+1)->op1_use == ssa_op->result_def
		 && !(op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF) - (MAY_BE_STRING|MAY_BE_LONG)))
		 && zend_jit_may_avoid_refcounting(opline+1, res_info)) {
			result_avoid_refcounting = 1;
			ssa->var_info[ssa_op->result_def].avoid_refcounting = 1;
		}

		if (op1_avoid_refcounting) {
			old_op1_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->op1.var));
			SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->op1.var), ZREG_NONE);
		}

		if (!(op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF) - (MAY_BE_STRING|MAY_BE_LONG)))) {
			old_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var));
			SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_UNKNOWN, 1);
			SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_ZVAL_COPY_R0);
			exit_point = zend_jit_trace_get_exit_point(opline+1, flags);
			SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var), old_info);
			res_exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if (!res_exit_addr) {
				return 0;
			}
			res_info &= ~MAY_BE_GUARD;
			ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
		}

		if (opline->opcode == ZEND_FETCH_DIM_IS
		 && !(res_info & MAY_BE_NULL)) {
			old_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var));
			SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_NULL, 0);
			SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_NULL);
			exit_point = zend_jit_trace_get_exit_point(opline+1, flags);
			SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var), old_info);
			not_found_exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if (!not_found_exit_addr) {
				return 0;
			}
		}

		if (op1_avoid_refcounting) {
			SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->op1.var), old_op1_info);
		}
	}

	if (op1_info & MAY_BE_REF) {
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12105 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	ZVAL_DEREF FCARG1a, op1_info
			if (op1_info & MAY_BE_REF) {
		dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
			}
#line 12106 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	if (op1_info & MAY_BE_ARRAY) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
			if (exit_addr && !(op1_info & (MAY_BE_OBJECT|may_be_string))) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_ARRAY, &exit_addr
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY, (ptrdiff_t)(exit_addr));
#line 12113 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_ARRAY, >7
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 4349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY);
#line 12115 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	GET_ZVAL_LVAL ZREG_FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12118 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!zend_jit_fetch_dimension_address_inner(Dst, opline, (opline->opcode != ZEND_FETCH_DIM_IS) ? BP_VAR_R : BP_VAR_IS, op1_info, op2_info, res_exit_addr, not_found_exit_addr, exit_addr)) {
			return 0;
		}
	}

	if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY)) {
		if (op1_info & MAY_BE_ARRAY) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 12126 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 12127 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (opline->opcode != ZEND_FETCH_LIST_R && (op1_info & MAY_BE_STRING)) {
			if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_STRING))) {
				if (exit_addr && !(op1_info & MAY_BE_OBJECT)) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, &exit_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING, (ptrdiff_t)(exit_addr));
#line 12133 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, >6
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 12135 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 12138 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GET_ZVAL_LVAL ZREG_FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
			dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
							}
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else if (Z_MODE(op1_addr) == IS_REG) {
					if (ZREG_FCARG1a != Z_REG(op1_addr)) {
			dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
					}
				} else {
					ZEND_UNREACHABLE();
				}
#line 12139 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode != ZEND_FETCH_DIM_IS) {
				if ((op2_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) == MAY_BE_LONG) {
					//|	GET_ZVAL_LVAL ZREG_FCARG2a, op2_addr
						if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op2_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op2_addr)))) {
					dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op2_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op2_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op2_addr)));
									}
							}
						} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else if (Z_MODE(op2_addr) == IS_REG) {
							if (ZREG_FCARG2a != Z_REG(op2_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op2_addr)), (ZREG_FCARG2a));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 12142 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_jit_fetch_dim_str_offset_r_helper, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_str_offset_r_helper)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_str_offset_r_helper));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_fetch_dim_str_offset_r_helper)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_str_offset_r_helper));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_str_offset_r_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_str_offset_r_helper))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 12143 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
						if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
					dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
							}
						} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(op2_addr)) {
					dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
						} else {
					dasm_put(Dst, 2357, (Z_REG(op2_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 12145 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_jit_fetch_dim_str_r_helper, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_str_r_helper)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_str_r_helper));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_fetch_dim_str_r_helper)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_str_r_helper));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_str_r_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_str_r_helper))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 12146 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	SET_ZVAL_PTR res_addr, r0
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12148 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_STRING
				dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_STRING);
#line 12149 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 12151 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if X64
					//|   LOAD_ZVAL_ADDR CARG3, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 12153 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|   PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
				//|	EXT_CALL zend_jit_fetch_dim_str_is_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_str_is_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_str_is_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_str_is_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_str_is_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_str_is_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_str_is_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12158 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if not(X64)
				//|	add r4, 12
				//|.endif
			}
			if ((op1_info & MAY_BE_ARRAY) ||
				(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_STRING)))) {
				//|	jmp >9 // END
				dasm_put(Dst, 3682);
#line 12165 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|6:
			dasm_put(Dst, 3385);
#line 12167 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (op1_info & MAY_BE_OBJECT) {
			if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string))) {
				if (exit_addr) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, &exit_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 12173 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, >6
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT);
#line 12175 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 12178 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		    if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 12180 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		    }
			if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
				//|	LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
						if (IS_SIGNED_32BIT((Z_ZV(op2_addr) + 1))) {
				dasm_put(Dst, 707, ((ptrdiff_t)(Z_ZV(op2_addr) + 1)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)(Z_ZV(op2_addr) + 1))), (unsigned int)((((ptrdiff_t)(Z_ZV(op2_addr) + 1)))>>32));
						}
#line 12184 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 12186 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.if X64
				//|   LOAD_ZVAL_ADDR CARG3, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 12189 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 12
				//|   PUSH_ZVAL_ADDR res_addr, r0
			//|.endif
			if (opline->opcode != ZEND_FETCH_DIM_IS) {
				//|	EXT_CALL zend_jit_fetch_dim_obj_r_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_obj_r_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_obj_r_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_obj_r_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_obj_r_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_obj_r_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_obj_r_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12195 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	EXT_CALL zend_jit_fetch_dim_obj_is_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_obj_is_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_obj_is_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_obj_is_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_obj_is_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_obj_is_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_obj_is_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12197 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.if not(X64)
			//|	add r4, 12
			//|.endif
			if ((op1_info & MAY_BE_ARRAY) ||
				(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string)))) {
				//|	jmp >9 // END
				dasm_put(Dst, 3682);
#line 12204 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|6:
			dasm_put(Dst, 3385);
#line 12206 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if ((op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string)))
		 && (!exit_addr || !(op1_info & (MAY_BE_ARRAY|MAY_BE_OBJECT|may_be_string)))) {
			if ((opline->opcode != ZEND_FETCH_DIM_IS && (op1_info & MAY_BE_UNDEF)) || (op2_info & MAY_BE_UNDEF)) {
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 12212 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (opline->opcode != ZEND_FETCH_DIM_IS && (op1_info & MAY_BE_UNDEF)) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12214 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
					//|	mov FCARG1d, opline->op1.var
					//|	EXT_CALL zend_jit_undefined_op_helper, r0
					dasm_put(Dst, 7078, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF, opline->op1.var);
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 12217 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 12218 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}

				if (op2_info & MAY_BE_UNDEF) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_UNDEF, >1
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
#line 12222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	mov FCARG1d, opline->op2.var
					//|	EXT_CALL zend_jit_undefined_op_helper, r0
					dasm_put(Dst, 7078, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_UNDEF, opline->op2.var);
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 12224 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 12225 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}

			if (opline->opcode != ZEND_FETCH_DIM_IS && opline->opcode != ZEND_FETCH_LIST_R) {
				if ((op1_info & MAY_BE_UNDEF) || (op2_info & MAY_BE_UNDEF)) {
					//|	LOAD_ZVAL_ADDR FCARG1a, orig_op1_addr
						if (Z_MODE(orig_op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(orig_op1_addr))) {
					dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(orig_op1_addr)));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(orig_op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(orig_op1_addr)))>>32));
							}
						} else if (Z_MODE(orig_op1_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(orig_op1_addr)) {
					dasm_put(Dst, 2314, (Z_REG(orig_op1_addr)), Z_OFFSET(orig_op1_addr));
						} else {
					dasm_put(Dst, 2322, (Z_REG(orig_op1_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 12231 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	SET_EX_OPLINE opline, r0
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
#line 12233 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (Z_MODE(op1_addr) != IS_MEM_ZVAL ||
					    Z_REG(op1_addr) != ZREG_FCARG1a ||
					    Z_OFFSET(op1_addr) != 0) {
						//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
							if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
						dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
								} else {
						dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
								}
							} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
							if (Z_OFFSET(op1_addr)) {
						dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
							} else {
						dasm_put(Dst, 2322, (Z_REG(op1_addr)));
							}
							} else {
								ZEND_UNREACHABLE();
							}
#line 12237 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				//|	EXT_CALL zend_jit_invalid_array_access, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_array_access)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_array_access));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_invalid_array_access)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_array_access));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_array_access)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_array_access))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12240 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 12242 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & MAY_BE_ARRAY) {
				//|	jmp >9 // END
				dasm_put(Dst, 3682);
#line 12244 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}

		if (op1_info & MAY_BE_ARRAY) {
			//|.code
			dasm_put(Dst, 387);
#line 12249 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op1_info & MAY_BE_ARRAY) {
		zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

		//|8:
		dasm_put(Dst, 4301);
#line 12256 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (res_exit_addr) {
			zend_uchar type = concrete_type(res_info);

			if (op1_info & MAY_BE_ARRAY_OF_REF) {
				//|	ZVAL_DEREF r0, MAY_BE_REF
					if (MAY_BE_REF & MAY_BE_REF) {
				dasm_put(Dst, 3837, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
					}
#line 12261 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (type < IS_STRING) {
				//|	IF_NOT_ZVAL_TYPE val_addr, type, &res_exit_addr
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), type, (ptrdiff_t)(res_exit_addr));
#line 12264 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	GET_ZVAL_TYPE_INFO edx, val_addr
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 12266 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	IF_NOT_TYPE dl, type, &res_exit_addr
				dasm_put(Dst, 7093, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info), type, (ptrdiff_t)(res_exit_addr));
#line 12267 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	// ZVAL_COPY
			//|7:
			//|	ZVAL_COPY_VALUE_V res_addr, -1, val_addr, res_info, ZREG_R0, ZREG_R1
			dasm_put(Dst, 4449);
				if (res_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (ZREG_R1 != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R1));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(res_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
#line 12271 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (type < IS_STRING) {
					if (Z_REG(res_addr) != ZREG_FP ||
					    JIT_G(current_frame) == NULL ||
					    STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(Z_OFFSET(res_addr))) != type) {
						//|	SET_ZVAL_TYPE_INFO res_addr, type
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
#line 12277 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				} else {
					//|	SET_ZVAL_TYPE_INFO res_addr, edx
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 7070, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 12280 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!result_avoid_refcounting) {
						//|	TRY_ADDREF res_info, dh, r1
							if (res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
								if (res_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						dasm_put(Dst, 4107);
								}
						dasm_put(Dst, 2171);
							}
#line 12282 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
			} else if (!zend_jit_store_var_if_necessary(Dst, opline->result.var, res_addr, res_info)) {
				return 0;
			}
		} else if (op1_info & MAY_BE_ARRAY_OF_REF) {
			//|	// ZVAL_COPY_DEREF
			//|	GET_ZVAL_TYPE_INFO Rd(ZREG_R2), val_addr
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
#line 12290 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (!zend_jit_zval_copy_deref(Dst, res_addr, val_addr, ZREG_R2)) {
				return 0;
			}
		} else  {
			//|	// ZVAL_COPY
			//|	ZVAL_COPY_VALUE res_addr, -1, val_addr, res_info, ZREG_R1, ZREG_R2
				if (res_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(res_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((res_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(res_info & MAY_BE_GUARD) &&
					has_concrete_type(res_info & MAY_BE_ANY)) {
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (res_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(res_info);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 12296 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	TRY_ADDREF res_info, ch, r2
				if (res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
					if (res_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			dasm_put(Dst, 2197);
					}
			dasm_put(Dst, 2205);
				}
#line 12297 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	//|9: // END
	dasm_put(Dst, 4204);
#line 12300 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

#ifdef ZEND_JIT_USE_RC_INFERENCE
	if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & MAY_BE_OBJECT)) {
		/* Magic offsetGet() may increase refcount of the key */
		op2_info |= MAY_BE_RCN;
	}
#endif

	//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
		if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
			if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op2_info) & MAY_BE_GUARD)
			 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 12309 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->opcode != ZEND_FETCH_LIST_R && !op1_avoid_refcounting) {
		//|	FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline
			if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 12311 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (may_throw) {
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_fetch_dim(dasm_State    **Dst,
                              const zend_op  *opline,
                              uint32_t        op1_info,
                              zend_jit_addr   op1_addr,
                              uint32_t        op2_info,
                              zend_jit_addr   res_addr,
                              int             may_throw)
{
	zend_jit_addr op2_addr;

	op2_addr = (opline->op2_type != IS_UNUSED) ? OP2_ADDR() : 0;

	if (op1_info & MAY_BE_REF) {
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12336 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	IF_NOT_Z_TYPE FCARG1a, IS_REFERENCE, >1
		//|	GET_Z_PTR FCARG2a, FCARG1a
		//|	IF_NOT_TYPE byte [FCARG2a + offsetof(zend_reference, val) + offsetof(zval, u1.v.type)], IS_ARRAY, >2
		//|	lea FCARG1a, [FCARG2a + offsetof(zend_reference, val)]
		//|	jmp >3
		//|.cold_code
		dasm_put(Dst, 4304, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val) + offsetof(zval, u1.v.type), IS_ARRAY, offsetof(zend_reference, val));
#line 12342 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 2037);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 12344 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_jit_prepare_assign_dim_ref, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_prepare_assign_dim_ref)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_prepare_assign_dim_ref));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_prepare_assign_dim_ref)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_prepare_assign_dim_ref));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_prepare_assign_dim_ref)), (unsigned int)((((ptrdiff_t)zend_jit_prepare_assign_dim_ref))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 12345 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	test r0, r0
		//|	mov FCARG1a, r0
		//|	jne >1
		//|	jmp ->exception_handler_undef
		//|.code
		dasm_put(Dst, 4333);
#line 12350 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 12351 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	if (op1_info & MAY_BE_ARRAY) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_ARRAY, >7
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY);
#line 12357 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|3:
		//|	SEPARATE_ARRAY op1_addr, op1_info, 1
		dasm_put(Dst, 347);
			if (RC_MAY_BE_N(op1_info)) {
				if (Z_REG(op1_addr) != ZREG_FP) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R0), (ZREG_R0));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_R0 != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_R0));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					if (RC_MAY_BE_1(op1_info)) {
		dasm_put(Dst, 4362);
					}
					if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
					}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_zval_array_dup)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_zval_array_dup));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_zval_array_dup)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_zval_array_dup));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_zval_array_dup)), (unsigned int)((((ptrdiff_t)zend_jit_zval_array_dup))>>32));
				}
		dasm_put(Dst, 60);
				}
		dasm_put(Dst, 4370);
				} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					if (RC_MAY_BE_1(op1_info)) {
		dasm_put(Dst, 4376);
						if (1) {
		dasm_put(Dst, 4380);
		dasm_put(Dst, 64);
						} else {
		dasm_put(Dst, 3649);
						}
					}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4386, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_dup)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_dup));
				} else {
				if (IS_SIGNED_32BIT(zend_array_dup)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_dup));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_dup)), (unsigned int)((((ptrdiff_t)zend_array_dup))>>32));
				}
		dasm_put(Dst, 60);
				}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4405, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
					if (RC_MAY_BE_1(op1_info)) {
						if (1) {
		dasm_put(Dst, 2912);
						}
					}
		dasm_put(Dst, 2037);
				}
			} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			}
#line 12360 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE)) {
		if (op1_info & MAY_BE_ARRAY) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 12364 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 12365 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
			//|	CMP_ZVAL_TYPE op1_addr, IS_FALSE
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12368 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jg >7
			dasm_put(Dst, 4417, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_FALSE);
#line 12369 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (Z_REG(op1_addr) != ZREG_FP) {
			//|	mov T1, Ra(Z_REG(op1_addr)) // save
			dasm_put(Dst, 3517, (Z_REG(op1_addr)));
#line 12372 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if ((op1_info & MAY_BE_UNDEF)
		 && opline->opcode == ZEND_FETCH_DIM_RW) {
			if (op1_info & (MAY_BE_NULL|MAY_BE_FALSE)) {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 12377 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 12379 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG1a, opline->op1.var
			//|	EXT_CALL zend_jit_undefined_op_helper, r0
			dasm_put(Dst, 702, opline->op1.var);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 12381 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 12382 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	// ZVAL_ARR(container, zend_new_array(8));
		//|	EXT_CALL _zend_new_array_0, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(_zend_new_array_0)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_zend_new_array_0));
				} else {
				if (IS_SIGNED_32BIT(_zend_new_array_0)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_zend_new_array_0));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_new_array_0)), (unsigned int)((((ptrdiff_t)_zend_new_array_0))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 12385 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REG(op1_addr) != ZREG_FP) {
			//|	mov Ra(Z_REG(op1_addr)), T1 // restore
			dasm_put(Dst, 3539, (Z_REG(op1_addr)));
#line 12387 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_ZVAL_LVAL op1_addr, r0
			if (Z_MODE(op1_addr) == IS_REG) {
		dasm_put(Dst, 2279, (Z_REG(op1_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
#line 12389 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO op1_addr, IS_ARRAY_EX
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12390 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov FCARG1a, r0
		dasm_put(Dst, 4405, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_ARRAY_EX);
#line 12391 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & MAY_BE_ARRAY) {
			//|	jmp >1
			//|.code
			dasm_put(Dst, 3783);
#line 12394 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 12395 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
		//|6:
		dasm_put(Dst, 3385);
#line 12400 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op2_type == IS_UNUSED) {
			//|	// var_ptr = zend_hash_next_index_insert(Z_ARRVAL_P(container), &EG(uninitialized_zval));
			//|	LOAD_ADDR_ZTS FCARG2a, executor_globals, uninitialized_zval
					if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
			dasm_put(Dst, 707, ((ptrdiff_t)&executor_globals.uninitialized_zval));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
					}
#line 12403 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_hash_next_index_insert, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_next_index_insert)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_next_index_insert));
					} else {
					if (IS_SIGNED_32BIT(zend_hash_next_index_insert)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_next_index_insert));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_next_index_insert)), (unsigned int)((((ptrdiff_t)zend_hash_next_index_insert))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 12404 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	// if (UNEXPECTED(!var_ptr)) {
			//|	test r0, r0
			//|	jz >1
			//|.cold_code
			dasm_put(Dst, 4430);
#line 12408 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	// zend_throw_error(NULL, "Cannot add element to the array as the next element is already occupied");
			//|	CANNOT_ADD_ELEMENT opline
			dasm_put(Dst, 64);
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
			dasm_put(Dst, 4439);
				} else {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
			dasm_put(Dst, 4444);
				}
#line 12411 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_UNDEF
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	//ZEND_VM_C_GOTO(assign_dim_op_ret_null);
			//|	jmp >8
			//|.code
			dasm_put(Dst, 7108, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_UNDEF);
#line 12415 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_PTR res_addr, r0
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT
			dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_INDIRECT);
#line 12417 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			uint32_t type;

			switch (opline->opcode) {
				case ZEND_FETCH_DIM_W:
				case ZEND_FETCH_LIST_W:
					type = BP_VAR_W;
					break;
				case ZEND_FETCH_DIM_RW:
					type = BP_VAR_RW;
					break;
				case ZEND_FETCH_DIM_UNSET:
					type = BP_VAR_UNSET;
					break;
				default:
					ZEND_UNREACHABLE();
			}

			if (!zend_jit_fetch_dimension_address_inner(Dst, opline, type, op1_info, op2_info, NULL, NULL, NULL)) {
				return 0;
			}

			//|8:
			//|	SET_ZVAL_PTR res_addr, r0
			dasm_put(Dst, 4301);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12441 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT
			dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_INDIRECT);
#line 12442 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			if (type == BP_VAR_RW || (op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_LONG|MAY_BE_STRING)))) {
				//|.cold_code
				dasm_put(Dst, 290);
#line 12445 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|9:
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
				dasm_put(Dst, 4204);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12447 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp >8
				//|.code
				dasm_put(Dst, 7108, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 12449 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

	if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY))) {
		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 12456 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 12457 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 12460 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 12462 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	    if (opline->op2_type == IS_UNUSED) {
			//|	xor FCARG2a, FCARG2a
			dasm_put(Dst, 2363);
#line 12465 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
			ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
			//|	LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
					if (IS_SIGNED_32BIT((Z_ZV(op2_addr) + 1))) {
			dasm_put(Dst, 707, ((ptrdiff_t)(Z_ZV(op2_addr) + 1)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)(Z_ZV(op2_addr) + 1))), (unsigned int)((((ptrdiff_t)(Z_ZV(op2_addr) + 1)))>>32));
					}
#line 12468 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
				if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
					}
				} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op2_addr)) {
			dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(op2_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 12470 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(res_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 12473 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 12
			//|	PUSH_ZVAL_ADDR res_addr, r0
		//|.endif
		switch (opline->opcode) {
			case ZEND_FETCH_DIM_W:
			case ZEND_FETCH_LIST_W:
				//|	EXT_CALL zend_jit_fetch_dim_obj_w_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_obj_w_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_obj_w_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_obj_w_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_obj_w_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_obj_w_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_obj_w_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12481 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_FETCH_DIM_RW:
				//|	EXT_CALL zend_jit_fetch_dim_obj_rw_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_dim_obj_rw_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_dim_obj_rw_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_fetch_dim_obj_rw_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_dim_obj_rw_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_dim_obj_rw_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_dim_obj_rw_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12484 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
//			case ZEND_FETCH_DIM_UNSET:
//				|	EXT_CALL zend_jit_fetch_dim_obj_unset_helper, r0
//				break;
			default:
				ZEND_UNREACHABLE();
			}
		//|.if not(X64)
		//|	add r4, 12
		//|.endif

		if (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY)) {
			//|	jmp >8 // END
			//|.code
			dasm_put(Dst, 6828);
#line 12498 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

#ifdef ZEND_JIT_USE_RC_INFERENCE
	if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & (MAY_BE_UNDEF|MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_ARRAY|MAY_BE_OBJECT))) {
		/* ASSIGN_DIM may increase refcount of the key */
		op2_info |= MAY_BE_RCN;
	}
#endif

	//|8:
	//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
	dasm_put(Dst, 4301);
		if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
			if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op2_info) & MAY_BE_GUARD)
			 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 12510 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (may_throw) {
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_isset_isempty_dim(dasm_State    **Dst,
                                      const zend_op  *opline,
                                      uint32_t        op1_info,
                                      zend_jit_addr   op1_addr,
                                      zend_bool       op1_avoid_refcounting,
                                      uint32_t        op2_info,
                                      int             may_throw,
                                      zend_uchar      smart_branch_opcode,
                                      uint32_t        target_label,
                                      uint32_t        target_label2,
                                      const void     *exit_addr)
{
	zend_jit_addr op2_addr, res_addr;

	// TODO: support for empty() ???
	ZEND_ASSERT(!(opline->extended_value & ZEND_ISEMPTY));

	op2_addr = OP2_ADDR();
	res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

	if (op1_info & MAY_BE_REF) {
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12542 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	ZVAL_DEREF FCARG1a, op1_info
			if (op1_info & MAY_BE_REF) {
		dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
			}
#line 12543 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	}

	if (op1_info & MAY_BE_ARRAY) {
		const void *found_exit_addr = NULL;
		const void *not_found_exit_addr = NULL;

		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY)) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_ARRAY, >7
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY);
#line 12552 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	GET_ZVAL_LVAL ZREG_FCARG1a, op1_addr
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12554 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (exit_addr
		 && !(op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY))
		 && !may_throw
		 && (!(opline->op1_type & (IS_TMP_VAR|IS_VAR)) || op1_avoid_refcounting)
		 && (!(opline->op2_type & (IS_TMP_VAR|IS_VAR)) || !(op2_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)))) {
			if (smart_branch_opcode == ZEND_JMPNZ) {
				found_exit_addr = exit_addr;
			} else {
				not_found_exit_addr = exit_addr;
			}
		}
		if (!zend_jit_fetch_dimension_address_inner(Dst, opline, BP_JIT_IS, op1_info, op2_info, found_exit_addr, not_found_exit_addr, NULL)) {
			return 0;
		}

		if (found_exit_addr) {
			//|9:
			dasm_put(Dst, 4204);
#line 12571 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			return 1;
		} else if (not_found_exit_addr) {
			//|8:
			dasm_put(Dst, 4301);
#line 12574 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			return 1;
		}
	}

	if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_ARRAY)) {
		if (op1_info & MAY_BE_ARRAY) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 12581 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 12582 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		if (op1_info & (MAY_BE_STRING|MAY_BE_OBJECT)) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 12586 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		    if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 12588 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (opline->op2_type == IS_CONST && Z_EXTRA_P(RT_CONSTANT(opline, opline->op2)) == ZEND_EXTRA_VALUE) {
				ZEND_ASSERT(Z_MODE(op2_addr) == IS_CONST_ZVAL);
				//|	LOAD_ADDR FCARG2a, (Z_ZV(op2_addr) + 1)
						if (IS_SIGNED_32BIT((Z_ZV(op2_addr) + 1))) {
				dasm_put(Dst, 707, ((ptrdiff_t)(Z_ZV(op2_addr) + 1)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)(Z_ZV(op2_addr) + 1))), (unsigned int)((((ptrdiff_t)(Z_ZV(op2_addr) + 1)))>>32));
						}
#line 12592 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	LOAD_ZVAL_ADDR FCARG2a, op2_addr
					if (Z_MODE(op2_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op2_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op2_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op2_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op2_addr)))>>32));
						}
					} else if (Z_MODE(op2_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op2_addr)) {
				dasm_put(Dst, 2349, (Z_REG(op2_addr)), Z_OFFSET(op2_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(op2_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 12594 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	EXT_CALL zend_jit_isset_dim_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_isset_dim_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_isset_dim_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_isset_dim_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_isset_dim_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_isset_dim_helper)), (unsigned int)((((ptrdiff_t)zend_jit_isset_dim_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 12596 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	test r0, r0
			//|	jz >9
			dasm_put(Dst, 3760);
#line 12598 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (op1_info & MAY_BE_ARRAY) {
				//|	jmp >8
				//|.code
				dasm_put(Dst, 6828);
#line 12601 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (op2_info & MAY_BE_UNDEF) {
				if (op2_info & MAY_BE_ANY) {
					//|	IF_NOT_ZVAL_TYPE op2_addr, IS_UNDEF, >1
						ZEND_ASSERT(Z_MODE(op2_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(op2_addr)), Z_OFFSET(op2_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 12606 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 12608 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	mov FCARG1d, opline->op2.var
				//|	EXT_CALL zend_jit_undefined_op_helper, r0
				dasm_put(Dst, 2311, opline->op2.var);
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 12610 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				dasm_put(Dst, 64);
#line 12611 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (op1_info & MAY_BE_ARRAY) {
				//|	jmp >9
				//|.code
				dasm_put(Dst, 4173);
#line 12615 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
	}

#ifdef ZEND_JIT_USE_RC_INFERENCE
	if ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) && (op1_info & MAY_BE_OBJECT)) {
		/* Magic offsetExists() may increase refcount of the key */
		op2_info |= MAY_BE_RCN;
	}
#endif

	if (op1_info & (MAY_BE_ARRAY|MAY_BE_STRING|MAY_BE_OBJECT)) {
		//|8:
		//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
		dasm_put(Dst, 4301);
			if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
					if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
						if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op2_info) & MAY_BE_GUARD)
				 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 12629 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!op1_avoid_refcounting) {
			//|	FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline
				if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (0) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 12631 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (may_throw) {
			if (!zend_jit_check_exception_undef_result(Dst, opline)) {
				return 0;
			}
		}
		if (!(opline->extended_value & ZEND_ISEMPTY)) {
			if (exit_addr) {
				if (smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp &exit_addr
					dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 12641 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >8
					dasm_put(Dst, 3768);
#line 12643 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (smart_branch_opcode) {
				if (smart_branch_opcode == ZEND_JMPZ) {
					//|	jmp =>target_label2
					dasm_put(Dst, 1645, target_label2);
#line 12647 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (smart_branch_opcode == ZEND_JMPNZ) {
					//|	jmp =>target_label
					dasm_put(Dst, 1645, target_label);
#line 12649 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else if (smart_branch_opcode == ZEND_JMPZNZ) {
					//|	jmp =>target_label2
					dasm_put(Dst, 1645, target_label2);
#line 12651 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					ZEND_UNREACHABLE();
				}
			} else {
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12656 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp >8
				dasm_put(Dst, 7122, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 12657 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	//????
			//|	int3
			dasm_put(Dst, 1562);
#line 12661 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	//|9: // not found
	//|	FREE_OP opline->op2_type, opline->op2, op2_info, 0, opline
	dasm_put(Dst, 4204);
		if (opline->op2_type & (IS_VAR|IS_TMP_VAR)) {
		if ((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
			if ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				if (0) {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
	dasm_put(Dst, 64);
				} else {
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				}
			}
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)));
			if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op2_info)) {
				if (((op2_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op2_info)) {
					if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 317);
					} else {
	dasm_put(Dst, 322);
					}
				}
		do {
			if (!((op2_info) & MAY_BE_GUARD)
			 && has_concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				zend_uchar type = concrete_type((op2_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
				if (type == IS_STRING && !ZEND_DEBUG) {
			if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
	dasm_put(Dst, 46, (ptrdiff_t)(_efree));
			} else {
			if (IS_SIGNED_32BIT(_efree)) {
	dasm_put(Dst, 50, ((ptrdiff_t)_efree));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				} else if (type == IS_ARRAY) {
					if ((op2_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
						if (opline && ((op2_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
						}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
			} else {
			if (IS_SIGNED_32BIT(zend_array_destroy)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
			}
	dasm_put(Dst, 60);
			}
					} else {
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_array_free)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
			}
	dasm_put(Dst, 60);
			}
					}
					break;
				} else if (type == IS_OBJECT) {
					if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
					}
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
			} else {
			if (IS_SIGNED_32BIT(zend_objects_store_del)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
			}
	dasm_put(Dst, 60);
			}
					break;
				}
			}
			if (opline) {
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
			}
			if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
			} else {
			if (IS_SIGNED_32BIT(rc_dtor_func)) {
	dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
			}
	dasm_put(Dst, 60);
			}
		} while(0);
				if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
	dasm_put(Dst, 342);
				}
	dasm_put(Dst, 347);
			}
			if (0 && (((op2_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op2_info) && ((op2_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
				if ((op2_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
					zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var)) == IS_MEM_ZVAL);
	dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
		ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
				}
	dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
			if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
	dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
			} else {
			if (IS_SIGNED_32BIT(gc_possible_root)) {
	dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
			}
	dasm_put(Dst, 60);
			}
			}
			if (0 && ((op2_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
	dasm_put(Dst, 383);
			}
	dasm_put(Dst, 389);
		}
		}
#line 12666 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!op1_avoid_refcounting) {
		//|	FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline
			if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 12668 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (may_throw) {
		if (!zend_jit_check_exception_undef_result(Dst, opline)) {
			return 0;
		}
	}
	if (!(opline->extended_value & ZEND_ISEMPTY)) {
		if (exit_addr) {
			if (smart_branch_opcode == ZEND_JMPZ) {
				//|	jmp &exit_addr
				dasm_put(Dst, 151, (ptrdiff_t)(exit_addr));
#line 12678 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (smart_branch_opcode) {
			if (smart_branch_opcode == ZEND_JMPZ) {
				//|	jmp =>target_label
				dasm_put(Dst, 1645, target_label);
#line 12682 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (smart_branch_opcode == ZEND_JMPNZ) {
			} else if (smart_branch_opcode == ZEND_JMPZNZ) {
				//|	jmp =>target_label
				dasm_put(Dst, 1645, target_label);
#line 12685 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				ZEND_UNREACHABLE();
			}
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 12690 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|	//????
		//|	int3
		dasm_put(Dst, 1562);
#line 12694 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|8:
	dasm_put(Dst, 4301);
#line 12697 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_bind_global(dasm_State **Dst, const zend_op *opline, uint32_t op1_info)
{
	zend_jit_addr op1_addr = OP1_ADDR();
	zend_string *varname = Z_STR_P(RT_CONSTANT(opline, opline->op2));

	//|	// idx = (uint32_t)(uintptr_t)CACHED_PTR(opline->extended_value) - 1;
	//|	mov r0, EX->run_time_cache
	//|	mov r0, aword [r0 + opline->extended_value]
	//|	sub r0, 1
	//|	// if (EXPECTED(idx < EG(symbol_table).nNumUsed * sizeof(Bucket)))
	//|	MEM_OP2_2_ZTS mov, ecx, dword, executor_globals, symbol_table.nNumUsed, r1
	dasm_put(Dst, 7135, Dt1(->run_time_cache), opline->extended_value);
			if (IS_SIGNED_32BIT(&executor_globals.symbol_table.nNumUsed)) {
	dasm_put(Dst, 5476, &executor_globals.symbol_table.nNumUsed);
			} else {
	dasm_put(Dst, 7149, (unsigned int)(((ptrdiff_t)&executor_globals.symbol_table.nNumUsed)), (unsigned int)((((ptrdiff_t)&executor_globals.symbol_table.nNumUsed))>>32));
			}
#line 12712 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.if X64
		//|	shl r1, 5
	//|.else
		//|	imul r1, sizeof(Bucket)
	//|.endif
	//|	cmp r0, r1
	//|	jae >9
	//|	// Bucket *p = (Bucket*)((char*)EG(symbol_table).arData + idx);
	//|	MEM_OP2_2_ZTS add, r0, aword, executor_globals, symbol_table.arData, r1
	dasm_put(Dst, 7156);
			if (IS_SIGNED_32BIT(&executor_globals.symbol_table.arData)) {
	dasm_put(Dst, 7168, &executor_globals.symbol_table.arData);
			} else {
	dasm_put(Dst, 7174, (unsigned int)(((ptrdiff_t)&executor_globals.symbol_table.arData)), (unsigned int)((((ptrdiff_t)&executor_globals.symbol_table.arData))>>32));
			}
#line 12721 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	IF_NOT_Z_TYPE r0, IS_REFERENCE, >9
	//|	// (EXPECTED(p->key == varname))
	//|	ADDR_OP2_2 cmp, aword [r0 + offsetof(Bucket, key)], varname, r1
	dasm_put(Dst, 7182, offsetof(zval, u1.v.type), IS_REFERENCE);
			if (IS_SIGNED_32BIT(varname)) {
	dasm_put(Dst, 5843, offsetof(Bucket, key), ((ptrdiff_t)varname));
			} else {
	dasm_put(Dst, 5834, (unsigned int)(((ptrdiff_t)varname)), (unsigned int)((((ptrdiff_t)varname))>>32), offsetof(Bucket, key));
			}
#line 12724 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jne >9
	//|	GET_Z_PTR r0, r0
	//|	GC_ADDREF r0
	//|1:
	dasm_put(Dst, 7191);
#line 12728 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			//|	// if (UNEXPECTED(Z_REFCOUNTED_P(variable_ptr)))
			//|	IF_ZVAL_REFCOUNTED op1_addr, >2
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12732 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.cold_code
			dasm_put(Dst, 7204, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
#line 12733 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|2:
			dasm_put(Dst, 2037);
#line 12734 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	// zend_refcounted *garbage = Z_COUNTED_P(variable_ptr);
		//|	GET_ZVAL_PTR FCARG1a, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12737 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// ZVAL_REF(variable_ptr, ref)
		//|	SET_ZVAL_PTR op1_addr, r0
		dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12739 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO op1_addr, IS_REFERENCE_EX
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12740 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// if (GC_DELREF(garbage) == 0)
		//|	GC_DELREF FCARG1a
		dasm_put(Dst, 7219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_REFERENCE_EX);
#line 12742 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) {
			//|	jnz >3
			dasm_put(Dst, 317);
#line 12744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jnz >5
			dasm_put(Dst, 4278);
#line 12746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	ZVAL_DTOR_FUNC op1_info, opline
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
#line 12748 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >5
		dasm_put(Dst, 3380);
#line 12749 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) {
			//|3:
			//|	// GC_ZVAL_CHECK_POSSIBLE_ROOT(variable_ptr)
			//|	IF_GC_MAY_NOT_LEAK FCARG1a, >5
			//|	EXT_CALL gc_possible_root, r1
			dasm_put(Dst, 7231, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 4487, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 7243);
					}
#line 12754 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >5
			dasm_put(Dst, 3380);
#line 12755 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			//|.code
			dasm_put(Dst, 387);
#line 12758 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF) - (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
		//|	// ZVAL_REF(variable_ptr, ref)
		//|	SET_ZVAL_PTR op1_addr, r0
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 12764 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO op1_addr, IS_REFERENCE_EX
		dasm_put(Dst, 2285, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info), IS_REFERENCE_EX);
#line 12765 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|5:
	dasm_put(Dst, 495);
#line 12767 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//END of handler

	//|.cold_code
	dasm_put(Dst, 290);
#line 12770 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9:
	//|	LOAD_ADDR FCARG1a, (ptrdiff_t)varname
	dasm_put(Dst, 4204);
			if (IS_SIGNED_32BIT((ptrdiff_t)varname)) {
	dasm_put(Dst, 702, ((ptrdiff_t)(ptrdiff_t)varname));
			} else {
	dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)(ptrdiff_t)varname)), (unsigned int)((((ptrdiff_t)(ptrdiff_t)varname))>>32));
			}
#line 12772 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	mov FCARG2a, EX->run_time_cache
	dasm_put(Dst, 972, Dt1(->run_time_cache));
#line 12773 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->extended_value) {
		//|	add FCARG2a, opline->extended_value
		dasm_put(Dst, 7247, opline->extended_value);
#line 12775 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	EXT_CALL zend_jit_fetch_global_helper, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_global_helper)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_global_helper));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_fetch_global_helper)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_global_helper));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_global_helper)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_global_helper))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 12777 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	jmp <1
	//|.code
	dasm_put(Dst, 7252);
#line 12779 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_verify_arg_type(dasm_State **Dst, const zend_op *opline, zend_arg_info *arg_info, zend_bool check_exception)
{
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	zend_bool in_cold = 0;
	uint32_t type_mask = ZEND_TYPE_PURE_MASK(arg_info->type) & MAY_BE_ANY;
	zend_reg tmp_reg = (type_mask == 0 || is_power_of_two(type_mask)) ? ZREG_FCARG1a : ZREG_R0;

	if (ZEND_ARG_SEND_MODE(arg_info)) {
		if (opline->opcode == ZEND_RECV_INIT) {
			//|	LOAD_ZVAL_ADDR Ra(tmp_reg), res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 1756, (tmp_reg), ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 1749, (tmp_reg), (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 2470, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1773, (Z_REG(res_addr)), (tmp_reg));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 12793 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	ZVAL_DEREF Ra(tmp_reg), MAY_BE_REF
				if (MAY_BE_REF & MAY_BE_REF) {
			dasm_put(Dst, 7258, (tmp_reg), offsetof(zval, u1.v.type), IS_REFERENCE, (tmp_reg), (tmp_reg), 0, (tmp_reg), offsetof(zend_reference, val));
				}
#line 12794 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			res_addr = ZEND_ADDR_MEM_ZVAL(tmp_reg, 0);
		} else {
			//|	GET_ZVAL_PTR Ra(tmp_reg), res_addr
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (tmp_reg), (Z_REG(res_addr)), Z_OFFSET(res_addr));
#line 12797 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			res_addr = ZEND_ADDR_MEM_ZVAL(tmp_reg, offsetof(zend_reference, val));
		}
	}

	if (type_mask != 0) {
		if (is_power_of_two(type_mask)) {
			uint32_t type_code = concrete_type(type_mask);
			//|	IF_NOT_ZVAL_TYPE res_addr, type_code, >1
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type), type_code);
#line 12805 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov edx, 1
			//|	mov cl, byte [Ra(Z_REG(res_addr))+Z_OFFSET(res_addr)+offsetof(zval, u1.v.type)]
			//|	shl edx, cl
			//|	test edx, type_mask
			//|	je >1
			dasm_put(Dst, 7288, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type), type_mask);
#line 12811 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|.cold_code
		dasm_put(Dst, 290);
#line 12814 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 12815 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		in_cold = 1;
	}

	if (Z_REG(res_addr) != ZREG_FCARG1a || Z_OFFSET(res_addr) != 0) {
		//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
			if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
				}
			} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(res_addr)) {
		dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(res_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12821 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 12824 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	ADDR_OP2_2 mov, aword EX->opline, opline, r0
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
#line 12826 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	LOAD_ADDR FCARG2a, (ptrdiff_t)arg_info
			if (IS_SIGNED_32BIT((ptrdiff_t)arg_info)) {
	dasm_put(Dst, 707, ((ptrdiff_t)(ptrdiff_t)arg_info));
			} else {
	dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)(ptrdiff_t)arg_info)), (unsigned int)((((ptrdiff_t)(ptrdiff_t)arg_info))>>32));
			}
#line 12828 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	EXT_CALL zend_jit_verify_arg_slow, r0
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_verify_arg_slow)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_verify_arg_slow));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_verify_arg_slow)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_verify_arg_slow));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_verify_arg_slow)), (unsigned int)((((ptrdiff_t)zend_jit_verify_arg_slow))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 12829 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (check_exception) {
		//|	test al, al
		dasm_put(Dst, 5283);
#line 12832 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (in_cold) {
			//|	jnz >1
			//|	jmp ->exception_handler
			//|.code
			dasm_put(Dst, 6032);
#line 12836 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 12837 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jz ->exception_handler
			dasm_put(Dst, 5959);
#line 12839 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (in_cold) {
		//|	jmp >1
		//|.code
		dasm_put(Dst, 3783);
#line 12843 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 12844 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static int zend_jit_recv(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array)
{
	uint32_t arg_num = opline->op1.num;
	zend_arg_info *arg_info = NULL;

	if (op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) {
		if (EXPECTED(arg_num <= op_array->num_args)) {
			arg_info = &op_array->arg_info[arg_num-1];
		} else if (UNEXPECTED(op_array->fn_flags & ZEND_ACC_VARIADIC)) {
			arg_info = &op_array->arg_info[op_array->num_args];
		}
		if (arg_info && !ZEND_TYPE_IS_SET(arg_info->type)) {
			arg_info = NULL;
		}
	}

	if (arg_info || (opline+1)->opcode != ZEND_RECV) {
		//|	cmp dword EX->This.u2.num_args, arg_num
		dasm_put(Dst, 1853, Dt1(->This.u2.num_args), arg_num);
#line 12867 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (!exit_addr) {
				return 0;
			}
			//|	jb &exit_addr
			dasm_put(Dst, 4741, (ptrdiff_t)(exit_addr));
#line 12875 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jb >1
			//|.cold_code
			dasm_put(Dst, 5593);
#line 12878 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 12879 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 12881 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	ADDR_OP2_2 mov, aword EX->opline, opline, r0
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
#line 12883 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	mov FCARG1a, FP
			//|	EXT_CALL zend_missing_arg_error, r0
			dasm_put(Dst, 67);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_missing_arg_error)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_missing_arg_error));
					} else {
					if (IS_SIGNED_32BIT(zend_missing_arg_error)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_missing_arg_error));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_missing_arg_error)), (unsigned int)((((ptrdiff_t)zend_missing_arg_error))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 12886 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp ->exception_handler
			//|.code
			dasm_put(Dst, 5874);
#line 12888 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (arg_info) {
		if (!zend_jit_verify_arg_type(Dst, opline, arg_info, 1)) {
			return 0;
		}
	}

	if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
		if ((opline+1)->opcode != ZEND_RECV && (opline+1)->opcode != ZEND_RECV_INIT) {
			//|	LOAD_IP_ADDR (opline + 1)
				if (GCC_GLOBAL_REGS) {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 498, ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32));
					}
				} else {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32), Dt1(->opline));
					}
				}
#line 12900 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			zend_jit_set_last_valid_opline(opline + 1);
		}
	}

	return 1;
}

static int zend_jit_recv_init(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, zend_bool is_last, int may_throw)
{
	uint32_t arg_num = opline->op1.num;
	zval *zv = RT_CONSTANT(opline, opline->op2);
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

	if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE ||
	    (op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS)) {
		//|	cmp dword EX->This.u2.num_args, arg_num
		//|	jae >5
		dasm_put(Dst, 7311, Dt1(->This.u2.num_args), arg_num);
#line 12917 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	ZVAL_COPY_CONST res_addr, -1, -1, zv, ZREG_R0
		if (Z_TYPE_P(zv) > IS_TRUE) {
			if (Z_TYPE_P(zv) == IS_DOUBLE) {
				zend_reg dst_reg = (Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0;
				if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
					if (CAN_USE_AVX()) {
	dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					} else {
	dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					}
				} else if (!IS_SIGNED_32BIT(zv)) {
	dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)zv)), (unsigned int)((((uintptr_t)zv))>>32));
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1988, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
		} else {
	dasm_put(Dst, 2000, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
		}
				} else {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1950, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
		} else {
	dasm_put(Dst, 1960, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
		}
				}
		if (Z_MODE(res_addr) == IS_REG) {
			if (dst_reg != Z_REG(res_addr)) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
		}
			}
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		} else {
	dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		}
		}
			} else if (Z_TYPE_P(zv) == IS_LONG && -1 == MAY_BE_DOUBLE) {
				zend_reg dst_reg = (Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0;
			if (Z_LVAL_P(zv) == 0) {
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
				} else {
	dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
				}
			} else {
				if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
	dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
				} else {
	dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
				}
				if (CAN_USE_AVX()) {
	dasm_put(Dst, 2730, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
				} else {
	dasm_put(Dst, 2754, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
				}
			}
		if (Z_MODE(res_addr) == IS_REG) {
			if (dst_reg != Z_REG(res_addr)) {
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
		} else {
	dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
		}
			}
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		if (CAN_USE_AVX()) {
	dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		} else {
	dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		}
		}
			} else if (Z_LVAL_P(zv) == 0 && Z_MODE(res_addr) == IS_REG) {
	dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
			} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
						if (Z_MODE(res_addr) == IS_REG) {
	dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
						} else {
	dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
		if (Z_MODE(res_addr) == IS_REG) {
	dasm_put(Dst, 1773, (ZREG_R0), (Z_REG(res_addr)));
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 1895, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
		}
						}
					} else {
		if (Z_MODE(res_addr) == IS_REG) {
	dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(zv));
		} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 3894, (Z_REG(res_addr)), Z_OFFSET(res_addr), Z_LVAL_P(zv));
		}
					}
			}
		}
		if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
			if (-1 == MAY_BE_DOUBLE) {
				if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
		ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
				}
			} else if (((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (-1 & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
		ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
			}
		}
#line 12919 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (Z_REFCOUNTED_P(zv)) {
		//|	ADDREF_CONST zv, r0
				if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
		dasm_put(Dst, 6384, (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
				} else {
		dasm_put(Dst, 3918, Z_LVAL_P(zv));
				}
#line 12921 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (Z_CONSTANT_P(zv)) {
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 12926 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	ADDR_OP2_2 mov, aword EX->opline, opline, r0
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
#line 12928 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	LOAD_ZVAL_ADDR FCARG1a, res_addr
			if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(res_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
				}
			} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(res_addr)) {
		dasm_put(Dst, 2314, (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(res_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 12930 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov r0, EX->func
		//|	mov FCARG2a, [r0 + offsetof(zend_op_array, scope)]
		//|	.if X64
		//|		EXT_CALL zval_update_constant_ex, r0
		dasm_put(Dst, 7321, Dt1(->func), offsetof(zend_op_array, scope));
				if (IS_32BIT(dasm_end) && IS_32BIT(zval_update_constant_ex)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zval_update_constant_ex));
				} else {
				if (IS_SIGNED_32BIT(zval_update_constant_ex)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zval_update_constant_ex));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zval_update_constant_ex)), (unsigned int)((((ptrdiff_t)zval_update_constant_ex))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 12934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	.else
#line 12936 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|		EXT_CALL zval_jit_update_constant_ex, r0
#line 12938 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|		EXT_CALL zval_update_constant_ex, r0
#line 12940 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	.endif
		//|	test al, al
		//|	jnz >1
		//|.cold_code
		dasm_put(Dst, 7330);
#line 12944 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		//|	ZVAL_PTR_DTOR res_addr, MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN, 1, 0, opline
		dasm_put(Dst, 64);
			if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || RC_MAY_BE_1(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN)) {
					if (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN)) {
						if (1 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD)
				 && has_concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (1 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (1 && (((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & MAY_BE_GUARD) || (RC_MAY_BE_N(MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((MAY_BE_ANY|MAY_BE_RC1|MAY_BE_RCN) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
#line 12946 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO res_addr, IS_UNDEF
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 12947 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp ->exception_handler
		//|.code
		dasm_put(Dst, 7338, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_UNDEF);
#line 12949 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|5:
	dasm_put(Dst, 495);
#line 12952 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (op_array->fn_flags & ZEND_ACC_HAS_TYPE_HINTS) {
		do {
			zend_arg_info *arg_info;

			if (arg_num <= op_array->num_args) {
				arg_info = &op_array->arg_info[arg_num-1];
			} else if (op_array->fn_flags & ZEND_ACC_VARIADIC) {
				arg_info = &op_array->arg_info[op_array->num_args];
			} else {
				break;
			}
			if (!ZEND_TYPE_IS_SET(arg_info->type)) {
				break;
			}
			if (!zend_jit_verify_arg_type(Dst, opline, arg_info, may_throw)) {
				return 0;
			}
		} while (0);
	}

	if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
		if (is_last) {
			//|	LOAD_IP_ADDR (opline + 1)
				if (GCC_GLOBAL_REGS) {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 498, ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 503, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32));
					}
				} else {
					if (IS_SIGNED_32BIT((opline + 1))) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)(opline + 1)));
					} else {
			dasm_put(Dst, 508, (unsigned int)(((ptrdiff_t)(opline + 1))), (unsigned int)((((ptrdiff_t)(opline + 1)))>>32), Dt1(->opline));
					}
				}
#line 12976 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			zend_jit_set_last_valid_opline(opline + 1);
		}
	}

	return 1;
}

static zend_property_info* zend_get_known_property_info(zend_class_entry *ce, zend_string *member, zend_bool on_this, zend_string *filename)
{
	zend_property_info *info = NULL;

	if (!ce ||
	    !(ce->ce_flags & ZEND_ACC_LINKED) ||
	    (ce->ce_flags & ZEND_ACC_TRAIT) ||
	    ce->create_object) {
		return NULL;
	}

	if (!(ce->ce_flags & ZEND_ACC_IMMUTABLE)) {
		if (ce->info.user.filename != filename) {
			/* class declaration might be changed independently */
			return NULL;
		}

		if (ce->parent) {
			zend_class_entry *parent = ce->parent;

			do {
				if (parent->type == ZEND_INTERNAL_CLASS) {
					break;
				} else if (parent->info.user.filename != filename) {
					/* some of parents class declarations might be changed independently */
					/* TODO: this check may be not enough, because even
					 * in the same it's possible to conditionally define
					 * few classes with the same name, and "parent" may
					 * change from request to request.
					 */
					return NULL;
				}
				parent = parent->parent;
			} while (parent);
		}
	}

	info = (zend_property_info*)zend_hash_find_ptr(&ce->properties_info, member);
	if (info == NULL ||
	    !IS_VALID_PROPERTY_OFFSET(info->offset) ||
	    (info->flags & ZEND_ACC_STATIC)) {
		return NULL;
	}

	if (!(info->flags & ZEND_ACC_PUBLIC) &&
	    (!on_this || info->ce != ce)) {
		return NULL;
	}

	return info;
}

static zend_bool zend_may_be_dynamic_property(zend_class_entry *ce, zend_string *member, zend_bool on_this, zend_string *filename)
{
	zend_property_info *info;

	if (!ce || (ce->ce_flags & ZEND_ACC_TRAIT)) {
		return 1;
	}

	if (!(ce->ce_flags & ZEND_ACC_IMMUTABLE)) {
		if (ce->info.user.filename != filename) {
			/* class declaration might be changed independently */
			return 1;
		}
	}

	info = (zend_property_info*)zend_hash_find_ptr(&ce->properties_info, member);
	if (info == NULL ||
	    !IS_VALID_PROPERTY_OFFSET(info->offset) ||
	    (info->flags & ZEND_ACC_STATIC)) {
		return 1;
	}

	if (!(info->flags & ZEND_ACC_PUBLIC) &&
	    (!on_this || info->ce != ce)) {
		return 1;
	}

	return 0;
}

static int zend_jit_class_guard(dasm_State **Dst, const zend_op *opline, zend_class_entry *ce)
{
	int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);
	const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

	if (!exit_addr) {
		return 0;
	}

	//|.if X64
		if (!IS_SIGNED_32BIT(ce)) {
	//|		mov64 r0, ((ptrdiff_t)ce)
	//|		cmp aword [FCARG1a + offsetof(zend_object, ce)], r0
	dasm_put(Dst, 7352, (unsigned int)(((ptrdiff_t)ce)), (unsigned int)((((ptrdiff_t)ce))>>32), offsetof(zend_object, ce));
		} else {
#line 13079 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|		cmp aword [FCARG1a + offsetof(zend_object, ce)], ce
	dasm_put(Dst, 7361, offsetof(zend_object, ce), ce);
		}
#line 13081 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.else
	//|	cmp aword [FCARG1a + offsetof(zend_object, ce)], ce
	//|.endif
	//|	jne &exit_addr
	dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 13085 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_fetch_obj(dasm_State          **Dst,
                              const zend_op        *opline,
                              const zend_op_array  *op_array,
                              zend_ssa             *ssa,
                              const zend_ssa_op    *ssa_op,
                              uint32_t              op1_info,
                              zend_jit_addr         op1_addr,
                              zend_bool             op1_indirect,
                              zend_class_entry     *ce,
                              zend_bool             ce_is_instanceof,
                              zend_bool             use_this,
                              zend_bool             op1_avoid_refcounting,
                              zend_class_entry     *trace_ce,
                              int                   may_throw)
{
	zval *member;
	zend_property_info *prop_info;
	zend_bool may_be_dynamic = 1;
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	zend_jit_addr this_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, offsetof(zend_execute_data, This));
	zend_jit_addr prop_addr;
	uint32_t res_info = RES_INFO();

	ZEND_ASSERT(opline->op2_type == IS_CONST);
	ZEND_ASSERT(op1_info & MAY_BE_OBJECT);

	member = RT_CONSTANT(opline, opline->op2);
	ZEND_ASSERT(Z_TYPE_P(member) == IS_STRING && Z_STRVAL_P(member)[0] != '\0');
	prop_info = zend_get_known_property_info(ce, Z_STR_P(member), opline->op1_type == IS_UNUSED, op_array->filename);

	if (opline->op1_type == IS_UNUSED || use_this) {
		//|	GET_ZVAL_PTR FCARG1a, this_addr
			ZEND_ASSERT(Z_MODE(this_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(this_addr)), Z_OFFSET(this_addr));
#line 13121 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (opline->op1_type == IS_VAR
		 && opline->opcode == ZEND_FETCH_OBJ_W
		 && (op1_info & MAY_BE_INDIRECT)
		 && Z_REG(op1_addr) == ZREG_FP) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13127 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	IF_NOT_Z_TYPE FCARG1a, IS_INDIRECT, >1
			//|	GET_Z_PTR FCARG1a, FCARG1a
			//|1:
			dasm_put(Dst, 7367, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 13130 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & MAY_BE_REF) {
			if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13135 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	ZVAL_DEREF FCARG1a, op1_info
				if (op1_info & MAY_BE_REF) {
			dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
				}
#line 13137 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, &exit_addr
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 13148 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, >7
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 4349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT);
#line 13150 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	GET_ZVAL_PTR FCARG1a, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 13153 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!prop_info && trace_ce && (trace_ce->ce_flags & ZEND_ACC_IMMUTABLE)) {
		prop_info = zend_get_known_property_info(trace_ce, Z_STR_P(member), opline->op1_type == IS_UNUSED, op_array->filename);
		if (prop_info) {
			ce = trace_ce;
			ce_is_instanceof = 0;
			if (!(op1_info & MAY_BE_CLASS_GUARD)) {
				if (!zend_jit_class_guard(Dst, opline, trace_ce)) {
					return 0;
				}
				if (ssa->var_info && ssa_op->op1_use >= 0) {
					ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_use].ce = ce;
					ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
				}
			}
		}
	}

	if (!prop_info) {
		//|	mov r0, EX->run_time_cache
		//|	mov r2, aword [r0 + (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS)]
		//|	cmp r2, aword [FCARG1a + offsetof(zend_object, ce)]
		//|	jne >5
		//|	mov r0, aword [r0 + (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*)]
		dasm_put(Dst, 7381, Dt1(->run_time_cache), (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS), offsetof(zend_object, ce), (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*));
#line 13179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		may_be_dynamic = zend_may_be_dynamic_property(ce, Z_STR_P(member), opline->op1_type == IS_UNUSED, op_array->filename);
		if (may_be_dynamic) {
			//|	test r0, r0
			dasm_put(Dst, 3620);
#line 13182 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode == ZEND_FETCH_OBJ_W) {
				//|	jl >5
				dasm_put(Dst, 7402);
#line 13184 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jl >8 // dynamic property
				dasm_put(Dst, 7407);
#line 13186 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	mov edx, dword [FCARG1a + r0 + 8]
		//|	IF_UNDEF dl, >5
		//|	add FCARG1a, r0
		dasm_put(Dst, 7412, 8);
#line 13191 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		if (opline->opcode == ZEND_FETCH_OBJ_W
		 && (opline->extended_value & ZEND_FETCH_OBJ_FLAGS)
		 && (!ce ||	ce_is_instanceof || (ce->ce_flags & ZEND_ACC_HAS_TYPE_HINTS))) {
			uint32_t flags = opline->extended_value & ZEND_FETCH_OBJ_FLAGS;

			//|	mov r0, EX->run_time_cache
			//|	mov FCARG2a, aword [r0 + (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*) * 2]
			//|	test FCARG2a, FCARG2a
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 7427, Dt1(->run_time_cache), (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*) * 2);
#line 13202 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 13203 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (flags == ZEND_FETCH_DIM_WRITE) {
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 13205 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_check_array_promotion, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_check_array_promotion)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_check_array_promotion));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_check_array_promotion)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_check_array_promotion));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_check_array_promotion)), (unsigned int)((((ptrdiff_t)zend_jit_check_array_promotion))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13206 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 13207 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (flags == ZEND_FETCH_REF) {
				//|.if X64
					//|	LOAD_ZVAL_ADDR CARG3, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 13210 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|	PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
				//|	EXT_CALL zend_jit_create_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_create_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_create_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_create_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_create_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_create_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_create_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13215 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if not(X64)
				//|	add r4, 12
				//|.endif
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 13219 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				ZEND_UNREACHABLE();
			}
			//|.code
			dasm_put(Dst, 387);
#line 13223 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, prop_info->offset);
		//|	mov edx, dword [FCARG1a + prop_info->offset + 8]
		dasm_put(Dst, 7445, prop_info->offset + 8);
#line 13227 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			if (opline->opcode == ZEND_FETCH_OBJ_W || !(res_info & MAY_BE_GUARD) || !JIT_G(current_frame)) {
				/* perform IS_UNDEF check only after result type guard (during deoptimization) */
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}
				//|	IF_UNDEF dl, &exit_addr
				dasm_put(Dst, 7449, (ptrdiff_t)(exit_addr));
#line 13237 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	IF_UNDEF dl, >5
			dasm_put(Dst, 7455);
#line 13240 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->opcode == ZEND_FETCH_OBJ_W
		 && (opline->extended_value & ZEND_FETCH_OBJ_FLAGS)
		 && ZEND_TYPE_IS_SET(prop_info->type)) {
			uint32_t flags = opline->extended_value & ZEND_FETCH_OBJ_FLAGS;

			if (flags == ZEND_FETCH_DIM_WRITE) {
				if ((ZEND_TYPE_FULL_MASK(prop_info->type) & (MAY_BE_ITERABLE|MAY_BE_ARRAY)) == 0) {
					//|	cmp dl, IS_FALSE
					//|	jle >1
					//|.cold_code
					dasm_put(Dst, 7462, IS_FALSE);
#line 13251 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					dasm_put(Dst, 64);
#line 13252 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (Z_REG(prop_addr) != ZREG_FCARG1a || Z_OFFSET(prop_addr) != 0) {
						//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
							if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
						dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
								} else {
						dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
								}
							} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
							if (Z_OFFSET(prop_addr)) {
						dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
							} else {
						dasm_put(Dst, 2322, (Z_REG(prop_addr)));
							}
							} else {
								ZEND_UNREACHABLE();
							}
#line 13254 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	LOAD_ADDR FCARG2a, prop_info
							if (IS_SIGNED_32BIT(prop_info)) {
					dasm_put(Dst, 707, ((ptrdiff_t)prop_info));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)prop_info)), (unsigned int)((((ptrdiff_t)prop_info))>>32));
							}
#line 13256 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	SET_EX_OPLINE opline, r0
						if (opline == last_valid_opline) {
							zend_jit_use_last_valid_opline();
						if (GCC_GLOBAL_REGS) {
					dasm_put(Dst, 8, Dt1(->opline));
						}
						} else {
							if (IS_SIGNED_32BIT(opline)) {
					dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
							} else {
					dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
							}
							if (!GCC_GLOBAL_REGS) {
								zend_jit_reset_last_valid_opline();
							}
						}
#line 13257 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_jit_check_array_promotion, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_check_array_promotion)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_check_array_promotion));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_check_array_promotion)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_check_array_promotion));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_check_array_promotion)), (unsigned int)((((ptrdiff_t)zend_jit_check_array_promotion))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 13258 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	jmp >9
					//|.code
					dasm_put(Dst, 4173);
#line 13260 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else if (flags == ZEND_FETCH_REF) {
				//|	IF_TYPE dl, IS_REFERENCE, >1
				dasm_put(Dst, 7472, IS_REFERENCE);
#line 13263 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
					//|	LOAD_ADDR FCARG2a, prop_info
							if (IS_SIGNED_32BIT(prop_info)) {
					dasm_put(Dst, 707, ((ptrdiff_t)prop_info));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)prop_info)), (unsigned int)((((ptrdiff_t)prop_info))>>32));
							}
#line 13265 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					int prop_info_offset =
						(((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));

					//|	mov r0, aword [FCARG1a + offsetof(zend_object, ce)]
					//|	mov	r0, aword [r0 + offsetof(zend_class_entry, properties_info_table)]
					//|	mov FCARG2a, aword[r0 + prop_info_offset]
					dasm_put(Dst, 7481, offsetof(zend_object, ce), offsetof(zend_class_entry, properties_info_table), prop_info_offset);
#line 13272 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (Z_REG(prop_addr) != ZREG_FCARG1a || Z_OFFSET(prop_addr) != 0) {
					//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
						if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
					dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
							}
						} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(prop_addr)) {
					dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
						} else {
					dasm_put(Dst, 2322, (Z_REG(prop_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 13275 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|.if X64
					//|	LOAD_ZVAL_ADDR CARG3, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 13278 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|	PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
				//|	EXT_CALL zend_jit_create_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_create_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_create_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_create_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_create_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_create_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_create_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13283 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.if not(X64)
				//|	add r4, 12
				//|.endif
				//|	jmp >9
				//|1:
				dasm_put(Dst, 7494);
#line 13288 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				ZEND_UNREACHABLE();
			}
		}
	}
	if (op1_avoid_refcounting) {
		SET_STACK_REG(JIT_G(current_frame)->stack,
			EX_VAR_TO_NUM(opline->op1.var), ZREG_NONE);
	}
	if (opline->opcode == ZEND_FETCH_OBJ_W) {
		if (Z_REG(prop_addr) != ZREG_FCARG1a || Z_OFFSET(prop_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
				if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
					}
				} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(prop_addr)) {
			dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(prop_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13300 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_ZVAL_PTR res_addr, FCARG1a
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 13302 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO res_addr, IS_INDIRECT
		dasm_put(Dst, 7501, (Z_REG(res_addr)), Z_OFFSET(res_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_INDIRECT);
#line 13303 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE && prop_info) {
			ssa->var_info[ssa_op->result_def].indirect_reference = 1;
		}
	} else {
		zend_bool result_avoid_refcounting = 0;

		if ((res_info & MAY_BE_GUARD) && JIT_G(current_frame) && prop_info) {
			uint32_t flags = 0;
			uint32_t old_info;
			zend_jit_trace_stack *stack = JIT_G(current_frame)->stack;
			int32_t exit_point;
			const void *exit_addr;
			zend_uchar type;
			zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);

			if ((opline->op1_type & (IS_VAR|IS_TMP_VAR))
			 && !use_this
			 && !op1_avoid_refcounting) {
				flags = ZEND_JIT_EXIT_FREE_OP1;
			}

			//|	LOAD_ZVAL_ADDR r0, prop_addr
				if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(prop_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
					}
				} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(prop_addr)) {
			dasm_put(Dst, 6420, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
				} else {
			dasm_put(Dst, 6428, (Z_REG(prop_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13325 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			if ((opline->result_type & (IS_VAR|IS_TMP_VAR))
			 && !(flags & ZEND_JIT_EXIT_FREE_OP1)
			 && (res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))
			 && (ssa_op+1)->op1_use == ssa_op->result_def
			 && zend_jit_may_avoid_refcounting(opline+1, res_info)) {
				result_avoid_refcounting = 1;
				ssa->var_info[ssa_op->result_def].avoid_refcounting = 1;
			}

			old_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var));
			SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_UNKNOWN, 1);
			SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_ZVAL_COPY_R0);
			exit_point = zend_jit_trace_get_exit_point(opline+1, flags);
			SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var), old_info);
			exit_addr = zend_jit_trace_get_exit_addr(exit_point);
			if (!exit_addr) {
				return 0;
			}

			res_info &= ~MAY_BE_GUARD;
			ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;
			type = concrete_type(res_info);

			//|	// ZVAL_DEREF()
			//|	IF_NOT_TYPE dl, IS_REFERENCE, >1
			//|	GET_Z_PTR r0, r0
			//|	add r0, offsetof(zend_reference, val)
			dasm_put(Dst, 7509, IS_REFERENCE, offsetof(zend_reference, val));
#line 13353 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (type < IS_STRING) {
				//|1:
				//|	IF_NOT_ZVAL_TYPE val_addr, type, &exit_addr
				dasm_put(Dst, 64);
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval, u1.v.type), type, (ptrdiff_t)(exit_addr));
#line 13356 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	GET_ZVAL_TYPE_INFO edx, val_addr
					ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
#line 13358 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	IF_NOT_TYPE dl, type, &exit_addr
				dasm_put(Dst, 7525, (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info), type, (ptrdiff_t)(exit_addr));
#line 13360 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	// ZVAL_COPY
			//|	ZVAL_COPY_VALUE_V res_addr, -1, val_addr, res_info, ZREG_R0, ZREG_R1
				if (res_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (ZREG_R1 != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_R1));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(res_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(res_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
#line 13363 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (type < IS_STRING) {
				if (Z_REG(res_addr) != ZREG_FP ||
				    JIT_G(current_frame) == NULL ||
				    STACK_MEM_TYPE(JIT_G(current_frame)->stack, EX_VAR_TO_NUM(Z_OFFSET(res_addr))) != type) {
					//|	SET_ZVAL_TYPE_INFO res_addr, type
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
#line 13368 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			} else {
				//|	SET_ZVAL_TYPE_INFO res_addr, edx
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 7070, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 13371 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!result_avoid_refcounting) {
					//|	TRY_ADDREF res_info, dh, r1
						if (res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
							if (res_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					dasm_put(Dst, 4107);
							}
					dasm_put(Dst, 2171);
						}
#line 13373 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
		} else {
			if (!zend_jit_zval_copy_deref(Dst, res_addr, prop_addr, ZREG_R2)) {
				return 0;
			}
		}
	}

	//|.cold_code
	dasm_put(Dst, 290);
#line 13383 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE || !prop_info) {
		//|5:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 495);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 13387 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_FETCH_OBJ_W) {
			//|	EXT_CALL zend_jit_fetch_obj_w_slow, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_obj_w_slow)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_obj_w_slow));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fetch_obj_w_slow)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_obj_w_slow));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_obj_w_slow)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_obj_w_slow))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 13389 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (opline->opcode != ZEND_FETCH_OBJ_IS) {
			//|	EXT_CALL zend_jit_fetch_obj_r_slow, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_obj_r_slow)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_obj_r_slow));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fetch_obj_r_slow)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_obj_r_slow));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_obj_r_slow)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_obj_r_slow))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 13391 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	EXT_CALL zend_jit_fetch_obj_is_slow, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_obj_is_slow)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_obj_is_slow));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fetch_obj_is_slow)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_obj_is_slow));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_obj_is_slow)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_obj_is_slow))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 13393 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	jmp >9
		dasm_put(Dst, 3682);
#line 13395 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if ((op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)- MAY_BE_OBJECT)) && JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
		//|7:
		dasm_put(Dst, 4449);
#line 13399 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode != ZEND_FETCH_OBJ_IS) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 13401 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode != ZEND_FETCH_OBJ_W
			 && (op1_info & MAY_BE_UNDEF)) {
				zend_jit_addr orig_op1_addr = OP1_ADDR();

				if (op1_info & MAY_BE_ANY) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 13407 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	mov FCARG1d, opline->op1.var
				//|	EXT_CALL zend_jit_undefined_op_helper, r0
				dasm_put(Dst, 2311, opline->op1.var);
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13410 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	LOAD_ZVAL_ADDR FCARG1a, orig_op1_addr
				dasm_put(Dst, 64);
					if (Z_MODE(orig_op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(orig_op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(orig_op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(orig_op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(orig_op1_addr)))>>32));
						}
					} else if (Z_MODE(orig_op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(orig_op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(orig_op1_addr)), Z_OFFSET(orig_op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(orig_op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13414 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ADDR FCARG2a, Z_STRVAL_P(member)
					if (IS_SIGNED_32BIT(Z_STRVAL_P(member))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_STRVAL_P(member)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_STRVAL_P(member))), (unsigned int)((((ptrdiff_t)Z_STRVAL_P(member)))>>32));
					}
#line 13416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->opcode == ZEND_FETCH_OBJ_W) {
				//|	EXT_CALL zend_jit_invalid_property_write, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_property_write)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_property_write));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_invalid_property_write)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_property_write));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_property_write)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_property_write))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13418 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO res_addr, _IS_ERROR
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), _IS_ERROR);
#line 13419 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	EXT_CALL zend_jit_invalid_property_read, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_property_read)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_property_read));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_invalid_property_read)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_property_read));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_property_read)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_property_read))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13421 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 13422 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	jmp >9
			dasm_put(Dst, 3682);
#line 13424 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 13426 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >9
			dasm_put(Dst, 3742, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 13427 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!prop_info
	 && may_be_dynamic
	 && opline->opcode != ZEND_FETCH_OBJ_W) {
		//|8:
		//|	mov FCARG2a, r0
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 7542);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 13436 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode != ZEND_FETCH_OBJ_IS) {
			//|	EXT_CALL zend_jit_fetch_obj_r_dynamic, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_obj_r_dynamic)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_obj_r_dynamic));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fetch_obj_r_dynamic)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_obj_r_dynamic));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_obj_r_dynamic)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_obj_r_dynamic))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 13438 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	EXT_CALL zend_jit_fetch_obj_is_dynamic, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_fetch_obj_is_dynamic)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_fetch_obj_is_dynamic));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_fetch_obj_is_dynamic)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_fetch_obj_is_dynamic));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_fetch_obj_is_dynamic)), (unsigned int)((((ptrdiff_t)zend_jit_fetch_obj_is_dynamic))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 13440 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	jmp >9
		dasm_put(Dst, 3682);
#line 13442 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|.code;
	dasm_put(Dst, 387);
#line 13445 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9: // END
	dasm_put(Dst, 4204);
#line 13446 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->op1_type != IS_UNUSED && !use_this && !op1_indirect) {
		if (opline->op1_type == IS_VAR
		 && opline->opcode == ZEND_FETCH_OBJ_W
		 && (op1_info & MAY_BE_RC1)) {
			zend_jit_addr orig_op1_addr = OP1_ADDR();

			//|	IF_NOT_ZVAL_REFCOUNTED orig_op1_addr, >1
				ZEND_ASSERT(Z_MODE(orig_op1_addr) == IS_MEM_ZVAL);
#line 13453 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GET_ZVAL_PTR FCARG1a, orig_op1_addr
			dasm_put(Dst, 2150, (Z_REG(orig_op1_addr)), Z_OFFSET(orig_op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
				ZEND_ASSERT(Z_MODE(orig_op1_addr) == IS_MEM_ZVAL);
#line 13454 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	GC_DELREF FCARG1a
			//|	jnz >1
			//|	SET_EX_OPLINE opline, r0
			dasm_put(Dst, 7548, (Z_REG(orig_op1_addr)), Z_OFFSET(orig_op1_addr));
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 13457 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	EXT_CALL zend_jit_extract_helper, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_extract_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_extract_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_extract_helper)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_extract_helper));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_extract_helper)), (unsigned int)((((ptrdiff_t)zend_jit_extract_helper))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 13458 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			dasm_put(Dst, 64);
#line 13459 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (!op1_avoid_refcounting) {
			//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
				if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (1) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 13461 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE
	 && prop_info
	 && (opline->opcode != ZEND_FETCH_OBJ_W ||
	     !(opline->extended_value & ZEND_FETCH_OBJ_FLAGS) ||
	     !ZEND_TYPE_IS_SET(prop_info->type))
	 && opline->op1_type != IS_VAR
	 && opline->op1_type != IS_TMP_VAR) {
		may_throw = 0;
	}

	if (may_throw) {
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_incdec_obj(dasm_State          **Dst,
                               const zend_op        *opline,
                               const zend_op_array  *op_array,
                               zend_ssa             *ssa,
                               const zend_ssa_op    *ssa_op,
                               uint32_t              op1_info,
                               zend_jit_addr         op1_addr,
                               zend_bool             op1_indirect,
                               zend_class_entry     *ce,
                               zend_bool             ce_is_instanceof,
                               zend_bool             use_this,
                               zend_class_entry     *trace_ce,
                               int                   may_throw)
{
	zval *member;
	zend_string *name;
	zend_property_info *prop_info;
	zend_jit_addr this_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, offsetof(zend_execute_data, This));
	zend_jit_addr res_addr = 0;
	zend_jit_addr prop_addr;
	zend_bool needs_slow_path = 0;

	ZEND_ASSERT(opline->op2_type == IS_CONST);
	ZEND_ASSERT(op1_info & MAY_BE_OBJECT);

	if (opline->result_type != IS_UNUSED) {
		res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	}

	member = RT_CONSTANT(opline, opline->op2);
	ZEND_ASSERT(Z_TYPE_P(member) == IS_STRING && Z_STRVAL_P(member)[0] != '\0');
	name = Z_STR_P(member);
	prop_info = zend_get_known_property_info(ce, name, opline->op1_type == IS_UNUSED, op_array->filename);

	if (opline->op1_type == IS_UNUSED || use_this) {
		//|	GET_ZVAL_PTR FCARG1a, this_addr
			ZEND_ASSERT(Z_MODE(this_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(this_addr)), Z_OFFSET(this_addr));
#line 13519 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (opline->op1_type == IS_VAR
		 && (op1_info & MAY_BE_INDIRECT)
		 && Z_REG(op1_addr) == ZREG_FP) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13524 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	IF_NOT_Z_TYPE FCARG1a, IS_INDIRECT, >1
			//|	GET_Z_PTR FCARG1a, FCARG1a
			//|1:
			dasm_put(Dst, 7367, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 13527 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & MAY_BE_REF) {
			if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13532 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	ZVAL_DEREF FCARG1a, op1_info
				if (op1_info & MAY_BE_REF) {
			dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
				}
#line 13534 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, &exit_addr
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 13545 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 13547 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 3360, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT);
#line 13548 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 64);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 13550 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
					//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(op1_addr)) {
					dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else {
					dasm_put(Dst, 2322, (Z_REG(op1_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 13552 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	LOAD_ADDR FCARG2a, ZSTR_VAL(name)
						if (IS_SIGNED_32BIT(ZSTR_VAL(name))) {
				dasm_put(Dst, 707, ((ptrdiff_t)ZSTR_VAL(name)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)ZSTR_VAL(name))), (unsigned int)((((ptrdiff_t)ZSTR_VAL(name)))>>32));
						}
#line 13554 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_invalid_property_incdec, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_property_incdec)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_property_incdec));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_invalid_property_incdec)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_property_incdec));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_property_incdec)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_property_incdec))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13555 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp ->exception_handler
				//|.code
				dasm_put(Dst, 5874);
#line 13557 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	GET_ZVAL_PTR FCARG1a, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 13560 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!prop_info && trace_ce && (trace_ce->ce_flags & ZEND_ACC_IMMUTABLE)) {
		prop_info = zend_get_known_property_info(trace_ce, name, opline->op1_type == IS_UNUSED, op_array->filename);
		if (prop_info) {
			ce = trace_ce;
			ce_is_instanceof = 0;
			if (!(op1_info & MAY_BE_CLASS_GUARD)) {
				if (!zend_jit_class_guard(Dst, opline, trace_ce)) {
					return 0;
				}
				if (ssa->var_info && ssa_op->op1_use >= 0) {
					ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_use].ce = ce;
					ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
				}
				if (ssa->var_info && ssa_op->op1_def >= 0) {
					ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_def].ce = ce;
					ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
				}
			}
		}
	}

	if (!prop_info) {
		needs_slow_path = 1;

		//|	mov r0, EX->run_time_cache
		//|	mov r2, aword [r0 + opline->extended_value]
		//|	cmp r2, aword [FCARG1a + offsetof(zend_object, ce)]
		//|	jne >7
		dasm_put(Dst, 7563, Dt1(->run_time_cache), opline->extended_value, offsetof(zend_object, ce));
#line 13592 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!ce || ce_is_instanceof || (ce->ce_flags & ZEND_ACC_HAS_TYPE_HINTS)) {
			//|	cmp aword [r0 + opline->extended_value + sizeof(void*) * 2], 0
			//|	jnz >7
			dasm_put(Dst, 7580, opline->extended_value + sizeof(void*) * 2);
#line 13595 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	mov r0, aword [r0 + opline->extended_value + sizeof(void*)]
		//|	test r0, r0
		//|	jl >7
		//|	IF_TYPE byte [FCARG1a + r0 + 8], IS_UNDEF, >7
		//|	add FCARG1a, r0
		dasm_put(Dst, 7590, opline->extended_value + sizeof(void*), 8, IS_UNDEF);
#line 13601 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	} else {
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, prop_info->offset);
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (!exit_addr) {
				return 0;
			}
			//|	IF_TYPE byte [FCARG1a + prop_info->offset + 8], IS_UNDEF, &exit_addr
			dasm_put(Dst, 7615, prop_info->offset + 8, IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 13612 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	IF_TYPE byte [FCARG1a + prop_info->offset + 8], IS_UNDEF, >7
			dasm_put(Dst, 7623, prop_info->offset + 8, IS_UNDEF);
#line 13614 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			needs_slow_path = 1;
		}
		if (ZEND_TYPE_IS_SET(prop_info->type)) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 13618 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
				//|	LOAD_ADDR FCARG2a, prop_info
						if (IS_SIGNED_32BIT(prop_info)) {
				dasm_put(Dst, 707, ((ptrdiff_t)prop_info));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)prop_info)), (unsigned int)((((ptrdiff_t)prop_info))>>32));
						}
#line 13620 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				int prop_info_offset =
					(((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));

				//|	mov r0, aword [FCARG1a + offsetof(zend_object, ce)]
				//|	mov	r0, aword [r0 + offsetof(zend_class_entry, properties_info_table)]
				//|	mov FCARG2a, aword[r0 + prop_info_offset]
				dasm_put(Dst, 7481, offsetof(zend_object, ce), offsetof(zend_class_entry, properties_info_table), prop_info_offset);
#line 13627 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
				if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
					}
				} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(prop_addr)) {
			dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(prop_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13629 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->result_type == IS_UNUSED) {
				switch (opline->opcode) {
					case ZEND_PRE_INC_OBJ:
					case ZEND_POST_INC_OBJ:
						//|	EXT_CALL zend_jit_inc_typed_prop, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_inc_typed_prop)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_inc_typed_prop));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_inc_typed_prop)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_inc_typed_prop));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_inc_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_inc_typed_prop))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 13634 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						break;
					case ZEND_PRE_DEC_OBJ:
					case ZEND_POST_DEC_OBJ:
						//|	EXT_CALL zend_jit_dec_typed_prop, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_dec_typed_prop)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_dec_typed_prop));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_dec_typed_prop)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_dec_typed_prop));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_dec_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_dec_typed_prop))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 13638 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						break;
					default:
						ZEND_UNREACHABLE();
				}
			} else {
				//|.if X64
					//|	LOAD_ZVAL_ADDR CARG3, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 3398, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 3406, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 13645 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.else
					//|	sub r4, 12
					//|	PUSH_ZVAL_ADDR res_addr, r0
				//|.endif
				switch (opline->opcode) {
					case ZEND_PRE_INC_OBJ:
						//|	EXT_CALL zend_jit_pre_inc_typed_prop, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_inc_typed_prop)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_inc_typed_prop));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_pre_inc_typed_prop)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_inc_typed_prop));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_inc_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_pre_inc_typed_prop))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 13652 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						break;
					case ZEND_PRE_DEC_OBJ:
						//|	EXT_CALL zend_jit_pre_dec_typed_prop, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_dec_typed_prop)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_dec_typed_prop));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_pre_dec_typed_prop)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_dec_typed_prop));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_dec_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_pre_dec_typed_prop))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 13655 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						break;
					case ZEND_POST_INC_OBJ:
						//|	EXT_CALL zend_jit_post_inc_typed_prop, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_inc_typed_prop)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_inc_typed_prop));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_post_inc_typed_prop)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_inc_typed_prop));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_inc_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_post_inc_typed_prop))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 13658 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						break;
					case ZEND_POST_DEC_OBJ:
						//|	EXT_CALL zend_jit_post_dec_typed_prop, r0
								if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_dec_typed_prop)) {
						dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_dec_typed_prop));
								} else {
								if (IS_SIGNED_32BIT(zend_jit_post_dec_typed_prop)) {
						dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_dec_typed_prop));
								} else {
						dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_dec_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_post_dec_typed_prop))>>32));
								}
						dasm_put(Dst, 60);
								}
#line 13661 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						break;
					default:
						ZEND_UNREACHABLE();
				}
				//|.if not(X64)
					//|	add r4, 12
				//|.endif
			}
		}
	}

	if (!prop_info || !ZEND_TYPE_IS_SET(prop_info->type)) {
		zend_jit_addr var_addr = prop_addr;

		var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		if (Z_REG(prop_addr) != ZREG_FCARG1a || Z_OFFSET(prop_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
				if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
					}
				} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(prop_addr)) {
			dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(prop_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13678 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		//|	IF_NOT_ZVAL_TYPE var_addr, IS_REFERENCE, >2
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 13681 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GET_ZVAL_PTR FCARG1a, var_addr
		dasm_put(Dst, 2224, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 13682 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	cmp aword [FCARG1a + offsetof(zend_reference, sources.ptr)], 0
		//|	jnz >1
		//|	lea FCARG1a, aword [FCARG1a + offsetof(zend_reference, val)]
		//|.cold_code
		dasm_put(Dst, 7632, (Z_REG(var_addr)), Z_OFFSET(var_addr), offsetof(zend_reference, sources.ptr), offsetof(zend_reference, val));
#line 13686 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 13687 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 13689 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->result_type == IS_UNUSED) {
			//|	xor FCARG2a, FCARG2a
			dasm_put(Dst, 2363);
#line 13692 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
				if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
					}
				} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(res_addr)) {
			dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(res_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13694 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		switch (opline->opcode) {
			case ZEND_PRE_INC_OBJ:
				//|	EXT_CALL zend_jit_pre_inc_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_inc_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_inc_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_pre_inc_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_inc_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_inc_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_pre_inc_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13698 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_PRE_DEC_OBJ:
				//|	EXT_CALL zend_jit_pre_dec_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_dec_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_dec_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_pre_dec_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_dec_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_dec_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_pre_dec_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13701 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_POST_INC_OBJ:
				//|	EXT_CALL zend_jit_post_inc_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_inc_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_inc_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_post_inc_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_inc_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_inc_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_post_inc_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13704 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_POST_DEC_OBJ:
				//|	EXT_CALL zend_jit_post_dec_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_dec_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_dec_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_post_dec_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_dec_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_dec_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_post_dec_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13707 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			default:
				ZEND_UNREACHABLE();
		}
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 13713 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|2:
		//|	IF_NOT_ZVAL_TYPE var_addr, IS_LONG, >2
		dasm_put(Dst, 2037);
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2224, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 13716 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_POST_INC_OBJ || opline->opcode == ZEND_POST_DEC_OBJ) {
			if (opline->result_type != IS_UNUSED) {
				//|	ZVAL_COPY_VALUE res_addr, -1, var_addr, MAY_BE_LONG, ZREG_R1, ZREG_R2
					if (MAY_BE_LONG & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(var_addr) == IS_REG) {
								if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
								}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(var_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(var_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(var_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(var_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(var_addr)));
								}
						}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else if (Z_MODE(var_addr) == IS_REG) {
						if (Z_REG(res_addr) != Z_REG(var_addr)) {
				dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(var_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(var_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(var_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(var_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(var_addr)));
								}
						}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else if (Z_MODE(var_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(var_addr)) {
				dasm_put(Dst, 1773, (Z_REG(var_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
							}
						} else if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(var_addr) == IS_REG) {
					if (Z_MODE(res_addr) == IS_REG) {
						if (Z_REG(var_addr) != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(var_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
						if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(var_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(var_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(var_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
						} else if (Z_MODE(var_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(var_addr) != IS_REG || ZREG_XMM0 != Z_REG(var_addr)) {
						if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(var_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(var_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(var_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
						} else if (Z_MODE(var_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(res_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							}
						} else if (!(MAY_BE_LONG & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
					}
					if ((MAY_BE_LONG & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(MAY_BE_LONG & MAY_BE_GUARD) &&
						has_concrete_type(MAY_BE_LONG & MAY_BE_ANY)) {
						if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
							if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(MAY_BE_LONG);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R1), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
					}
#line 13719 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		if (opline->opcode == ZEND_PRE_INC_OBJ || opline->opcode == ZEND_POST_INC_OBJ) {
			//|	LONG_OP_WITH_32BIT_CONST add, var_addr, Z_L(1)
				if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2237, (Z_REG(var_addr)), Z_OFFSET(var_addr), Z_L(1));
				} else if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 2246, (Z_REG(var_addr)), Z_L(1));
				} else {
					ZEND_UNREACHABLE();
				}
#line 13723 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	LONG_OP_WITH_32BIT_CONST sub, var_addr, Z_L(1)
				if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 2253, (Z_REG(var_addr)), Z_OFFSET(var_addr), Z_L(1));
				} else if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 2262, (Z_REG(var_addr)), Z_L(1));
				} else {
					ZEND_UNREACHABLE();
				}
#line 13725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	jo	>3
		dasm_put(Dst, 7654);
#line 13727 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_PRE_INC_OBJ || opline->opcode == ZEND_PRE_DEC_OBJ) {
			if (opline->result_type != IS_UNUSED) {
				//|	ZVAL_COPY_VALUE res_addr, -1, var_addr, MAY_BE_LONG, ZREG_R0, ZREG_R2
					if (MAY_BE_LONG & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
						if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
							if (Z_MODE(var_addr) == IS_REG) {
								if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
								}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(var_addr)) == 0) {
				dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(var_addr)))) {
				dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(var_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(var_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(var_addr)));
								}
						}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else if (Z_MODE(var_addr) == IS_REG) {
						if (Z_REG(res_addr) != Z_REG(var_addr)) {
				dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
						}
					} else {
						ZEND_UNREACHABLE();
					}
							} else {
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
						if (Z_LVAL_P(Z_ZV(var_addr)) == 0) {
				dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
						} else {
								if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(var_addr)))) {
				dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(var_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(var_addr)))>>32));
								} else {
				dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(var_addr)));
								}
						}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else if (Z_MODE(var_addr) == IS_REG) {
						if (ZREG_R2 != Z_REG(var_addr)) {
				dasm_put(Dst, 1773, (Z_REG(var_addr)), (ZREG_R2));
						}
					} else {
						ZEND_UNREACHABLE();
					}
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
							}
						} else if ((MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
							if (Z_MODE(var_addr) == IS_REG) {
					if (Z_MODE(res_addr) == IS_REG) {
						if (Z_REG(var_addr) != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							} else if (Z_MODE(res_addr) == IS_REG) {
					if (Z_MODE(var_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
						if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(var_addr));
					} else {
				dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(var_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(var_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
						} else if (Z_MODE(var_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
							} else {
					if (Z_MODE(var_addr) != IS_REG || ZREG_XMM0 != Z_REG(var_addr)) {
						if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
								if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(var_addr));
					} else {
				dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(var_addr));
					}
								} else {
						if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(var_addr)));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
						}
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
					}
								}
						} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
						} else if (Z_MODE(var_addr) == IS_REG) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
					}
						} else {
							ZEND_UNREACHABLE();
						}
					}
					if (Z_MODE(res_addr) == IS_REG) {
						if (ZREG_XMM0 != Z_REG(res_addr)) {
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					} else {
				dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
					}
						}
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					if (CAN_USE_AVX()) {
				dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
					}
							}
						} else if (!(MAY_BE_LONG & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
					}
					if ((MAY_BE_LONG & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
				      !(MAY_BE_LONG & MAY_BE_GUARD) &&
						has_concrete_type(MAY_BE_LONG & MAY_BE_ANY)) {
						if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
							if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_LONG & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
								zend_uchar type = concrete_type(MAY_BE_LONG);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
							}
						}
					} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
					}
#line 13730 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|.cold_code
		dasm_put(Dst, 290);
#line 13733 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		dasm_put(Dst, 2037);
#line 13734 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_POST_INC_OBJ || opline->opcode == ZEND_POST_DEC_OBJ) {
			//|	ZVAL_COPY_VALUE res_addr, -1, var_addr, MAY_BE_ANY, ZREG_R0, ZREG_R2
				if (MAY_BE_ANY & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(var_addr) == IS_REG) {
							if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(var_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
							}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(var_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(var_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(var_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(var_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(var_addr)));
							}
					}
				} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else if (Z_MODE(var_addr) == IS_REG) {
					if (Z_REG(res_addr) != Z_REG(var_addr)) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (Z_REG(res_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(var_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_R2), (ZREG_R2));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(var_addr)))) {
			dasm_put(Dst, 1749, (ZREG_R2), (unsigned int)(Z_LVAL_P(Z_ZV(var_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(var_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_R2), Z_LVAL_P(Z_ZV(var_addr)));
							}
					}
				} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else if (Z_MODE(var_addr) == IS_REG) {
					if (ZREG_R2 != Z_REG(var_addr)) {
			dasm_put(Dst, 1773, (Z_REG(var_addr)), (ZREG_R2));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(res_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_R2), (Z_REG(res_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
						}
					} else if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(res_addr) == IS_REG) {
					if (Z_REG(var_addr) != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						} else if (Z_MODE(res_addr) == IS_REG) {
				if (Z_MODE(var_addr) != IS_REG || Z_REG(res_addr) != Z_REG(var_addr)) {
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(var_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(var_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(var_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
					} else if (Z_MODE(var_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(var_addr) != IS_REG || ZREG_XMM0 != Z_REG(var_addr)) {
					if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(var_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(var_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(var_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
					} else if (Z_MODE(var_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(res_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(res_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
				}
						}
					} else if (!(MAY_BE_ANY & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_R2), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_R2), (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
				}
				if ((MAY_BE_ANY & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(MAY_BE_ANY & MAY_BE_GUARD) &&
					has_concrete_type(MAY_BE_ANY & MAY_BE_ANY)) {
					if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(MAY_BE_ANY);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				}
#line 13736 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	TRY_ADDREF MAY_BE_ANY, ah, r2
				if (MAY_BE_ANY & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
					if (MAY_BE_ANY & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			dasm_put(Dst, 2381);
					}
			dasm_put(Dst, 2205);
				}
#line 13737 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->opcode == ZEND_PRE_INC_OBJ || opline->opcode == ZEND_POST_INC_OBJ) {
			if (opline->opcode == ZEND_PRE_INC_OBJ && opline->result_type != IS_UNUSED) {
				//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13741 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_pre_inc, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_inc)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_inc));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_pre_inc)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_inc));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_inc)), (unsigned int)((((ptrdiff_t)zend_jit_pre_inc))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13742 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	EXT_CALL increment_function, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(increment_function)) {
				dasm_put(Dst, 46, (ptrdiff_t)(increment_function));
						} else {
						if (IS_SIGNED_32BIT(increment_function)) {
				dasm_put(Dst, 50, ((ptrdiff_t)increment_function));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)increment_function)), (unsigned int)((((ptrdiff_t)increment_function))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			if (opline->opcode == ZEND_PRE_DEC_OBJ && opline->result_type != IS_UNUSED) {
				//|	LOAD_ZVAL_ADDR FCARG2a, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 2349, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13748 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_pre_dec, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_dec)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_dec));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_pre_dec)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_dec));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_dec)), (unsigned int)((((ptrdiff_t)zend_jit_pre_dec))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13749 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	EXT_CALL decrement_function, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(decrement_function)) {
				dasm_put(Dst, 46, (ptrdiff_t)(decrement_function));
						} else {
						if (IS_SIGNED_32BIT(decrement_function)) {
				dasm_put(Dst, 50, ((ptrdiff_t)decrement_function));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)decrement_function)), (unsigned int)((((ptrdiff_t)decrement_function))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13751 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	jmp >4
		dasm_put(Dst, 342);
#line 13754 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|3:
		dasm_put(Dst, 347);
#line 13756 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->opcode == ZEND_PRE_INC_OBJ || opline->opcode == ZEND_POST_INC_OBJ) {
			//|.if X64
				//|	mov64 rax, 0x43e0000000000000
				//|	SET_ZVAL_LVAL var_addr, rax
				dasm_put(Dst, 55, (unsigned int)(0x43e0000000000000), (unsigned int)((0x43e0000000000000)>>32));
					if (Z_MODE(var_addr) == IS_REG) {
				dasm_put(Dst, 2279, (Z_REG(var_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2285, (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
#line 13760 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO var_addr, IS_DOUBLE
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 13761 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (opline->opcode == ZEND_PRE_INC_OBJ && opline->result_type != IS_UNUSED) {
					//|	SET_ZVAL_LVAL res_addr, rax
						if (Z_MODE(res_addr) == IS_REG) {
					dasm_put(Dst, 2279, (Z_REG(res_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
#line 13763 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 13764 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			//|.else
				//|	SET_ZVAL_LVAL var_addr, 0
				//|	SET_ZVAL_W2 var_addr, 0x41e00000
				//|	SET_ZVAL_TYPE_INFO var_addr, IS_DOUBLE
				if (opline->opcode == ZEND_PRE_INC_OBJ && opline->result_type != IS_UNUSED) {
					//|	SET_ZVAL_LVAL res_addr, 0
					//|	SET_ZVAL_W2 res_addr, 0x41e00000
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
				}
			//|.endif
		} else {
			//|.if X64
				//|	mov64 rax, 0xc3e0000000000000
				//|	SET_ZVAL_LVAL var_addr, rax
				dasm_put(Dst, 55, (unsigned int)(0xc3e0000000000000), (unsigned int)((0xc3e0000000000000)>>32));
					if (Z_MODE(var_addr) == IS_REG) {
				dasm_put(Dst, 2279, (Z_REG(var_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 2285, (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
#line 13779 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO var_addr, IS_DOUBLE
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 13780 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (opline->opcode == ZEND_PRE_DEC_OBJ && opline->result_type != IS_UNUSED) {
					//|	SET_ZVAL_LVAL res_addr, rax
						if (Z_MODE(res_addr) == IS_REG) {
					dasm_put(Dst, 2279, (Z_REG(res_addr)));
						} else {
							ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						}
#line 13782 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
#line 13783 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			//|.else
				//|	SET_ZVAL_LVAL var_addr, 0x00200000
				//|	SET_ZVAL_W2 var_addr, 0xc1e00000
				//|	SET_ZVAL_TYPE_INFO var_addr, IS_DOUBLE
				if (opline->opcode == ZEND_PRE_DEC_OBJ && opline->result_type != IS_UNUSED) {
					//|	SET_ZVAL_LVAL res_addr, 0x00200000
					//|	SET_ZVAL_W2 res_addr, 0xc1e00000
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_DOUBLE
			}
			//|.endif
		}
		//|	jmp >4
		//|.code
		dasm_put(Dst, 383);
#line 13797 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|4:
		dasm_put(Dst, 389);
#line 13798 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (needs_slow_path) {
		//|.cold_code
		dasm_put(Dst, 290);
#line 13802 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|7:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 4449);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 13804 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// value = zobj->handlers->write_property(zobj, name, value, CACHE_ADDR(opline->extended_value));
		//|	LOAD_ADDR FCARG2a, name
				if (IS_SIGNED_32BIT(name)) {
		dasm_put(Dst, 707, ((ptrdiff_t)name));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)name)), (unsigned int)((((ptrdiff_t)name))>>32));
				}
#line 13806 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
			//|	mov CARG3, EX->run_time_cache
			//|	add CARG3, opline->extended_value
			dasm_put(Dst, 7659, Dt1(->run_time_cache), opline->extended_value);
#line 13809 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (opline->result_type == IS_UNUSED) {
				//|	xor CARG4, CARG4
				dasm_put(Dst, 4483);
#line 13811 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	LOAD_ZVAL_ADDR CARG4, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 4487, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 4497, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 4505, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13813 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		//|.else
			//|	sub r4, 8
			if (opline->result_type == IS_UNUSED) {
				//|	push 0
			} else {
				//|	PUSH_ZVAL_ADDR res_addr, r0
			}
			//|	mov r0, EX->run_time_cache
			//|	add r0, opline->extended_value
			//|	push r0
		//|.endif

		switch (opline->opcode) {
			case ZEND_PRE_INC_OBJ:
				//|	EXT_CALL zend_jit_pre_inc_obj_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_inc_obj_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_inc_obj_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_pre_inc_obj_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_inc_obj_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_inc_obj_helper)), (unsigned int)((((ptrdiff_t)zend_jit_pre_inc_obj_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13829 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_PRE_DEC_OBJ:
				//|	EXT_CALL zend_jit_pre_dec_obj_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_pre_dec_obj_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_pre_dec_obj_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_pre_dec_obj_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_pre_dec_obj_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_pre_dec_obj_helper)), (unsigned int)((((ptrdiff_t)zend_jit_pre_dec_obj_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13832 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_POST_INC_OBJ:
				//|	EXT_CALL zend_jit_post_inc_obj_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_inc_obj_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_inc_obj_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_post_inc_obj_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_inc_obj_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_inc_obj_helper)), (unsigned int)((((ptrdiff_t)zend_jit_post_inc_obj_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13835 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			case ZEND_POST_DEC_OBJ:
				//|	EXT_CALL zend_jit_post_dec_obj_helper, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_post_dec_obj_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_post_dec_obj_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_post_dec_obj_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_post_dec_obj_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_post_dec_obj_helper)), (unsigned int)((((ptrdiff_t)zend_jit_post_dec_obj_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 13838 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				break;
			default:
				ZEND_UNREACHABLE();
		}

		//|.if not(X64)
			//|	add r4, 8
		//|.endif

		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 13849 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|9:
	dasm_put(Dst, 4204);
#line 13852 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->op1_type != IS_UNUSED && !use_this && !op1_indirect) {
		//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
			if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (1) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 13854 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (may_throw) {
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_assign_obj_op(dasm_State          **Dst,
                                  const zend_op        *opline,
                                  const zend_op_array  *op_array,
                                  zend_ssa             *ssa,
                                  const zend_ssa_op    *ssa_op,
                                  uint32_t              op1_info,
                                  zend_jit_addr         op1_addr,
                                  uint32_t              val_info,
                                  zend_ssa_range       *val_range,
                                  zend_bool             op1_indirect,
                                  zend_class_entry     *ce,
                                  zend_bool             ce_is_instanceof,
                                  zend_bool             use_this,
                                  zend_class_entry     *trace_ce,
                                  int                   may_throw)
{
	zval *member;
	zend_string *name;
	zend_property_info *prop_info;
	zend_jit_addr val_addr = OP1_DATA_ADDR();
	zend_jit_addr this_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, offsetof(zend_execute_data, This));
	zend_jit_addr prop_addr;
	zend_bool needs_slow_path = 0;
	binary_op_type binary_op = get_binary_op(opline->extended_value);

	ZEND_ASSERT(opline->op2_type == IS_CONST);
	ZEND_ASSERT(op1_info & MAY_BE_OBJECT);
	ZEND_ASSERT(opline->result_type == IS_UNUSED);

	member = RT_CONSTANT(opline, opline->op2);
	ZEND_ASSERT(Z_TYPE_P(member) == IS_STRING && Z_STRVAL_P(member)[0] != '\0');
	name = Z_STR_P(member);
	prop_info = zend_get_known_property_info(ce, name, opline->op1_type == IS_UNUSED, op_array->filename);

	if (opline->op1_type == IS_UNUSED || use_this) {
		//|	GET_ZVAL_PTR FCARG1a, this_addr
			ZEND_ASSERT(Z_MODE(this_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(this_addr)), Z_OFFSET(this_addr));
#line 13901 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (opline->op1_type == IS_VAR
		 && (op1_info & MAY_BE_INDIRECT)
		 && Z_REG(op1_addr) == ZREG_FP) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 13906 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	IF_NOT_Z_TYPE FCARG1a, IS_INDIRECT, >1
			//|	GET_Z_PTR FCARG1a, FCARG1a
			//|1:
			dasm_put(Dst, 7367, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 13909 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & MAY_BE_REF) {
			if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 13914 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	ZVAL_DEREF FCARG1a, op1_info
				if (op1_info & MAY_BE_REF) {
			dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
				}
#line 13916 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, &exit_addr
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 13927 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 13929 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 3360, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT);
#line 13930 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 64);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 13932 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
					//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(op1_addr)) {
					dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else {
					dasm_put(Dst, 2322, (Z_REG(op1_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 13934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	LOAD_ADDR FCARG2a, ZSTR_VAL(name)
						if (IS_SIGNED_32BIT(ZSTR_VAL(name))) {
				dasm_put(Dst, 707, ((ptrdiff_t)ZSTR_VAL(name)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)ZSTR_VAL(name))), (unsigned int)((((ptrdiff_t)ZSTR_VAL(name)))>>32));
						}
#line 13936 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op1_info & MAY_BE_UNDEF) {
					//|	EXT_CALL zend_jit_invalid_property_assign_op, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_property_assign_op)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_property_assign_op));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_invalid_property_assign_op)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_property_assign_op));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_property_assign_op)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_property_assign_op))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 13938 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	EXT_CALL zend_jit_invalid_property_assign, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_property_assign)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_property_assign));
							} else {
							if (IS_SIGNED_32BIT(zend_jit_invalid_property_assign)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_property_assign));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_property_assign)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_property_assign))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 13940 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				may_throw = 1;
				if (((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR))
				 && (val_info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					//|	jmp >8
					dasm_put(Dst, 3768);
#line 13945 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 13947 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|.code
				dasm_put(Dst, 387);
#line 13949 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	GET_ZVAL_PTR FCARG1a, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 13952 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!prop_info && trace_ce && (trace_ce->ce_flags & ZEND_ACC_IMMUTABLE)) {
		prop_info = zend_get_known_property_info(trace_ce, name, opline->op1_type == IS_UNUSED, op_array->filename);
		if (prop_info) {
			ce = trace_ce;
			ce_is_instanceof = 0;
			if (!(op1_info & MAY_BE_CLASS_GUARD)) {
				if (!zend_jit_class_guard(Dst, opline, trace_ce)) {
					return 0;
				}
				if (ssa->var_info && ssa_op->op1_use >= 0) {
					ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_use].ce = ce;
					ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
				}
				if (ssa->var_info && ssa_op->op1_def >= 0) {
					ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_def].ce = ce;
					ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
				}
			}
		}
	}

	if (!prop_info) {
		needs_slow_path = 1;

		//|	mov r0, EX->run_time_cache
		//|	mov r2, aword [r0 + (opline+1)->extended_value]
		//|	cmp r2, aword [FCARG1a + offsetof(zend_object, ce)]
		//|	jne >7
		dasm_put(Dst, 7563, Dt1(->run_time_cache), (opline+1)->extended_value, offsetof(zend_object, ce));
#line 13984 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!ce || ce_is_instanceof || (ce->ce_flags & ZEND_ACC_HAS_TYPE_HINTS)) {
			//|	cmp aword [r0 + ((opline+1)->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*) * 2], 0
			//|	jnz >7
			dasm_put(Dst, 7580, ((opline+1)->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*) * 2);
#line 13987 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	mov r0, aword [r0 + (opline+1)->extended_value + sizeof(void*)]
		//|	test r0, r0
		//|	jl >7
		//|	IF_TYPE byte [FCARG1a + r0 + 8], IS_UNDEF, >7
		//|	add FCARG1a, r0
		dasm_put(Dst, 7590, (opline+1)->extended_value + sizeof(void*), 8, IS_UNDEF);
#line 13993 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	} else {
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, prop_info->offset);
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
			const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

			if (!exit_addr) {
				return 0;
			}
			//|	IF_TYPE byte [FCARG1a + prop_info->offset + 8], IS_UNDEF, &exit_addr
			dasm_put(Dst, 7615, prop_info->offset + 8, IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 14004 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	IF_TYPE byte [FCARG1a + prop_info->offset + 8], IS_UNDEF, >7
			dasm_put(Dst, 7623, prop_info->offset + 8, IS_UNDEF);
#line 14006 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			needs_slow_path = 1;
		}
		if (ZEND_TYPE_IS_SET(prop_info->type)) {
			uint32_t info = val_info;

			if (opline) {
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 14013 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}

			//|	IF_ZVAL_TYPE prop_addr, IS_REFERENCE, >1
				ZEND_ASSERT(Z_MODE(prop_addr) == IS_MEM_ZVAL);
#line 14016 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.cold_code
			dasm_put(Dst, 3945, (Z_REG(prop_addr)), Z_OFFSET(prop_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 14017 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	GET_ZVAL_PTR FCARG1a, prop_addr
			dasm_put(Dst, 64);
				ZEND_ASSERT(Z_MODE(prop_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4219, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
#line 14019 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (Z_MODE(val_addr) != IS_MEM_ZVAL || Z_REG(val_addr) != ZREG_FCARG2a || Z_OFFSET(val_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG2a, val_addr
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(val_addr)) {
				dasm_put(Dst, 2349, (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 2357, (Z_REG(val_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 14021 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.if X64
				//|	LOAD_ADDR CARG3, binary_op
						if (IS_SIGNED_32BIT(binary_op)) {
				dasm_put(Dst, 3388, ((ptrdiff_t)binary_op));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
						}
#line 14024 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 12
				//|	PUSH_ADDR binary_op, r0
			//|.endif
			if (((opline+1)->op1_type & (IS_TMP_VAR|IS_VAR))
			 && (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				//|	EXT_CALL zend_jit_assign_op_to_typed_ref_tmp, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref_tmp));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 14031 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	EXT_CALL zend_jit_assign_op_to_typed_ref, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 14033 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.if not(X64)
				//|	add r4, 12
			//|.endif
			//|	jmp >9
			//|.code
			dasm_put(Dst, 4173);
#line 14039 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			//|	// value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);

			if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
				//|	LOAD_ADDR FCARG2a, prop_info
						if (IS_SIGNED_32BIT(prop_info)) {
				dasm_put(Dst, 707, ((ptrdiff_t)prop_info));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)prop_info)), (unsigned int)((((ptrdiff_t)prop_info))>>32));
						}
#line 14044 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				int prop_info_offset =
					(((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));

				//|	mov r0, aword [FCARG1a + offsetof(zend_object, ce)]
				//|	mov	r0, aword [r0 + offsetof(zend_class_entry, properties_info_table)]
				//|	mov FCARG2a, aword[r0 + prop_info_offset]
				dasm_put(Dst, 7481, offsetof(zend_object, ce), offsetof(zend_class_entry, properties_info_table), prop_info_offset);
#line 14051 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
				if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
					}
				} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(prop_addr)) {
			dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(prop_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 14053 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, val_addr
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(val_addr)) {
				dasm_put(Dst, 3398, (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(val_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 14055 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	LOAD_ADDR CARG4, binary_op
						if (IS_SIGNED_32BIT(binary_op)) {
				dasm_put(Dst, 4487, ((ptrdiff_t)binary_op));
						} else {
				dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
						}
#line 14056 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	sub r4, 8
				//|	PUSH_ADDR binary_op, r0
				//|	PUSH_ZVAL_ADDR val_addr, r0
			//|.endif

			//|	EXT_CALL zend_jit_assign_op_to_typed_prop, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_prop)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_prop));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_prop)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_prop));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_prop))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 14063 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			//|.if not(X64)
				//|	add r4, 8
			//|.endif

			if (info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				info |= MAY_BE_RC1|MAY_BE_RCN;
			}

			//|	FREE_OP (opline+1)->op1_type, (opline+1)->op1, info, 0, opline
				if ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (0) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)));
					if (((info) & MAY_BE_GUARD) || RC_MAY_BE_1(info)) {
						if (((info) & MAY_BE_GUARD) || RC_MAY_BE_N(info)) {
							if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((info) & MAY_BE_GUARD)
					 && has_concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (0 && ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 14073 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!prop_info || !ZEND_TYPE_IS_SET(prop_info->type)) {
		zend_jit_addr var_addr = prop_addr;
		uint32_t var_info = MAY_BE_ANY|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN;
		uint32_t var_def_info = MAY_BE_ANY|MAY_BE_REF|MAY_BE_RC1|MAY_BE_RCN;

		var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);
		//|	LOAD_ZVAL_ADDR r0, prop_addr
			if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(prop_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
				}
			} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(prop_addr)) {
		dasm_put(Dst, 6420, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
			} else {
		dasm_put(Dst, 6428, (Z_REG(prop_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 14083 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|	IF_NOT_ZVAL_TYPE var_addr, IS_REFERENCE, >2
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 14085 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GET_ZVAL_PTR FCARG1a, var_addr
		dasm_put(Dst, 2224, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 14086 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	cmp aword [FCARG1a + offsetof(zend_reference, sources.ptr)], 0
		//|	jnz >1
		//|	lea r0, aword [FCARG1a + offsetof(zend_reference, val)]
		//|.cold_code
		dasm_put(Dst, 7668, (Z_REG(var_addr)), Z_OFFSET(var_addr), offsetof(zend_reference, sources.ptr), offsetof(zend_reference, val));
#line 14090 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 14091 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_MODE(val_addr) != IS_MEM_ZVAL || Z_REG(val_addr) != ZREG_FCARG2a || Z_OFFSET(val_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG2a, val_addr
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(val_addr)) {
			dasm_put(Dst, 2349, (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2357, (Z_REG(val_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 14093 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 14096 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.if X64
			//|	LOAD_ADDR CARG3, binary_op
					if (IS_SIGNED_32BIT(binary_op)) {
			dasm_put(Dst, 3388, ((ptrdiff_t)binary_op));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
					}
#line 14099 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 12
			//|	PUSH_ADDR binary_op, r0
		//|.endif
		if (((opline+1)->op1_type & (IS_TMP_VAR|IS_VAR))
		 && (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			//|	EXT_CALL zend_jit_assign_op_to_typed_ref_tmp, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref_tmp));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref_tmp)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref_tmp))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 14106 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	EXT_CALL zend_jit_assign_op_to_typed_ref, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_op_to_typed_ref)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_op_to_typed_ref));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_op_to_typed_ref)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_op_to_typed_ref));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_op_to_typed_ref)), (unsigned int)((((ptrdiff_t)zend_jit_assign_op_to_typed_ref))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 14108 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|.if not(X64)
			//|	add r4, 12
		//|.endif
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 14114 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|2:
		dasm_put(Dst, 2037);
#line 14115 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		switch (opline->extended_value) {
			case ZEND_ADD:
			case ZEND_SUB:
			case ZEND_MUL:
			case ZEND_DIV:
				if (!zend_jit_math_helper(Dst, opline, opline->extended_value, IS_CV, opline->op1, var_addr, var_info, (opline+1)->op1_type, (opline+1)->op1, val_addr, val_info, 0, var_addr, var_def_info, var_info,
						1 /* may overflow */, 0)) {
					return 0;
				}
				break;
			case ZEND_BW_OR:
			case ZEND_BW_AND:
			case ZEND_BW_XOR:
			case ZEND_SL:
			case ZEND_SR:
			case ZEND_MOD:
				if (!zend_jit_long_math_helper(Dst, opline, opline->extended_value,
						IS_CV, opline->op1, var_addr, var_info, NULL,
						(opline+1)->op1_type, (opline+1)->op1, val_addr, val_info,
						val_range,
						0, var_addr, var_def_info, var_info, 0)) {
					return 0;
				}
				break;
			case ZEND_CONCAT:
				if (!zend_jit_concat_helper(Dst, opline, IS_CV, opline->op1, var_addr, var_info, (opline+1)->op1_type, (opline+1)->op1, val_addr, val_info, var_addr,
						0)) {
					return 0;
				}
				break;
			default:
				ZEND_UNREACHABLE();
		}
	}

	if (needs_slow_path) {
		//|.cold_code
		dasm_put(Dst, 290);
#line 14153 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|7:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 4449);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 14155 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// value = zobj->handlers->write_property(zobj, name, value, CACHE_ADDR(opline->extended_value));
		//|	LOAD_ADDR FCARG2a, name
				if (IS_SIGNED_32BIT(name)) {
		dasm_put(Dst, 707, ((ptrdiff_t)name));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)name)), (unsigned int)((((ptrdiff_t)name))>>32));
				}
#line 14157 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, val_addr
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(val_addr)) {
			dasm_put(Dst, 3398, (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(val_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 14159 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov CARG4, EX->run_time_cache
			//|	add CARG4, (opline+1)->extended_value
			//|.if X64WIN
			//|	LOAD_ADDR r0, binary_op
			//|	mov aword A5, r0
			//|.else
			//|	LOAD_ADDR CARG5, binary_op
			dasm_put(Dst, 7690, Dt1(->run_time_cache), (opline+1)->extended_value);
					if (IS_SIGNED_32BIT(binary_op)) {
			dasm_put(Dst, 7699, ((ptrdiff_t)binary_op));
					} else {
			dasm_put(Dst, 7704, (unsigned int)(((ptrdiff_t)binary_op)), (unsigned int)((((ptrdiff_t)binary_op))>>32));
					}
#line 14166 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.endif
		//|.else
			//|	sub r4, 4
			//|	PUSH_ADDR binary_op, r0
			//|	mov r0, EX->run_time_cache
			//|	add r0, (opline+1)->extended_value
			//|	push r0
			//|	PUSH_ZVAL_ADDR val_addr, r0
		//|.endif

		//|	EXT_CALL zend_jit_assign_obj_op_helper, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_obj_op_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_obj_op_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_obj_op_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_obj_op_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_obj_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_assign_obj_op_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 14177 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|.if not(X64)
			//|	add r4, 4
		//|.endif

		if (val_info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
			val_info |= MAY_BE_RC1|MAY_BE_RCN;
		}

		//|8:
		//|	// FREE_OP_DATA();
		//|	FREE_OP (opline+1)->op1_type, (opline+1)->op1, val_info, 0, opline
		dasm_put(Dst, 4301);
			if ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)));
				if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_1(val_info)) {
					if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_N(val_info)) {
						if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((val_info) & MAY_BE_GUARD)
				 && has_concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((val_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((val_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((val_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 14189 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 14191 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|9:
	dasm_put(Dst, 4204);
#line 14194 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->op1_type != IS_UNUSED && !use_this && !op1_indirect) {
		//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
			if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (1) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 14196 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (may_throw) {
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_assign_obj(dasm_State          **Dst,
                               const zend_op        *opline,
                               const zend_op_array  *op_array,
                               zend_ssa             *ssa,
                               const zend_ssa_op    *ssa_op,
                               uint32_t              op1_info,
                               zend_jit_addr         op1_addr,
                               uint32_t              val_info,
                               zend_bool             op1_indirect,
                               zend_class_entry     *ce,
                               zend_bool             ce_is_instanceof,
                               zend_bool             use_this,
                               zend_class_entry     *trace_ce,
                               int                   may_throw)
{
	zval *member;
	zend_string *name;
	zend_property_info *prop_info;
	zend_jit_addr val_addr = OP1_DATA_ADDR();
	zend_jit_addr res_addr = 0;
	zend_jit_addr this_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, offsetof(zend_execute_data, This));
	zend_jit_addr prop_addr;
	zend_bool needs_slow_path = 0;
	zend_bool needs_val_dtor = 0;

	if (RETURN_VALUE_USED(opline)) {
		res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	}

	ZEND_ASSERT(opline->op2_type == IS_CONST);
	ZEND_ASSERT(op1_info & MAY_BE_OBJECT);

	member = RT_CONSTANT(opline, opline->op2);
	ZEND_ASSERT(Z_TYPE_P(member) == IS_STRING && Z_STRVAL_P(member)[0] != '\0');
	name = Z_STR_P(member);
	prop_info = zend_get_known_property_info(ce, name, opline->op1_type == IS_UNUSED, op_array->filename);

	if (opline->op1_type == IS_UNUSED || use_this) {
		//|	GET_ZVAL_PTR FCARG1a, this_addr
			ZEND_ASSERT(Z_MODE(this_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(this_addr)), Z_OFFSET(this_addr));
#line 14246 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		if (opline->op1_type == IS_VAR
		 && (op1_info & MAY_BE_INDIRECT)
		 && Z_REG(op1_addr) == ZREG_FP) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 14251 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	IF_NOT_Z_TYPE FCARG1a, IS_INDIRECT, >1
			//|	GET_Z_PTR FCARG1a, FCARG1a
			//|1:
			dasm_put(Dst, 7367, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 14254 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & MAY_BE_REF) {
			if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
				//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
					if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
				dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
						}
					} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(op1_addr)) {
				dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					} else {
				dasm_put(Dst, 2322, (Z_REG(op1_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 14259 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	ZVAL_DEREF FCARG1a, op1_info
				if (op1_info & MAY_BE_REF) {
			dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
				}
#line 14261 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		if (op1_info & ((MAY_BE_UNDEF|MAY_BE_ANY)- MAY_BE_OBJECT)) {
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, &exit_addr
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 14272 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_NOT_ZVAL_TYPE op1_addr, IS_OBJECT, >1
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 14274 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.cold_code
				dasm_put(Dst, 3360, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_OBJECT);
#line 14275 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|1:
				//|	SET_EX_OPLINE opline, r0
				dasm_put(Dst, 64);
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 14277 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
					//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(op1_addr)) {
					dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else {
					dasm_put(Dst, 2322, (Z_REG(op1_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 14279 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	LOAD_ADDR FCARG2a, ZSTR_VAL(name)
						if (IS_SIGNED_32BIT(ZSTR_VAL(name))) {
				dasm_put(Dst, 707, ((ptrdiff_t)ZSTR_VAL(name)));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)ZSTR_VAL(name))), (unsigned int)((((ptrdiff_t)ZSTR_VAL(name)))>>32));
						}
#line 14281 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_jit_invalid_property_assign, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_invalid_property_assign)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_invalid_property_assign));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_invalid_property_assign)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_invalid_property_assign));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_invalid_property_assign)), (unsigned int)((((ptrdiff_t)zend_jit_invalid_property_assign))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 14282 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (RETURN_VALUE_USED(opline)) {
					//|	SET_ZVAL_TYPE_INFO res_addr, IS_NULL
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_NULL);
#line 14284 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR))
				 && (val_info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				 	needs_val_dtor = 1;
					//|	jmp >7
					dasm_put(Dst, 3722);
#line 14289 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	jmp >9
					dasm_put(Dst, 3682);
#line 14291 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|.code
				dasm_put(Dst, 387);
#line 14293 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		//|	GET_ZVAL_PTR FCARG1a, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 14296 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!prop_info && trace_ce && (trace_ce->ce_flags & ZEND_ACC_IMMUTABLE)) {
		prop_info = zend_get_known_property_info(trace_ce, name, opline->op1_type == IS_UNUSED, op_array->filename);
		if (prop_info) {
			ce = trace_ce;
			ce_is_instanceof = 0;
			if (!(op1_info & MAY_BE_CLASS_GUARD)) {
				if (!zend_jit_class_guard(Dst, opline, trace_ce)) {
					return 0;
				}
				if (ssa->var_info && ssa_op->op1_use >= 0) {
					ssa->var_info[ssa_op->op1_use].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_use].ce = ce;
					ssa->var_info[ssa_op->op1_use].is_instanceof = ce_is_instanceof;
				}
				if (ssa->var_info && ssa_op->op1_def >= 0) {
					ssa->var_info[ssa_op->op1_def].type |= MAY_BE_CLASS_GUARD;
					ssa->var_info[ssa_op->op1_def].ce = ce;
					ssa->var_info[ssa_op->op1_def].is_instanceof = ce_is_instanceof;
				}
			}
		}
	}

	if (!prop_info) {
		needs_slow_path = 1;

		//|	mov r0, EX->run_time_cache
		//|	mov r2, aword [r0 + opline->extended_value]
		//|	cmp r2, aword [FCARG1a + offsetof(zend_object, ce)]
		//|	jne >5
		dasm_put(Dst, 7709, Dt1(->run_time_cache), opline->extended_value, offsetof(zend_object, ce));
#line 14328 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (!ce || ce_is_instanceof || (ce->ce_flags & ZEND_ACC_HAS_TYPE_HINTS)) {
			//|	mov FCARG2a, aword [r0 + (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*) * 2]
			dasm_put(Dst, 7325, (opline->extended_value & ~ZEND_FETCH_OBJ_FLAGS) + sizeof(void*) * 2);
#line 14330 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	mov r0, aword [r0 + opline->extended_value + sizeof(void*)]
		//|	test r0, r0
		//|	jl >5
		//|	IF_TYPE byte [FCARG1a + r0 + 8], IS_UNDEF, >5
		//|	add FCARG1a, r0
		dasm_put(Dst, 7726, opline->extended_value + sizeof(void*), 8, IS_UNDEF);
#line 14336 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		if (!ce || ce_is_instanceof || (ce->ce_flags & ZEND_ACC_HAS_TYPE_HINTS)) {
			//|	test FCARG2a, FCARG2a
			//|	jnz >1
			//|.cold_code
			dasm_put(Dst, 7435);
#line 14341 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	// value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
			//|	SET_EX_OPLINE opline, r0
			dasm_put(Dst, 64);
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 14344 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, val_addr
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(val_addr)) {
				dasm_put(Dst, 3398, (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(val_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 14346 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (RETURN_VALUE_USED(opline)) {
					//|	LOAD_ZVAL_ADDR CARG4, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 4487, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 4497, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 4505, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 14348 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	xor CARG4, CARG4
					dasm_put(Dst, 4483);
#line 14350 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			//|.else
				//|	sub r4, 8
				if (RETURN_VALUE_USED(opline)) {
					//|	PUSH_ZVAL_ADDR res_addr, r0
				} else {
					//|	push 0
				}
				//|	PUSH_ZVAL_ADDR val_addr, r0
			//|.endif

			//|	EXT_CALL zend_jit_assign_to_typed_prop, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_to_typed_prop)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_to_typed_prop));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_to_typed_prop)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_to_typed_prop));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_to_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_assign_to_typed_prop))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 14362 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			//|.if not(X64)
				//|	add r4, 8
			//|.endif

			if ((opline+1)->op1_type == IS_CONST) {
				//|	// TODO: ???
				//|	// if (Z_TYPE_P(value) == orig_type) {
				//|	// CACHE_PTR_EX(cache_slot + 2, NULL);
			}

			if (((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR))
			 && (val_info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
				//|	jmp >7
				dasm_put(Dst, 3722);
#line 14376 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jmp >9
				dasm_put(Dst, 3682);
#line 14378 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|.code
			dasm_put(Dst, 387);
#line 14380 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		prop_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, prop_info->offset);
		if (!ce || ce_is_instanceof || !(ce->ce_flags & ZEND_ACC_IMMUTABLE) || ce->__get || ce->__set) {
			// Undefined property with magic __get()/__set()
			if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				if (!exit_addr) {
					return 0;
				}
				//|	IF_TYPE byte [FCARG1a + prop_info->offset + 8], IS_UNDEF, &exit_addr
				dasm_put(Dst, 7615, prop_info->offset + 8, IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 14393 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	IF_TYPE byte [FCARG1a + prop_info->offset + 8], IS_UNDEF, >5
				dasm_put(Dst, 472, prop_info->offset + 8, IS_UNDEF);
#line 14395 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				needs_slow_path = 1;
			}
		}
		if (ZEND_TYPE_IS_SET(prop_info->type)) {
			uint32_t info = val_info;

			//|	// value = zend_assign_to_typed_prop(prop_info, property_val, value EXECUTE_DATA_CC);
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 14403 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (ce && ce->ce_flags & ZEND_ACC_IMMUTABLE) {
				//|	LOAD_ADDR FCARG2a, prop_info
						if (IS_SIGNED_32BIT(prop_info)) {
				dasm_put(Dst, 707, ((ptrdiff_t)prop_info));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)prop_info)), (unsigned int)((((ptrdiff_t)prop_info))>>32));
						}
#line 14405 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				int prop_info_offset =
					(((prop_info->offset - (sizeof(zend_object) - sizeof(zval))) / sizeof(zval)) * sizeof(void*));

				//|	mov r0, aword [FCARG1a + offsetof(zend_object, ce)]
				//|	mov	r0, aword [r0 + offsetof(zend_class_entry, properties_info_table)]
				//|	mov FCARG2a, aword[r0 + prop_info_offset]
				dasm_put(Dst, 7481, offsetof(zend_object, ce), offsetof(zend_class_entry, properties_info_table), prop_info_offset);
#line 14412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	LOAD_ZVAL_ADDR FCARG1a, prop_addr
				if (Z_MODE(prop_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(prop_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(prop_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(prop_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(prop_addr)))>>32));
					}
				} else if (Z_MODE(prop_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(prop_addr)) {
			dasm_put(Dst, 2314, (Z_REG(prop_addr)), Z_OFFSET(prop_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(prop_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 14414 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if X64
				//|	LOAD_ZVAL_ADDR CARG3, val_addr
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(val_addr)));
						} else {
				dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
						}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(val_addr)) {
				dasm_put(Dst, 3398, (Z_REG(val_addr)), Z_OFFSET(val_addr));
					} else {
				dasm_put(Dst, 3406, (Z_REG(val_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 14416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (RETURN_VALUE_USED(opline)) {
					//|	LOAD_ZVAL_ADDR CARG4, res_addr
						if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
					dasm_put(Dst, 4487, ((ptrdiff_t)Z_ZV(res_addr)));
							} else {
					dasm_put(Dst, 4492, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
							}
						} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(res_addr)) {
					dasm_put(Dst, 4497, (Z_REG(res_addr)), Z_OFFSET(res_addr));
						} else {
					dasm_put(Dst, 4505, (Z_REG(res_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 14418 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	xor CARG4, CARG4
					dasm_put(Dst, 4483);
#line 14420 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			//|.else
				//|	sub r4, 8
				if (RETURN_VALUE_USED(opline)) {
					//|	PUSH_ZVAL_ADDR res_addr, r0
				} else {
					//|	push 0
				}
				//|	PUSH_ZVAL_ADDR val_addr, r0
			//|.endif

			//|	EXT_CALL zend_jit_assign_to_typed_prop, r0
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_to_typed_prop)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_to_typed_prop));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_assign_to_typed_prop)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_to_typed_prop));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_to_typed_prop)), (unsigned int)((((ptrdiff_t)zend_jit_assign_to_typed_prop))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 14432 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

			//|.if not(X64)
				//|	add r4, 8
			//|.endif

			if (info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				info |= MAY_BE_RC1|MAY_BE_RCN;
			}

			//|	FREE_OP (opline+1)->op1_type, (opline+1)->op1, info, 0, opline
				if ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR)) {
				if ((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (0) {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)));
					if (((info) & MAY_BE_GUARD) || RC_MAY_BE_1(info)) {
						if (((info) & MAY_BE_GUARD) || RC_MAY_BE_N(info)) {
							if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((info) & MAY_BE_GUARD)
					 && has_concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((info) & MAY_BE_GUARD) || (RC_MAY_BE_N(info) && ((info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (0 && ((info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
				}
#line 14442 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!prop_info || !ZEND_TYPE_IS_SET(prop_info->type)) {
		// value = zend_assign_to_variable(property_val, value, OP_DATA_TYPE, EX_USES_STRICT_TYPES());
		if (opline->result_type == IS_UNUSED) {
			if (!zend_jit_assign_to_variable_call(Dst, opline, prop_addr, prop_addr, -1, -1, (opline+1)->op1_type, val_addr, val_info, res_addr, 0)) {
				return 0;
			}
		} else {
			if (!zend_jit_assign_to_variable(Dst, opline, prop_addr, prop_addr, -1, -1, (opline+1)->op1_type, val_addr, val_info, res_addr, 0)) {
				return 0;
			}
		}
	}

	if (needs_slow_path) {
		//|.cold_code
		dasm_put(Dst, 290);
#line 14460 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|5:
		//|	SET_EX_OPLINE opline, r0
		dasm_put(Dst, 495);
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 14462 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	// value = zobj->handlers->write_property(zobj, name, value, CACHE_ADDR(opline->extended_value));
		//|	LOAD_ADDR FCARG2a, name
				if (IS_SIGNED_32BIT(name)) {
		dasm_put(Dst, 707, ((ptrdiff_t)name));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)name)), (unsigned int)((((ptrdiff_t)name))>>32));
				}
#line 14464 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
			//|	LOAD_ZVAL_ADDR CARG3, val_addr
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 3388, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(val_addr)) {
			dasm_put(Dst, 3398, (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 3406, (Z_REG(val_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 14466 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov CARG4, EX->run_time_cache
			//|	add CARG4, opline->extended_value
			dasm_put(Dst, 7690, Dt1(->run_time_cache), opline->extended_value);
#line 14468 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			if (RETURN_VALUE_USED(opline)) {
				//|.if X64WIN
				//|	LOAD_ZVAL_ADDR r0, res_addr
				//|	mov aword A5, r0
				//|.else
				//|	LOAD_ZVAL_ADDR CARG5, res_addr
					if (Z_MODE(res_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(res_addr))) {
				dasm_put(Dst, 7699, ((ptrdiff_t)Z_ZV(res_addr)));
						} else {
				dasm_put(Dst, 7704, (unsigned int)(((ptrdiff_t)Z_ZV(res_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(res_addr)))>>32));
						}
					} else if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if (Z_OFFSET(res_addr)) {
				dasm_put(Dst, 7751, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					} else {
				dasm_put(Dst, 7759, (Z_REG(res_addr)));
					}
					} else {
						ZEND_UNREACHABLE();
					}
#line 14474 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|.endif
			} else {
				//|.if X64WIN
				//|	mov aword A5, 0
				//|.else
				//|	xor CARG5, CARG5
				//|.endif
				dasm_put(Dst, 4103);
#line 14481 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		//|.else
			//|	sub r4, 4
			if (RETURN_VALUE_USED(opline)) {
				//|	PUSH_ZVAL_ADDR res_addr, r0
			} else {
				//|	push 0
			}
			//|	mov r0, EX->run_time_cache
			//|	add r0, opline->extended_value
			//|	push r0
			//|	PUSH_ZVAL_ADDR val_addr, r0
		//|.endif

		//|	EXT_CALL zend_jit_assign_obj_helper, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_assign_obj_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_assign_obj_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_assign_obj_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_assign_obj_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_assign_obj_helper)), (unsigned int)((((ptrdiff_t)zend_jit_assign_obj_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 14496 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//|.if not(X64)
			//|	add r4, 4
		//|.endif

		if (val_info & (MAY_BE_REF|MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
			val_info |= MAY_BE_RC1|MAY_BE_RCN;
		}

		//|7:
		//|	// FREE_OP_DATA();
		//|	FREE_OP (opline+1)->op1_type, (opline+1)->op1, val_info, 0, opline
		dasm_put(Dst, 4449);
			if ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)));
				if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_1(val_info)) {
					if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_N(val_info)) {
						if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((val_info) & MAY_BE_GUARD)
				 && has_concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((val_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((val_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((val_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 14508 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 14510 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (needs_val_dtor) {
		//|.cold_code
		dasm_put(Dst, 290);
#line 14512 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|7:
		//|	// FREE_OP_DATA();
		//|	FREE_OP (opline+1)->op1_type, (opline+1)->op1, val_info, 0, opline
		dasm_put(Dst, 4449);
			if ((opline+1)->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)));
				if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_1(val_info)) {
					if (((val_info) & MAY_BE_GUARD) || RC_MAY_BE_N(val_info)) {
						if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((val_info) & MAY_BE_GUARD)
				 && has_concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((val_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((val_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((val_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((val_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(val_info) && ((val_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((val_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, (opline+1)->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((val_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 14515 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	jmp >9
		//|.code
		dasm_put(Dst, 4173);
#line 14517 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|9:
	dasm_put(Dst, 4204);
#line 14520 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->op1_type != IS_UNUSED && !use_this && !op1_indirect) {
		//|	FREE_OP opline->op1_type, opline->op1, op1_info, 1, opline
			if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (1) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (1 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 14522 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (may_throw) {
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_free(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, int may_throw)
{
	zend_jit_addr op1_addr = OP1_ADDR();

	if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF)) {
		if (may_throw) {
			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 14540 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (opline->opcode == ZEND_FE_FREE && (op1_info & (MAY_BE_OBJECT|MAY_BE_REF))) {
			if (op1_info & MAY_BE_ARRAY) {
				//|	IF_ZVAL_TYPE op1_addr, IS_ARRAY, >7
					ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 7765, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_ARRAY);
#line 14544 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|	mov FCARG1d, dword [FP + opline->op1.var + offsetof(zval, u2.fe_iter_idx)]
			//|	cmp FCARG1d, -1
			//|	je >7
			//|	EXT_CALL zend_hash_iterator_del, r0
			dasm_put(Dst, 7778, opline->op1.var + offsetof(zval, u2.fe_iter_idx));
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_iterator_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_iterator_del));
					} else {
					if (IS_SIGNED_32BIT(zend_hash_iterator_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_iterator_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_iterator_del)), (unsigned int)((((ptrdiff_t)zend_hash_iterator_del))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 14549 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|7:
			dasm_put(Dst, 4449);
#line 14550 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	ZVAL_PTR_DTOR op1_addr, op1_info, 0, 0, opline
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
#line 14552 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (may_throw) {
			if (!zend_jit_check_exception(Dst)) {
				return 0;
			}
		}
	}

	return 1;
}

static int zend_jit_echo(dasm_State **Dst, const zend_op *opline, uint32_t op1_info)
{
	if (opline->op1_type == IS_CONST) {
		zval *zv;
		size_t len;

		zv = RT_CONSTANT(opline, opline->op1);
		ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING);
		len = Z_STRLEN_P(zv);

		if (len > 0) {
			const char *str = Z_STRVAL_P(zv);

			//|	SET_EX_OPLINE opline, r0
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 14576 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.if X64
				//|	LOAD_ADDR CARG1, str
						if (IS_SIGNED_32BIT(str)) {
				dasm_put(Dst, 702, ((ptrdiff_t)str));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)str)), (unsigned int)((((ptrdiff_t)str))>>32));
						}
#line 14578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	LOAD_ADDR CARG2, len
						if (IS_SIGNED_32BIT(len)) {
				dasm_put(Dst, 707, ((ptrdiff_t)len));
						} else {
				dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)len)), (unsigned int)((((ptrdiff_t)len))>>32));
						}
#line 14579 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_write, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_write)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_write));
						} else {
						if (IS_SIGNED_32BIT(zend_write)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_write));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_write)), (unsigned int)((((ptrdiff_t)zend_write))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 14580 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|.else
				//|	mov aword A2, len
				//|	mov aword A1, str
				//|	EXT_CALL zend_write, r0
			//|.endif
			if (!zend_jit_check_exception(Dst)) {
				return 0;
			}
		}
	} else {
		zend_jit_addr op1_addr = OP1_ADDR();

		ZEND_ASSERT((op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_STRING);

		//|	SET_EX_OPLINE opline, r0
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 14595 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GET_ZVAL_PTR r0, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 14596 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.if X64
		//|	lea CARG1, aword [r0 + offsetof(zend_string, val)]
		//|	mov CARG2, aword [r0 + offsetof(zend_string, len)]
		//|	EXT_CALL zend_write, r0
		dasm_put(Dst, 7792, (Z_REG(op1_addr)), Z_OFFSET(op1_addr), offsetof(zend_string, val), offsetof(zend_string, len));
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_write)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_write));
				} else {
				if (IS_SIGNED_32BIT(zend_write)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_write));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_write)), (unsigned int)((((ptrdiff_t)zend_write))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 14600 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
		//|	add r0, offsetof(zend_string, val)
		//|	mov aword A1, r0
		//|	mov r0, aword [r0 + (offsetof(zend_string, len)-offsetof(zend_string, val))]
		//|	mov aword A2, r0
		//|	EXT_CALL zend_write, r0
		//|.endif
		if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			//|	ZVAL_PTR_DTOR op1_addr, op1_info, 0, 0, opline
				if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
					if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						if (0) {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 277, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
			dasm_put(Dst, 64);
						} else {
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
						}
					}
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 306, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
						if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
							if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 317);
							} else {
			dasm_put(Dst, 322);
							}
						}
				do {
					if (!((op1_info) & MAY_BE_GUARD)
					 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
						zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
						if (type == IS_STRING && !ZEND_DEBUG) {
					if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
			dasm_put(Dst, 46, (ptrdiff_t)(_efree));
					} else {
					if (IS_SIGNED_32BIT(_efree)) {
			dasm_put(Dst, 50, ((ptrdiff_t)_efree));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						} else if (type == IS_ARRAY) {
							if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
								if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
								}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
					} else {
					if (IS_SIGNED_32BIT(zend_array_destroy)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
					}
			dasm_put(Dst, 60);
					}
							} else {
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_array_free)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
					}
			dasm_put(Dst, 60);
					}
							}
							break;
						} else if (type == IS_OBJECT) {
							if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
							}
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
					} else {
					if (IS_SIGNED_32BIT(zend_objects_store_del)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
					}
			dasm_put(Dst, 60);
					}
							break;
						}
					}
					if (opline) {
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
					}
					if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
					} else {
					if (IS_SIGNED_32BIT(rc_dtor_func)) {
			dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
					}
			dasm_put(Dst, 60);
					}
				} while(0);
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
			dasm_put(Dst, 342);
						}
			dasm_put(Dst, 347);
					}
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
						if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
							zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
				ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
						}
			dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
					if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
			dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
					} else {
					if (IS_SIGNED_32BIT(gc_possible_root)) {
			dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
					}
			dasm_put(Dst, 60);
					}
					}
					if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
			dasm_put(Dst, 383);
					}
			dasm_put(Dst, 389);
				}
#line 14609 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
	}
	return 1;
}

static int zend_jit_strlen(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr)
{
	zend_jit_addr res_addr = RES_ADDR();

	if (opline->op1_type == IS_CONST) {
		zval *zv;
		size_t len;

		zv = RT_CONSTANT(opline, opline->op1);
		ZEND_ASSERT(Z_TYPE_P(zv) == IS_STRING);
		len = Z_STRLEN_P(zv);

		//|	SET_ZVAL_LVAL res_addr, len
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), len);
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 3894, (Z_REG(res_addr)), Z_OFFSET(res_addr), len);
			}
#line 14630 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO res_addr, IS_LONG
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_LONG);
#line 14631 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		ZEND_ASSERT((op1_info & (MAY_BE_UNDEF|MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_STRING);

		//|	GET_ZVAL_PTR r0, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 14635 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov r0, aword [r0 + offsetof(zend_string, len)]
		//|	SET_ZVAL_LVAL res_addr, r0
		dasm_put(Dst, 7808, (Z_REG(op1_addr)), Z_OFFSET(op1_addr), offsetof(zend_string, len));
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 2279, (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2285, (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
#line 14637 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	SET_ZVAL_TYPE_INFO res_addr, IS_LONG
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 14638 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	FREE_OP opline->op1_type, opline->op1, op1_info, 0, opline
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_LONG);
			if (opline->op1_type & (IS_VAR|IS_TMP_VAR)) {
			if ((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF|MAY_BE_GUARD)) {
				if ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					if (0) {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 277, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
		dasm_put(Dst, 64);
					} else {
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type_flags), IS_TYPE_REFCOUNTED);
					}
				}
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 306, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)));
				if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_1(op1_info)) {
					if (((op1_info) & MAY_BE_GUARD) || RC_MAY_BE_N(op1_info)) {
						if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 317);
						} else {
		dasm_put(Dst, 322);
						}
					}
			do {
				if (!((op1_info) & MAY_BE_GUARD)
				 && has_concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
					zend_uchar type = concrete_type((op1_info) & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE));
					if (type == IS_STRING && !ZEND_DEBUG) {
				if (IS_32BIT(dasm_end) && IS_32BIT(_efree)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_efree));
				} else {
				if (IS_SIGNED_32BIT(_efree)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_efree));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_efree)), (unsigned int)((((ptrdiff_t)_efree))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					} else if (type == IS_ARRAY) {
						if ((op1_info) & (MAY_BE_ARRAY_KEY_STRING|MAY_BE_ARRAY_OF_STRING|MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF)) {
							if (opline && ((op1_info) & (MAY_BE_ARRAY_OF_ARRAY|MAY_BE_ARRAY_OF_OBJECT|MAY_BE_ARRAY_OF_RESOURCE|MAY_BE_ARRAY_OF_REF))) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
							}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_array_destroy));
				} else {
				if (IS_SIGNED_32BIT(zend_array_destroy)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_array_destroy));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_array_destroy)), (unsigned int)((((ptrdiff_t)zend_array_destroy))>>32));
				}
		dasm_put(Dst, 60);
				}
						} else {
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_array_free));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_array_free)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_array_free));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_array_free)), (unsigned int)((((ptrdiff_t)zend_jit_array_free))>>32));
				}
		dasm_put(Dst, 60);
				}
						}
						break;
					} else if (type == IS_OBJECT) {
						if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
						}
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_objects_store_del));
				} else {
				if (IS_SIGNED_32BIT(zend_objects_store_del)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_objects_store_del));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_objects_store_del)), (unsigned int)((((ptrdiff_t)zend_objects_store_del))>>32));
				}
		dasm_put(Dst, 60);
				}
						break;
					}
				}
				if (opline) {
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
				}
				if (IS_32BIT(dasm_end) && IS_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 46, (ptrdiff_t)(rc_dtor_func));
				} else {
				if (IS_SIGNED_32BIT(rc_dtor_func)) {
		dasm_put(Dst, 50, ((ptrdiff_t)rc_dtor_func));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)rc_dtor_func)), (unsigned int)((((ptrdiff_t)rc_dtor_func))>>32));
				}
		dasm_put(Dst, 60);
				}
			} while(0);
					if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
		dasm_put(Dst, 342);
					}
		dasm_put(Dst, 347);
				}
				if (0 && (((op1_info) & MAY_BE_GUARD) || (RC_MAY_BE_N(op1_info) && ((op1_info) & (MAY_BE_REF|MAY_BE_ARRAY|MAY_BE_OBJECT)) != 0))) {
					if ((op1_info) & (MAY_BE_REF|MAY_BE_GUARD)) {
						zend_jit_addr ref_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
			ZEND_ASSERT(Z_MODE(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var)) == IS_MEM_ZVAL);
		dasm_put(Dst, 350, (Z_REG(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))), Z_OFFSET(ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var))+offsetof(zval, u1.v.type), IS_REFERENCE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 292, (Z_REG(ref_addr)), Z_OFFSET(ref_addr)+offsetof(zval, u1.v.type_flags), IS_TYPE_COLLECTABLE);
			ZEND_ASSERT(Z_MODE(ref_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 363, (Z_REG(ref_addr)), Z_OFFSET(ref_addr));
					}
		dasm_put(Dst, 373, (GC_INFO_MASK | (GC_NOT_COLLECTABLE << GC_FLAGS_SHIFT)));
				if (IS_32BIT(dasm_end) && IS_32BIT(gc_possible_root)) {
		dasm_put(Dst, 46, (ptrdiff_t)(gc_possible_root));
				} else {
				if (IS_SIGNED_32BIT(gc_possible_root)) {
		dasm_put(Dst, 50, ((ptrdiff_t)gc_possible_root));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)gc_possible_root)), (unsigned int)((((ptrdiff_t)gc_possible_root))>>32));
				}
		dasm_put(Dst, 60);
				}
				}
				if (0 && ((op1_info) & ((MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_INDIRECT|MAY_BE_GUARD)-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) != 0) {
		dasm_put(Dst, 383);
				}
		dasm_put(Dst, 389);
			}
			}
#line 14639 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	return 1;
}

static int zend_jit_load_this(dasm_State **Dst, uint32_t var)
{
	zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, var);

	//|	mov FCARG1a, aword EX->This.value.ptr
	//|	SET_ZVAL_PTR var_addr, FCARG1a
	dasm_put(Dst, 522, Dt1(->This.value.ptr));
		ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 14649 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	SET_ZVAL_TYPE_INFO var_addr, IS_OBJECT_EX
	dasm_put(Dst, 7501, (Z_REG(var_addr)), Z_OFFSET(var_addr));
		ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 14650 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	GC_ADDREF FCARG1a
	dasm_put(Dst, 7820, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), IS_OBJECT_EX);
#line 14651 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_fetch_this(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, zend_bool check_only)
{
	if (!op_array->scope || (op_array->fn_flags & ZEND_ACC_STATIC)) {
		if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
			if (!JIT_G(current_frame) ||
			    !TRACE_FRAME_IS_THIS_CHECKED(JIT_G(current_frame))) {

				int32_t exit_point = zend_jit_trace_get_exit_point(opline, ZEND_JIT_EXIT_TO_VM);
				const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

				//|	cmp byte EX->This.u1.v.type, IS_OBJECT
				//|	jne &exit_addr
				dasm_put(Dst, 1732, Dt1(->This.u1.v.type), IS_OBJECT, (ptrdiff_t)(exit_addr));
#line 14667 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

				if (JIT_G(current_frame)) {
					TRACE_FRAME_SET_THIS_CHECKED(JIT_G(current_frame));
				}
			}
		} else {

			//|	cmp byte EX->This.u1.v.type, IS_OBJECT
			//|	jne >1
			//|.cold_code
			dasm_put(Dst, 7832, Dt1(->This.u1.v.type), IS_OBJECT);
#line 14677 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|1:
			//|	SET_EX_OPLINE opline, r0
			dasm_put(Dst, 64);
				if (opline == last_valid_opline) {
					zend_jit_use_last_valid_opline();
				if (GCC_GLOBAL_REGS) {
			dasm_put(Dst, 8, Dt1(->opline));
				}
				} else {
					if (IS_SIGNED_32BIT(opline)) {
			dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
					} else {
			dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
					}
					if (!GCC_GLOBAL_REGS) {
						zend_jit_reset_last_valid_opline();
					}
				}
#line 14679 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp ->invalid_this
			//|.code
			dasm_put(Dst, 7843);
#line 14681 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	if (!check_only) {
		if (!zend_jit_load_this(Dst, opline->result.var)) {
			return 0;
		}
	}

	return 1;
}

static int zend_jit_hash_jmp(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, HashTable *jumptable, int default_b, const void *default_label, const zend_op *next_opline, zend_jit_trace_info *trace_info)
{
	uint32_t count;
	Bucket *p;
	const zend_op *target;
	int b;
	int32_t exit_point;
	const void *exit_addr;

	//|	test r0, r0
	dasm_put(Dst, 3620);
#line 14703 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (default_label) {
		//|	jz &default_label
		dasm_put(Dst, 1786, (ptrdiff_t)(default_label));
#line 14705 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else if (next_opline) {
		//|	jz >3
		dasm_put(Dst, 4027);
#line 14707 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	jz =>default_b
		dasm_put(Dst, 4659, default_b);
#line 14709 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	LOAD_ADDR FCARG1a, jumptable
			if (IS_SIGNED_32BIT(jumptable)) {
	dasm_put(Dst, 702, ((ptrdiff_t)jumptable));
			} else {
	dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)jumptable)), (unsigned int)((((ptrdiff_t)jumptable))>>32));
			}
#line 14711 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	sub r0, aword [FCARG1a + offsetof(HashTable, arData)]
	//|	mov FCARG1a, (sizeof(Bucket) / sizeof(void*))
	//|.if X64
	//|	cqo
	//|.else
	//|	cdq
	//|.endif
	//|	idiv FCARG1a
	//|.if X64
	dasm_put(Dst, 7849, offsetof(HashTable, arData), (sizeof(Bucket) / sizeof(void*)));
#line 14720 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!IS_32BIT(dasm_end)) {
		//|	lea FCARG1a, aword [>4]
		//|	jmp aword [FCARG1a + r0]
		dasm_put(Dst, 7865);
#line 14723 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	jmp aword [r0 + >4]
		dasm_put(Dst, 7875);
#line 14725 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|.else
	//|	jmp aword [r0 + >4]
	//|.endif
	//|.jmp_table
	dasm_put(Dst, 7881);
#line 14730 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|.align aword
	//|4:
	dasm_put(Dst, 7883);
#line 14732 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (trace_info) {
		trace_info->jmp_table_size += zend_hash_num_elements(jumptable);
	}

	count = jumptable->nNumUsed;
	p = jumptable->arData;
	do {
		if (Z_TYPE(p->val) == IS_UNDEF) {
			if (default_label) {
				//|	.aword &default_label
				dasm_put(Dst, 57, (unsigned int)((ptrdiff_t)(default_label)), (unsigned int)(((ptrdiff_t)(default_label))>>32));
#line 14742 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (next_opline) {
				//|	.aword >3
				dasm_put(Dst, 7888);
#line 14744 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	.aword =>default_b
				dasm_put(Dst, 44, default_b);
#line 14746 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			target = ZEND_OFFSET_TO_OPLINE(opline, Z_LVAL(p->val));
			if (!next_opline) {
				b = ssa->cfg.map[target - op_array->opcodes];
				//|	.aword =>b
				dasm_put(Dst, 44, b);
#line 14752 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (next_opline == target) {
				//|	.aword >3
				dasm_put(Dst, 7888);
#line 14754 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				exit_point = zend_jit_trace_get_exit_point(target, 0);
				exit_addr = zend_jit_trace_get_exit_addr(exit_point);
				//|	.aword &exit_addr
				dasm_put(Dst, 57, (unsigned int)((ptrdiff_t)(exit_addr)), (unsigned int)(((ptrdiff_t)(exit_addr))>>32));
#line 14758 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		}
		p++;
		count--;
	} while (count);
	//|.code
	dasm_put(Dst, 387);
#line 14764 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_switch(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, zend_ssa *ssa, zend_jit_trace_rec *trace, zend_jit_trace_info *trace_info)
{
	HashTable *jumptable = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2));
	const zend_op *next_opline = NULL;

	if (trace) {
		ZEND_ASSERT(trace->op == ZEND_JIT_TRACE_VM || trace->op == ZEND_JIT_TRACE_END);
		ZEND_ASSERT(trace->opline != NULL);
		next_opline = trace->opline;
	}

	if (opline->op1_type == IS_CONST) {
		zval *zv = RT_CONSTANT(opline, opline->op1);
		zval *jump_zv = NULL;
		int b;

		if (opline->opcode == ZEND_SWITCH_LONG) {
			if (Z_TYPE_P(zv) == IS_LONG) {
				jump_zv = zend_hash_index_find(jumptable, Z_LVAL_P(zv));
			}
		} else if (opline->opcode == ZEND_SWITCH_STRING) {
			if (Z_TYPE_P(zv) == IS_STRING) {
				jump_zv = zend_hash_find_ex(jumptable, Z_STR_P(zv), 1);
			}
		} else if (opline->opcode == ZEND_MATCH) {
			if (Z_TYPE_P(zv) == IS_LONG) {
				jump_zv = zend_hash_index_find(jumptable, Z_LVAL_P(zv));
			} else if (Z_TYPE_P(zv) == IS_STRING) {
				jump_zv = zend_hash_find_ex(jumptable, Z_STR_P(zv), 1);
			}
		} else {
			ZEND_UNREACHABLE();
		}
		if (next_opline) {
			const zend_op *target;

			if (jump_zv != NULL) {
				target = ZEND_OFFSET_TO_OPLINE(opline, Z_LVAL_P(jump_zv));
			} else {
				target = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value);
			}
			ZEND_ASSERT(target == next_opline);
		} else {
			if (jump_zv != NULL) {
				b = ssa->cfg.map[ZEND_OFFSET_TO_OPLINE(opline, Z_LVAL_P(jump_zv)) - op_array->opcodes];
			} else {
				b = ssa->cfg.map[ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value) - op_array->opcodes];
			}
			//|	jmp =>b
			dasm_put(Dst, 1645, b);
#line 14817 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		zend_ssa_op *ssa_op = &ssa->ops[opline - op_array->opcodes];
		uint32_t op1_info = OP1_INFO();
		zend_jit_addr op1_addr = OP1_ADDR();
		const zend_op *default_opline = ZEND_OFFSET_TO_OPLINE(opline, opline->extended_value);
		const zend_op *target;
		int default_b = next_opline ? -1 : ssa->cfg.map[default_opline - op_array->opcodes];
		int b;
		int32_t exit_point;
		const void *fallback_label = NULL;
		const void *default_label = NULL;
		const void *exit_addr;

		if (next_opline) {
			if (next_opline != opline + 1) {
				exit_point = zend_jit_trace_get_exit_point(opline + 1, 0);
				fallback_label = zend_jit_trace_get_exit_addr(exit_point);
			}
			if (next_opline != default_opline) {
				exit_point = zend_jit_trace_get_exit_point(default_opline, 0);
				default_label = zend_jit_trace_get_exit_addr(exit_point);
			}
		}

		if (opline->opcode == ZEND_SWITCH_LONG) {
			if (op1_info & MAY_BE_LONG) {
				if (op1_info & MAY_BE_REF) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 14846 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	GET_ZVAL_LVAL ZREG_FCARG2a, op1_addr
					dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
					dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op1_addr)));
									}
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else if (Z_MODE(op1_addr) == IS_REG) {
							if (ZREG_FCARG2a != Z_REG(op1_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG2a));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 14847 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.cold_code
					dasm_put(Dst, 290);
#line 14848 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					//|	// ZVAL_DEREF(op)
					dasm_put(Dst, 64);
#line 14850 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (fallback_label) {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_REFERENCE, &fallback_label
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE, (ptrdiff_t)(fallback_label));
#line 14852 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_REFERENCE, >3
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 14854 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	GET_ZVAL_PTR FCARG2a, op1_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 7891, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 14856 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (fallback_label) {
						//|	IF_NOT_Z_TYPE FCARG2a + offsetof(zend_reference, val), IS_LONG, &fallback_label
						dasm_put(Dst, 1733, offsetof(zend_reference, val)+offsetof(zval, u1.v.type), IS_LONG, (ptrdiff_t)(fallback_label));
#line 14858 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_Z_TYPE FCARG2a + offsetof(zend_reference, val), IS_LONG, >3
						dasm_put(Dst, 7899, offsetof(zend_reference, val)+offsetof(zval, u1.v.type), IS_LONG);
#line 14860 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	mov FCARG2a, aword [FCARG2a + offsetof(zend_reference, val.value.lval)]
					//|	jmp >2
					//|.code
					dasm_put(Dst, 7908, offsetof(zend_reference, val.value.lval));
#line 14864 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|2:
					dasm_put(Dst, 2037);
#line 14865 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
						if (fallback_label) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, &fallback_label
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG, (ptrdiff_t)(fallback_label));
#line 14869 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >3
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 14871 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					//|	GET_ZVAL_LVAL ZREG_FCARG2a, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
					dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op1_addr)));
									}
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else if (Z_MODE(op1_addr) == IS_REG) {
							if (ZREG_FCARG2a != Z_REG(op1_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG2a));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 14874 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				if (HT_IS_PACKED(jumptable)) {
					uint32_t count = jumptable->nNumUsed;
					Bucket *p = jumptable->arData;

					//|	cmp FCARG2a, jumptable->nNumUsed
					dasm_put(Dst, 7918, jumptable->nNumUsed);
#line 14880 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (default_label) {
						//|	jae &default_label
						dasm_put(Dst, 4781, (ptrdiff_t)(default_label));
#line 14882 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (next_opline) {
						//|	jae >3
						dasm_put(Dst, 7924);
#line 14884 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	jae =>default_b
						dasm_put(Dst, 4785, default_b);
#line 14886 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|.if X64
						if (!IS_32BIT(dasm_end)) {
							//|	lea r0, aword [>4]
							//|	jmp aword [r0 + FCARG2a * 8]
							dasm_put(Dst, 7929);
#line 14891 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	jmp aword [FCARG2a * 8 + >4]
							dasm_put(Dst, 7940);
#line 14893 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					//|.else
					//|	jmp aword [FCARG2a * 4 + >4]
					//|.endif
					//|.jmp_table
					dasm_put(Dst, 7881);
#line 14898 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.align aword
					//|4:
					dasm_put(Dst, 7883);
#line 14900 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (trace_info) {
						trace_info->jmp_table_size += count;
					}
					p = jumptable->arData;
					do {
						if (Z_TYPE(p->val) == IS_UNDEF) {
							if (default_label) {
								//|	.aword &default_label
								dasm_put(Dst, 57, (unsigned int)((ptrdiff_t)(default_label)), (unsigned int)(((ptrdiff_t)(default_label))>>32));
#line 14908 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else if (next_opline) {
								//|	.aword >3
								dasm_put(Dst, 7888);
#line 14910 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else {
								//|	.aword =>default_b
								dasm_put(Dst, 44, default_b);
#line 14912 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
						} else {
							target = ZEND_OFFSET_TO_OPLINE(opline, Z_LVAL(p->val));
							if (!next_opline) {
								b = ssa->cfg.map[target - op_array->opcodes];
								//|	.aword =>b
								dasm_put(Dst, 44, b);
#line 14918 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else if (next_opline == target) {
								//|	.aword >3
								dasm_put(Dst, 7888);
#line 14920 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							} else {
								exit_point = zend_jit_trace_get_exit_point(target, 0);
								exit_addr = zend_jit_trace_get_exit_addr(exit_point);
								//|	.aword &exit_addr
								dasm_put(Dst, 57, (unsigned int)((ptrdiff_t)(exit_addr)), (unsigned int)(((ptrdiff_t)(exit_addr))>>32));
#line 14924 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
							}
						}
						p++;
						count--;
					} while (count);
					//|.code
					dasm_put(Dst, 387);
#line 14930 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|3:
					dasm_put(Dst, 347);
#line 14931 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					//|	LOAD_ADDR FCARG1a, jumptable
							if (IS_SIGNED_32BIT(jumptable)) {
					dasm_put(Dst, 702, ((ptrdiff_t)jumptable));
							} else {
					dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)jumptable)), (unsigned int)((((ptrdiff_t)jumptable))>>32));
							}
#line 14933 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_hash_index_find, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_index_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_index_find));
							} else {
							if (IS_SIGNED_32BIT(zend_hash_index_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_index_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_index_find)), (unsigned int)((((ptrdiff_t)zend_hash_index_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 14934 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_opline, trace_info)) {
						return 0;
					}
					//|3:
					dasm_put(Dst, 347);
#line 14938 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
		} else if (opline->opcode == ZEND_SWITCH_STRING) {
			if (op1_info & MAY_BE_STRING) {
				if (op1_info & MAY_BE_REF) {
					//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, >1
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 14944 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	GET_ZVAL_PTR FCARG2a, op1_addr
					dasm_put(Dst, 350, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING);
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 14945 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|.cold_code
					dasm_put(Dst, 7948, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 14946 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|1:
					//|	// ZVAL_DEREF(op)
					dasm_put(Dst, 64);
#line 14948 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (fallback_label) {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_REFERENCE, &fallback_label
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE, (ptrdiff_t)(fallback_label));
#line 14950 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_REFERENCE, >3
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_REFERENCE);
#line 14952 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	GET_ZVAL_PTR FCARG2a, op1_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 7891, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 14954 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (fallback_label) {
						//|	IF_NOT_Z_TYPE FCARG2a + offsetof(zend_reference, val), IS_STRING, &fallback_label
						dasm_put(Dst, 1733, offsetof(zend_reference, val)+offsetof(zval, u1.v.type), IS_STRING, (ptrdiff_t)(fallback_label));
#line 14956 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_Z_TYPE FCARG2a + offsetof(zend_reference, val), IS_STRING, >3
						dasm_put(Dst, 7899, offsetof(zend_reference, val)+offsetof(zval, u1.v.type), IS_STRING);
#line 14958 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
					//|	mov FCARG2a, aword [FCARG2a + offsetof(zend_reference, val.value.ptr)]
					//|	jmp >2
					//|.code
					dasm_put(Dst, 7908, offsetof(zend_reference, val.value.ptr));
#line 14962 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|2:
					dasm_put(Dst, 2037);
#line 14963 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				} else {
					if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_STRING)) {
						if (fallback_label) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, &fallback_label
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING, (ptrdiff_t)(fallback_label));
#line 14967 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, >3
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 14969 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					//|	GET_ZVAL_PTR FCARG2a, op1_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
					dasm_put(Dst, 7891, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
#line 14972 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|	LOAD_ADDR FCARG1a, jumptable
						if (IS_SIGNED_32BIT(jumptable)) {
				dasm_put(Dst, 702, ((ptrdiff_t)jumptable));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)jumptable)), (unsigned int)((((ptrdiff_t)jumptable))>>32));
						}
#line 14974 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	EXT_CALL zend_hash_find, r0
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_find)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_find));
						} else {
						if (IS_SIGNED_32BIT(zend_hash_find)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_find));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_find)), (unsigned int)((((ptrdiff_t)zend_hash_find))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 14975 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_opline, trace_info)) {
					return 0;
				}
				//|3:
				dasm_put(Dst, 347);
#line 14979 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (opline->opcode == ZEND_MATCH) {
			if (op1_info & (MAY_BE_LONG|MAY_BE_STRING)) {
				if (op1_info & MAY_BE_REF) {
					//|	LOAD_ZVAL_ADDR FCARG2a, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
					dasm_put(Dst, 707, ((ptrdiff_t)Z_ZV(op1_addr)));
							} else {
					dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
						if (Z_OFFSET(op1_addr)) {
					dasm_put(Dst, 2349, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else {
					dasm_put(Dst, 2357, (Z_REG(op1_addr)));
						}
						} else {
							ZEND_UNREACHABLE();
						}
#line 14984 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	ZVAL_DEREF FCARG2a, op1_info
						if (op1_info & MAY_BE_REF) {
					dasm_put(Dst, 5255, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
						}
#line 14985 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
				}
				//|	LOAD_ADDR FCARG1a, jumptable
						if (IS_SIGNED_32BIT(jumptable)) {
				dasm_put(Dst, 702, ((ptrdiff_t)jumptable));
						} else {
				dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)jumptable)), (unsigned int)((((ptrdiff_t)jumptable))>>32));
						}
#line 14988 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op1_info & MAY_BE_LONG) {
					if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-MAY_BE_LONG)) {
						if (op1_info & MAY_BE_STRING) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >5
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 5146, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 14992 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else if (op1_info & MAY_BE_UNDEF) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >6
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 14994 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else if (default_label) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, &default_label
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG, (ptrdiff_t)(default_label));
#line 14996 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else if (next_opline) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, >3
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG);
#line 14998 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_LONG, =>default_b
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 7957, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_LONG, default_b);
#line 15000 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					//|	GET_ZVAL_LVAL ZREG_FCARG2a, op1_addr
						if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
							if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
					dasm_put(Dst, 1741, (ZREG_FCARG2a), (ZREG_FCARG2a));
							} else {
									if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
					dasm_put(Dst, 1749, (ZREG_FCARG2a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
									} else {
					dasm_put(Dst, 1756, (ZREG_FCARG2a), Z_LVAL_P(Z_ZV(op1_addr)));
									}
							}
						} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
					dasm_put(Dst, 1763, (ZREG_FCARG2a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
						} else if (Z_MODE(op1_addr) == IS_REG) {
							if (ZREG_FCARG2a != Z_REG(op1_addr)) {
					dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG2a));
							}
						} else {
							ZEND_UNREACHABLE();
						}
#line 15003 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_hash_index_find, r0
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_index_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_index_find));
							} else {
							if (IS_SIGNED_32BIT(zend_hash_index_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_index_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_index_find)), (unsigned int)((((ptrdiff_t)zend_hash_index_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 15004 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & MAY_BE_STRING) {
						//|	jmp >2
						dasm_put(Dst, 3727);
#line 15006 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				if (op1_info & MAY_BE_STRING) {
					//|5:
					dasm_put(Dst, 495);
#line 15010 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					if (op1_info & ((MAY_BE_ANY|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_STRING))) {
						if (op1_info & MAY_BE_UNDEF) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, >6
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 15013 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else if (default_label) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, &default_label
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING, (ptrdiff_t)(default_label));
#line 15015 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else if (next_opline) {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, >3
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING);
#line 15017 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						} else {
							//|	IF_NOT_ZVAL_TYPE op1_addr, IS_STRING, =>default_b
								ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
							dasm_put(Dst, 7957, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_STRING, default_b);
#line 15019 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
						}
					}
					//|	GET_ZVAL_PTR FCARG2a, op1_addr
						ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 15022 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					//|	EXT_CALL zend_hash_find, r0
					dasm_put(Dst, 7891, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
							if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_find)) {
					dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_find));
							} else {
							if (IS_SIGNED_32BIT(zend_hash_find)) {
					dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_find));
							} else {
					dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_find)), (unsigned int)((((ptrdiff_t)zend_hash_find))>>32));
							}
					dasm_put(Dst, 60);
							}
#line 15023 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
				//|2:
				dasm_put(Dst, 2037);
#line 15025 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!zend_jit_hash_jmp(Dst, opline, op_array, ssa, jumptable, default_b, default_label, next_opline, trace_info)) {
					return 0;
				}
			}
			if (op1_info & MAY_BE_UNDEF) {
				//|6:
				dasm_put(Dst, 3385);
#line 15031 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (op1_info & (MAY_BE_ANY-(MAY_BE_LONG|MAY_BE_STRING))) {
					if (default_label) {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, &default_label
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 5862, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF, (ptrdiff_t)(default_label));
#line 15034 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else if (next_opline) {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >3
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 3334, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF);
#line 15036 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					} else {
						//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, =>default_b
							ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
						dasm_put(Dst, 7957, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF, default_b);
#line 15038 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
					}
				}
				//|	// zend_error(E_WARNING, "Undefined variable $%s", ZSTR_VAL(CV_DEF_OF(EX_VAR_TO_NUM(opline->op1.var))));
				//|	SET_EX_OPLINE opline, r0
					if (opline == last_valid_opline) {
						zend_jit_use_last_valid_opline();
					if (GCC_GLOBAL_REGS) {
				dasm_put(Dst, 8, Dt1(->opline));
					}
					} else {
						if (IS_SIGNED_32BIT(opline)) {
				dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
						} else {
				dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
						}
						if (!GCC_GLOBAL_REGS) {
							zend_jit_reset_last_valid_opline();
						}
					}
#line 15042 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	mov FCARG1d, opline->op1.var
				//|	EXT_CALL zend_jit_undefined_op_helper, r0
				dasm_put(Dst, 2311, opline->op1.var);
						if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
						} else {
						if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
				dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_undefined_op_helper));
						} else {
				dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
						}
				dasm_put(Dst, 60);
						}
#line 15044 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				if (!zend_jit_check_exception_undef_result(Dst, opline)) {
					return 0;
				}
			}
			if (default_label) {
				//|	jmp &default_label
				dasm_put(Dst, 151, (ptrdiff_t)(default_label));
#line 15050 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (next_opline) {
				//|	jmp >3
				dasm_put(Dst, 3991);
#line 15052 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jmp =>default_b
				dasm_put(Dst, 1645, default_b);
#line 15054 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|3:
			dasm_put(Dst, 347);
#line 15056 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
	}
	return 1;
}

static zend_bool zend_jit_verify_return_type(dasm_State **Dst, const zend_op *opline, const zend_op_array *op_array, uint32_t op1_info)
{
	zend_arg_info *arg_info = &op_array->arg_info[-1];
	ZEND_ASSERT(ZEND_TYPE_IS_SET(arg_info->type));
	zend_jit_addr op1_addr = OP1_ADDR();
	zend_bool needs_slow_check = 1;
	zend_bool slow_check_in_cold = 1;
	uint32_t type_mask = ZEND_TYPE_PURE_MASK(arg_info->type) & MAY_BE_ANY;

	if (type_mask == 0) {
		slow_check_in_cold = 0;
	} else {
		if (((op1_info & MAY_BE_ANY) & type_mask) == 0) {
			slow_check_in_cold = 0;
		} else if (((op1_info & MAY_BE_ANY) | type_mask) == type_mask) {
			needs_slow_check = 0;
		} else if (is_power_of_two(type_mask)) {
			uint32_t type_code = concrete_type(type_mask);
			//|	IF_NOT_ZVAL_TYPE op1_addr, type_code, >6
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 3347, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), type_code);
#line 15082 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	mov edx, 1
			//|	GET_ZVAL_TYPE cl, op1_addr
			dasm_put(Dst, 7969);
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 15085 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	shl edx, cl
			//|	test edx, type_mask
			//|	je >6
			dasm_put(Dst, 7975, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.v.type), type_mask);
#line 15088 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	if (needs_slow_check) {
		if (slow_check_in_cold) {
			//|.cold_code
			dasm_put(Dst, 290);
#line 15093 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|6:
			dasm_put(Dst, 3385);
#line 15094 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	SET_EX_OPLINE opline, r1
			if (opline == last_valid_opline) {
				zend_jit_use_last_valid_opline();
			if (GCC_GLOBAL_REGS) {
		dasm_put(Dst, 8, Dt1(->opline));
			}
			} else {
				if (IS_SIGNED_32BIT(opline)) {
		dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
				} else {
		dasm_put(Dst, 7993, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
				}
				if (!GCC_GLOBAL_REGS) {
					zend_jit_reset_last_valid_opline();
				}
			}
#line 15096 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (op1_info & MAY_BE_UNDEF) {
			//|	IF_NOT_ZVAL_TYPE op1_addr, IS_UNDEF, >7
				ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 15098 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov FCARG1a, opline->op1.var
			//|	EXT_CALL zend_jit_undefined_op_helper, FCARG2a
			dasm_put(Dst, 8002, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_UNDEF, opline->op1.var);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_undefined_op_helper));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_undefined_op_helper)) {
			dasm_put(Dst, 707, ((ptrdiff_t)zend_jit_undefined_op_helper));
					} else {
			dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)zend_jit_undefined_op_helper)), (unsigned int)((((ptrdiff_t)zend_jit_undefined_op_helper))>>32));
					}
			dasm_put(Dst, 8019);
					}
#line 15100 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	test r0, r0
			//|	jz ->exception_handler
			//|	LOAD_ADDR_ZTS FCARG1a, executor_globals, uninitialized_zval
			dasm_put(Dst, 5956);
					if (IS_SIGNED_32BIT(&executor_globals.uninitialized_zval)) {
			dasm_put(Dst, 702, ((ptrdiff_t)&executor_globals.uninitialized_zval));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)&executor_globals.uninitialized_zval)), (unsigned int)((((ptrdiff_t)&executor_globals.uninitialized_zval))>>32));
					}
#line 15103 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	jmp >8
			dasm_put(Dst, 3768);
#line 15104 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|7:
		//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
		dasm_put(Dst, 4449);
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (Z_OFFSET(op1_addr)) {
		dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2322, (Z_REG(op1_addr)));
			}
			} else {
				ZEND_UNREACHABLE();
			}
#line 15107 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|8:
		//|	mov FCARG2a, EX->func
		//|.if X64
			//|	LOAD_ADDR CARG3, (ptrdiff_t)arg_info
			dasm_put(Dst, 8023, Dt1(->func));
					if (IS_SIGNED_32BIT((ptrdiff_t)arg_info)) {
			dasm_put(Dst, 3388, ((ptrdiff_t)(ptrdiff_t)arg_info));
					} else {
			dasm_put(Dst, 3393, (unsigned int)(((ptrdiff_t)(ptrdiff_t)arg_info)), (unsigned int)((((ptrdiff_t)(ptrdiff_t)arg_info))>>32));
					}
#line 15111 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	mov r0, EX->run_time_cache
			//|	lea CARG4, aword [r0+opline->op2.num]
			//|	EXT_CALL zend_jit_verify_return_slow, r0
			dasm_put(Dst, 8030, Dt1(->run_time_cache), opline->op2.num);
					if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_verify_return_slow)) {
			dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_verify_return_slow));
					} else {
					if (IS_SIGNED_32BIT(zend_jit_verify_return_slow)) {
			dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_verify_return_slow));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_verify_return_slow)), (unsigned int)((((ptrdiff_t)zend_jit_verify_return_slow))>>32));
					}
			dasm_put(Dst, 60);
					}
#line 15114 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|.else
			//|	sub r4, 8
			//|	mov r0, EX->run_time_cache
			//|	add r0, opline->op2.num
			//|	push r0
			//|	push (ptrdiff_t)arg_info
			//|	EXT_CALL zend_jit_verify_return_slow, r0
			//|	add r4, 8
		//|.endif
		if (!zend_jit_check_exception(Dst)) {
			return 0;
		}
		if (slow_check_in_cold) {
			//|	jmp >9
			//|.code
			dasm_put(Dst, 4173);
#line 15129 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	//|9:
	dasm_put(Dst, 4204);
#line 15132 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	return 1;
}

static int zend_jit_isset_isempty_cv(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr,  zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

	// TODO: support for empty() ???
	ZEND_ASSERT(!(opline->extended_value & ZEND_ISEMPTY));

	if (op1_info & MAY_BE_REF) {
		if (Z_MODE(op1_addr) != IS_MEM_ZVAL || Z_REG(op1_addr) != ZREG_FCARG1a || Z_OFFSET(op1_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, op1_addr
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(op1_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
					}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(op1_addr)) {
			dasm_put(Dst, 2314, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(op1_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 15145 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
		}
		//|	ZVAL_DEREF FCARG1a, op1_info
			if (op1_info & MAY_BE_REF) {
		dasm_put(Dst, 5237, offsetof(zval, u1.v.type), IS_REFERENCE, offsetof(zend_reference, val));
			}
#line 15148 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|1:
		dasm_put(Dst, 64);
#line 15149 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	if (!(op1_info & (MAY_BE_UNDEF|MAY_BE_NULL))) {
		if (exit_addr) {
			ZEND_ASSERT(smart_branch_opcode == ZEND_JMPZ);
		} else if (smart_branch_opcode) {
			if (smart_branch_opcode == ZEND_JMPNZ) {
				//|	jmp =>target_label
				dasm_put(Dst, 1645, target_label);
#line 15157 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (smart_branch_opcode == ZEND_JMPZNZ) {
				//|	jmp =>target_label2
				dasm_put(Dst, 1645, target_label2);
#line 15159 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_TRUE
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_TRUE);
#line 15162 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (!(op1_info & (MAY_BE_ANY - MAY_BE_NULL))) {
		if (exit_addr) {
			ZEND_ASSERT(smart_branch_opcode == ZEND_JMPNZ);
		} else if (smart_branch_opcode) {
			if (smart_branch_opcode != ZEND_JMPNZ) {
				//|	jmp =>target_label
				dasm_put(Dst, 1645, target_label);
#line 15169 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, IS_FALSE
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_FALSE);
#line 15172 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		//|	cmp byte [Ra(Z_REG(op1_addr))+Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type)], IS_NULL
		dasm_put(Dst, 5297, (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval, u1.v.type), IS_NULL);
#line 15176 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (exit_addr) {
			if (smart_branch_opcode == ZEND_JMPNZ) {
				//|	jg &exit_addr
				dasm_put(Dst, 3864, (ptrdiff_t)(exit_addr));
#line 15179 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				//|	jle &exit_addr
				dasm_put(Dst, 3860, (ptrdiff_t)(exit_addr));
#line 15181 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
		} else if (smart_branch_opcode) {
			if (smart_branch_opcode == ZEND_JMPZ) {
				//|	jle =>target_label
				dasm_put(Dst, 4663, target_label);
#line 15185 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (smart_branch_opcode == ZEND_JMPNZ) {
				//|	jg =>target_label
				dasm_put(Dst, 4683, target_label);
#line 15187 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else if (smart_branch_opcode == ZEND_JMPZNZ) {
				//|	jle =>target_label
				//|	jmp =>target_label2
				dasm_put(Dst, 8039, target_label, target_label2);
#line 15190 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			} else {
				ZEND_UNREACHABLE();
			}
		} else {
			//|	setg al
			//|	movzx eax, al
			//|	lea eax, [eax + IS_FALSE]
			//|	SET_ZVAL_TYPE_INFO res_addr, eax
			dasm_put(Dst, 8046, IS_FALSE);
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 15198 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_fe_reset(dasm_State **Dst, const zend_op *opline, uint32_t op1_info)
{
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

	if (opline->op1_type == IS_CONST) {
		zval *zv = RT_CONSTANT(opline, opline->op1);

		//|	ZVAL_COPY_CONST res_addr, MAY_BE_ANY, MAY_BE_ANY, zv, ZREG_R0
			if (Z_TYPE_P(zv) > IS_TRUE) {
				if (Z_TYPE_P(zv) == IS_DOUBLE) {
					zend_reg dst_reg = (Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0;
					if (Z_DVAL_P(zv) == 0.0 && !is_signed(Z_DVAL_P(zv))) {
						if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						} else {
		dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
						}
					} else if (!IS_SIGNED_32BIT(zv)) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)zv)), (unsigned int)((((uintptr_t)zv))>>32));
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
			} else {
		dasm_put(Dst, 2000, (dst_reg-ZREG_XMM0), (ZREG_R0), 0);
			}
					} else {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
			} else {
		dasm_put(Dst, 1960, (dst_reg-ZREG_XMM0), ((uint32_t)(uintptr_t)zv));
			}
					}
			if (Z_MODE(res_addr) == IS_REG) {
				if (dst_reg != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
				} else if (Z_TYPE_P(zv) == IS_LONG && MAY_BE_ANY == MAY_BE_DOUBLE) {
					zend_reg dst_reg = (Z_MODE(res_addr) == IS_REG) ? Z_REG(res_addr) : ZREG_XMM0;
				if (Z_LVAL_P(zv) == 0) {
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2709, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					} else {
		dasm_put(Dst, 2721, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0));
					}
				} else {
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(Z_LVAL_P(zv)), (unsigned int)((Z_LVAL_P(zv))>>32));
					} else {
		dasm_put(Dst, 1756, (ZREG_R0), Z_LVAL_P(zv));
					}
					if (CAN_USE_AVX()) {
		dasm_put(Dst, 2730, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
					} else {
		dasm_put(Dst, 2754, (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (dst_reg-ZREG_XMM0), (ZREG_R0));
					}
				}
			if (Z_MODE(res_addr) == IS_REG) {
				if (dst_reg != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (dst_reg-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (dst_reg-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
				} else if (Z_LVAL_P(zv) == 0 && Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
							if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
							} else {
		dasm_put(Dst, 1749, (ZREG_R0), (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R0), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
							}
						} else {
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(zv));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 3894, (Z_REG(res_addr)), Z_OFFSET(res_addr), Z_LVAL_P(zv));
			}
						}
				}
			}
			if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
				if (MAY_BE_ANY == MAY_BE_DOUBLE) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != MAY_BE_DOUBLE) {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_DOUBLE);
					}
				} else if (((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (1<<Z_TYPE_P(zv))) || (MAY_BE_ANY & (MAY_BE_STRING|MAY_BE_ARRAY)) != 0) {
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), Z_TYPE_INFO_P(zv));
				}
			}
#line 15212 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (Z_REFCOUNTED_P(zv)) {
			//|	ADDREF_CONST zv, r0
					if (!IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			dasm_put(Dst, 6384, (unsigned int)(((uintptr_t)Z_LVAL_P(zv))), (unsigned int)((((uintptr_t)Z_LVAL_P(zv)))>>32));
					} else {
			dasm_put(Dst, 3918, Z_LVAL_P(zv));
					}
#line 15214 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		zend_jit_addr op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);

		//|	// ZVAL_COPY(res, value);
		//|	ZVAL_COPY_VALUE res_addr, -1, op1_addr, op1_info, ZREG_R0, ZREG_FCARG1a
			if (op1_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(op1_addr) == IS_REG) {
						if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(op1_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
						}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (Z_REG(res_addr) != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (Z_REG(res_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(op1_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(op1_addr)))) {
		dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(op1_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(op1_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(op1_addr)));
						}
				}
			} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else if (Z_MODE(op1_addr) == IS_REG) {
				if (ZREG_FCARG1a != Z_REG(op1_addr)) {
		dasm_put(Dst, 1773, (Z_REG(op1_addr)), (ZREG_FCARG1a));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_FCARG1a), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_FCARG1a), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
					}
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(op1_addr) == IS_REG) {
			if (Z_MODE(res_addr) == IS_REG) {
				if (Z_REG(op1_addr) != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(op1_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(op1_addr) != IS_REG || Z_REG(res_addr) != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(op1_addr) != IS_REG || ZREG_XMM0 != Z_REG(op1_addr)) {
				if (Z_MODE(op1_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(op1_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(op1_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(op1_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(op1_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(op1_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(op1_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			}
				} else if (Z_MODE(op1_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(op1_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(res_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					}
				} else if (!(op1_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_FCARG1a), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_FCARG1a), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
			}
			if ((op1_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(op1_info & MAY_BE_GUARD) &&
				has_concrete_type(op1_info & MAY_BE_ANY)) {
				if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(op1_info);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(op1_addr)), Z_OFFSET(op1_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
			}
#line 15220 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (opline->op1_type == IS_CV) {
			//|	TRY_ADDREF op1_info, ah, FCARG1a
				if (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
					if (op1_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			dasm_put(Dst, 2381);
					}
			dasm_put(Dst, 8056);
				}
#line 15222 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	//|	// Z_FE_POS_P(res) = 0;
	//|	mov dword [FP + opline->result.var + offsetof(zval, u2.fe_pos)], 0
	dasm_put(Dst, 8062, opline->result.var + offsetof(zval, u2.fe_pos));
#line 15226 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_fe_fetch(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, uint32_t op2_info, unsigned int target_label, zend_uchar exit_opcode, const void *exit_addr)
{
	zend_jit_addr op1_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op1.var);

	//|	// array = EX_VAR(opline->op1.var);
	//|	// fe_ht = Z_ARRVAL_P(array);
	//|	GET_ZVAL_PTR FCARG2a, op1_addr
		ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 15237 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// pos = Z_FE_POS_P(array);
	//|	mov FCARG1d, dword [FP + opline->op1.var + offsetof(zval, u2.fe_pos)]
	//|	// p = fe_ht->arData + pos;
	//|.if X64
		dasm_put(Dst, 8071, (Z_REG(op1_addr)), Z_OFFSET(op1_addr), opline->op1.var + offsetof(zval, u2.fe_pos));
			ZEND_ASSERT(sizeof(Bucket) == 32);
#line 15242 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	mov eax, FCARG1d
		//|	shl r0, 5
	//|.else
		//|	imul r0, FCARG1a, sizeof(Bucket)
	//|.endif
	//|	add r0, aword [FCARG2a + offsetof(zend_array, arData)]
	//|1:
	//|	// if (UNEXPECTED(pos >= fe_ht->nNumUsed)) {
	//|	cmp dword [FCARG2a + offsetof(zend_array, nNumUsed)], FCARG1d
	//|	// ZEND_VM_SET_RELATIVE_OPCODE(opline, opline->extended_value);
	//|   // ZEND_VM_CONTINUE();
	dasm_put(Dst, 8083, offsetof(zend_array, arData), offsetof(zend_array, nNumUsed));
#line 15253 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (exit_addr) {
		if (exit_opcode == ZEND_JMP) {
			//|	jbe &exit_addr
			dasm_put(Dst, 3635, (ptrdiff_t)(exit_addr));
#line 15256 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jbe >3
			dasm_put(Dst, 8100);
#line 15258 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|	jbe =>target_label
		dasm_put(Dst, 4723, target_label);
#line 15261 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	// pos++;
	//|	add FCARG1d, 1
	//|	// value_type = Z_TYPE_INFO_P(value);
	//|	// if (EXPECTED(value_type != IS_UNDEF)) {
	//|	IF_Z_TYPE r0, IS_UNDEF, >2
	dasm_put(Dst, 8105, offsetof(zval, u1.v.type), IS_UNDEF);
#line 15267 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!exit_addr || exit_opcode == ZEND_JMP) {
		//|	IF_NOT_Z_TYPE r0, IS_INDIRECT, >3
		dasm_put(Dst, 8117, offsetof(zval, u1.v.type), IS_INDIRECT);
#line 15269 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	IF_NOT_Z_TYPE r0, IS_INDIRECT, &exit_addr
		dasm_put(Dst, 8126, offsetof(zval, u1.v.type), IS_INDIRECT, (ptrdiff_t)(exit_addr));
#line 15271 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	// value = Z_INDIRECT_P(value);
	//|	GET_Z_PTR FCARG2a, r0
	//|	// value_type = Z_TYPE_INFO_P(value);
	//|	// if (EXPECTED(value_type != IS_UNDEF)) {
	dasm_put(Dst, 8134);
#line 15276 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (!exit_addr || exit_opcode == ZEND_JMP) {
		//|	IF_NOT_Z_TYPE FCARG2a, IS_UNDEF, >4
		dasm_put(Dst, 8138, offsetof(zval, u1.v.type), IS_UNDEF);
#line 15278 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	IF_NOT_Z_TYPE r0, IS_UNDEF, &exit_addr
		dasm_put(Dst, 8126, offsetof(zval, u1.v.type), IS_UNDEF, (ptrdiff_t)(exit_addr));
#line 15280 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	GET_ZVAL_PTR FCARG2a, op1_addr // reload
		ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 15282 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|2:
	//|	// p++;
	//|	add r0, sizeof(Bucket)
	//|	jmp <1
	//|3:
	dasm_put(Dst, 8147, (Z_REG(op1_addr)), Z_OFFSET(op1_addr), sizeof(Bucket));
#line 15287 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if (!exit_addr || exit_opcode == ZEND_JMP) {
		zend_jit_addr val_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG2a, 0);
		zend_jit_addr var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->op2.var);
		uint32_t val_info;

		//|	mov	FCARG2a, r0
		//|4:
		//|	// Z_FE_POS_P(array) = pos + 1;
		//|	mov dword [FP + opline->op1.var + offsetof(zval, u2.fe_pos)], FCARG1d
		dasm_put(Dst, 8167, opline->op1.var + offsetof(zval, u2.fe_pos));
#line 15297 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		if (RETURN_VALUE_USED(opline)) {
			zend_jit_addr res_addr = RES_ADDR();

			if ((op1_info & MAY_BE_ARRAY_KEY_LONG)
			 && (op1_info & MAY_BE_ARRAY_KEY_STRING)) {
				//|	// if (!p->key) {
				//|	cmp aword [r0 + offsetof(Bucket, key)], 0
				//|	jz >2
				dasm_put(Dst, 8177, offsetof(Bucket, key));
#line 15306 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			if (op1_info & MAY_BE_ARRAY_KEY_STRING) {
				//|	// ZVAL_STR_COPY(EX_VAR(opline->result.var), p->key);
				//|	mov FCARG1a, aword [r0 + offsetof(Bucket, key)]
				//|	SET_ZVAL_PTR res_addr, FCARG1a
				dasm_put(Dst, 6119, offsetof(Bucket, key));
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 15311 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	test dword [FCARG1a + offsetof(zend_refcounted, gc.u.type_info)], IS_STR_INTERNED
				//|	jz >1
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_STRING
				dasm_put(Dst, 8187, (Z_REG(res_addr)), Z_OFFSET(res_addr), offsetof(zend_refcounted, gc.u.type_info), IS_STR_INTERNED);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 15314 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	jmp >3
				//|1:
				//|	GC_ADDREF FCARG1a
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_STRING_EX
				dasm_put(Dst, 8204, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_STRING);
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_STRING_EX);
#line 15318 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

				if (op1_info & MAY_BE_ARRAY_KEY_LONG) {
				    //|	jmp >3
					//|2:
					dasm_put(Dst, 4044);
#line 15322 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				}
			}
			if (op1_info & MAY_BE_ARRAY_KEY_LONG) {
				//|	// ZVAL_LONG(EX_VAR(opline->result.var), p->h);
				//|	mov FCARG1a, aword [r0 + offsetof(Bucket, h)]
				//|	SET_ZVAL_LVAL res_addr, FCARG1a
				dasm_put(Dst, 6119, offsetof(Bucket, h));
					if (Z_MODE(res_addr) == IS_REG) {
				dasm_put(Dst, 8222, (Z_REG(res_addr)));
					} else {
						ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 7501, (Z_REG(res_addr)), Z_OFFSET(res_addr));
					}
#line 15328 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
				//|	SET_ZVAL_TYPE_INFO res_addr, IS_LONG
					ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
				dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), IS_LONG);
#line 15329 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			}
			//|3:
			dasm_put(Dst, 347);
#line 15331 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}

		val_info = ((op1_info & MAY_BE_ARRAY_OF_ANY) >> MAY_BE_ARRAY_SHIFT);
		if (val_info & MAY_BE_ARRAY) {
			val_info |= MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF;
		}
		if (op1_info & MAY_BE_ARRAY_OF_REF) {
			val_info |= MAY_BE_REF | MAY_BE_RC1 | MAY_BE_RCN | MAY_BE_ANY |
				MAY_BE_ARRAY_KEY_ANY | MAY_BE_ARRAY_OF_ANY | MAY_BE_ARRAY_OF_REF;
		} else if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
			val_info |= MAY_BE_RC1 | MAY_BE_RCN;
		}

		if (opline->op2_type == IS_CV) {
			//|	// zend_assign_to_variable(variable_ptr, value, IS_CV, EX_USES_STRICT_TYPES());
			if (!zend_jit_assign_to_variable(Dst, opline, var_addr, var_addr, op2_info, -1, IS_CV, val_addr, val_info, 0, 1)) {
				return 0;
			}
		} else {
			//|	// ZVAL_COPY(res, value);
			//|	ZVAL_COPY_VALUE var_addr, -1, val_addr, val_info, ZREG_R0, ZREG_FCARG1a
				if (val_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
					if ((val_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
						if (Z_MODE(val_addr) == IS_REG) {
							if (Z_MODE(var_addr) != IS_REG || Z_REG(var_addr) != Z_REG(val_addr)) {
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (Z_REG(val_addr)), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
							}
						} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (Z_REG(var_addr)), (Z_REG(var_addr)));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (Z_REG(var_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (Z_REG(var_addr)), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (Z_REG(var_addr)), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (Z_REG(var_addr) != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (Z_REG(var_addr)));
					}
				} else {
					ZEND_UNREACHABLE();
				}
						} else {
				if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
					if (Z_LVAL_P(Z_ZV(val_addr)) == 0) {
			dasm_put(Dst, 1741, (ZREG_FCARG1a), (ZREG_FCARG1a));
					} else {
							if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(val_addr)))) {
			dasm_put(Dst, 1749, (ZREG_FCARG1a), (unsigned int)(Z_LVAL_P(Z_ZV(val_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(val_addr)))>>32));
							} else {
			dasm_put(Dst, 1756, (ZREG_FCARG1a), Z_LVAL_P(Z_ZV(val_addr)));
							}
					}
				} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
			dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else if (Z_MODE(val_addr) == IS_REG) {
					if (ZREG_FCARG1a != Z_REG(val_addr)) {
			dasm_put(Dst, 1773, (Z_REG(val_addr)), (ZREG_FCARG1a));
					}
				} else {
					ZEND_UNREACHABLE();
				}
				if (Z_MODE(var_addr) == IS_REG) {
			dasm_put(Dst, 1773, (ZREG_FCARG1a), (Z_REG(var_addr)));
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_FCARG1a), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
						}
					} else if ((val_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
						if (Z_MODE(val_addr) == IS_REG) {
				if (Z_MODE(var_addr) == IS_REG) {
					if (Z_REG(val_addr) != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (Z_REG(val_addr)-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
						} else if (Z_MODE(var_addr) == IS_REG) {
				if (Z_MODE(val_addr) != IS_REG || Z_REG(var_addr) != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (Z_REG(var_addr)-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (Z_REG(var_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (Z_REG(var_addr)-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
						} else {
				if (Z_MODE(val_addr) != IS_REG || ZREG_XMM0 != Z_REG(val_addr)) {
					if (Z_MODE(val_addr) == IS_CONST_ZVAL) {
							if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				} else {
			dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(val_addr));
				}
							} else {
					if (IS_SIGNED_32BIT(Z_ZV(val_addr))) {
			dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(val_addr)));
					} else {
			dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(val_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(val_addr)))>>32));
					}
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
				}
							}
					} else if (Z_MODE(val_addr) == IS_MEM_ZVAL) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				} else {
			dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				}
					} else if (Z_MODE(val_addr) == IS_REG) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(val_addr)-ZREG_XMM0));
				}
					} else {
						ZEND_UNREACHABLE();
					}
				}
				if (Z_MODE(var_addr) == IS_REG) {
					if (ZREG_XMM0 != Z_REG(var_addr)) {
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1905, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				} else {
			dasm_put(Dst, 1915, (Z_REG(var_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
				}
					}
				} else {
					ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
				if (CAN_USE_AVX()) {
			dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(var_addr)), Z_OFFSET(var_addr));
				}
				}
						}
					} else if (!(val_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_FCARG1a), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1763, (ZREG_FCARG1a), (Z_REG(val_addr)), Z_OFFSET(val_addr));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1895, (ZREG_FCARG1a), (Z_REG(var_addr)), Z_OFFSET(var_addr));
					}
				}
				if ((val_info & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
			      !(val_info & MAY_BE_GUARD) &&
					has_concrete_type(val_info & MAY_BE_ANY)) {
					if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
						if ((-1 & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (val_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
							zend_uchar type = concrete_type(val_info);
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info), type);
						}
					}
				} else {
				ZEND_ASSERT(Z_MODE(val_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(val_addr)), Z_OFFSET(val_addr)+offsetof(zval,u1.type_info));
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval,u1.type_info));
				}
#line 15352 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	TRY_ADDREF val_info, ah, FCARG1a
				if (val_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
					if (val_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			dasm_put(Dst, 2381);
					}
			dasm_put(Dst, 8056);
				}
#line 15353 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}

	return 1;
}

static int zend_jit_fetch_constant(dasm_State          **Dst,
                                   const zend_op        *opline,
                                   const zend_op_array  *op_array,
                                   zend_ssa             *ssa,
                                   const zend_ssa_op    *ssa_op)
{
	zval *zv = RT_CONSTANT(opline, opline->op2) + 1;
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);
	zend_jit_addr const_addr = ZEND_ADDR_MEM_ZVAL(ZREG_R0, 0);
	uint32_t res_info = RES_INFO();

	//|	// c = CACHED_PTR(opline->extended_value);
	//|	mov FCARG1a, EX->run_time_cache
	//|	mov r0, aword [FCARG1a + opline->extended_value]
	//|	// if (c != NULL)
	//|	test r0, r0
	//|	jz >9
	//|	// if (!IS_SPECIAL_CACHE_VAL(c))
	//|	test r0, CACHE_SPECIAL
	//|	jnz >9
	//|8:
	dasm_put(Dst, 8229, Dt1(->run_time_cache), opline->extended_value, CACHE_SPECIAL);
#line 15380 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	if ((res_info & MAY_BE_GUARD) && JIT_G(current_frame)) {
		zend_jit_trace_stack *stack = JIT_G(current_frame)->stack;
		uint32_t old_info = STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var));
		int32_t exit_point;
		const void *exit_addr = NULL;

		SET_STACK_TYPE(stack, EX_VAR_TO_NUM(opline->result.var), IS_UNKNOWN, 1);
		SET_STACK_REG(stack, EX_VAR_TO_NUM(opline->result.var), ZREG_ZVAL_COPY_R0);
		exit_point = zend_jit_trace_get_exit_point(opline+1, 0);
		SET_STACK_INFO(stack, EX_VAR_TO_NUM(opline->result.var), old_info);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		if (!exit_addr) {
			return 0;
		}
		res_info &= ~MAY_BE_GUARD;
		ssa->var_info[ssa_op->result_def].type &= ~MAY_BE_GUARD;

		zend_uchar type = concrete_type(res_info);

		if (type < IS_STRING) {
			//|	IF_NOT_ZVAL_TYPE const_addr, type, &exit_addr
				ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 5862, (Z_REG(const_addr)), Z_OFFSET(const_addr)+offsetof(zval, u1.v.type), type, (ptrdiff_t)(exit_addr));
#line 15402 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	GET_ZVAL_TYPE_INFO edx, const_addr
				ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
#line 15404 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	IF_NOT_TYPE dl, type, &exit_addr
			dasm_put(Dst, 7093, (Z_REG(const_addr)), Z_OFFSET(const_addr)+offsetof(zval,u1.type_info), type, (ptrdiff_t)(exit_addr));
#line 15405 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	ZVAL_COPY_VALUE_V res_addr, -1, const_addr, res_info, ZREG_R0, ZREG_R1
			if (res_info & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(const_addr) == IS_REG) {
						if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(const_addr)) {
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(const_addr)), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(const_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
						}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(const_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(const_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(const_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(const_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(const_addr)));
						}
				}
			} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else if (Z_MODE(const_addr) == IS_REG) {
				if (Z_REG(res_addr) != Z_REG(const_addr)) {
		dasm_put(Dst, 1773, (Z_REG(const_addr)), (Z_REG(res_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(const_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(const_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(const_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(const_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(const_addr)));
						}
				}
			} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else if (Z_MODE(const_addr) == IS_REG) {
				if (ZREG_R1 != Z_REG(const_addr)) {
		dasm_put(Dst, 1773, (Z_REG(const_addr)), (ZREG_R1));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
					}
				} else if ((res_info & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(const_addr) == IS_REG) {
			if (Z_MODE(res_addr) == IS_REG) {
				if (Z_REG(const_addr) != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(const_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(const_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(const_addr) != IS_REG || Z_REG(res_addr) != Z_REG(const_addr)) {
				if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(const_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(const_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(const_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(const_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(const_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			}
				} else if (Z_MODE(const_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(const_addr) != IS_REG || ZREG_XMM0 != Z_REG(const_addr)) {
				if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(const_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(const_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(const_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(const_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(const_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			}
				} else if (Z_MODE(const_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(res_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					}
				} else if (!(res_info & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
			}
#line 15407 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		if (type < IS_STRING) {
			//|	SET_ZVAL_TYPE_INFO res_addr, type
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
#line 15409 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	SET_ZVAL_TYPE_INFO res_addr, edx
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
#line 15411 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
			//|	TRY_ADDREF res_info, dh, r1
			dasm_put(Dst, 7070, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
				if (res_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
					if (res_info & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
			dasm_put(Dst, 4107);
					}
			dasm_put(Dst, 2171);
				}
#line 15412 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else {
		//|	// ZVAL_COPY_OR_DUP(EX_VAR(opline->result.var), &c->value); (no dup)
		//|	ZVAL_COPY_VALUE res_addr, MAY_BE_ANY, const_addr, MAY_BE_ANY, ZREG_R0, ZREG_R1
			if (MAY_BE_ANY & (MAY_BE_ANY-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE))) {
				if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_LONG) {
					if (Z_MODE(const_addr) == IS_REG) {
						if (Z_MODE(res_addr) != IS_REG || Z_REG(res_addr) != Z_REG(const_addr)) {
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (Z_REG(const_addr)), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (Z_REG(const_addr)), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
						}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(const_addr)) == 0) {
		dasm_put(Dst, 1741, (Z_REG(res_addr)), (Z_REG(res_addr)));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(const_addr)))) {
		dasm_put(Dst, 1749, (Z_REG(res_addr)), (unsigned int)(Z_LVAL_P(Z_ZV(const_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(const_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (Z_REG(res_addr)), Z_LVAL_P(Z_ZV(const_addr)));
						}
				}
			} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (Z_REG(res_addr)), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else if (Z_MODE(const_addr) == IS_REG) {
				if (Z_REG(res_addr) != Z_REG(const_addr)) {
		dasm_put(Dst, 1773, (Z_REG(const_addr)), (Z_REG(res_addr)));
				}
			} else {
				ZEND_UNREACHABLE();
			}
					} else {
			if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
				if (Z_LVAL_P(Z_ZV(const_addr)) == 0) {
		dasm_put(Dst, 1741, (ZREG_R1), (ZREG_R1));
				} else {
						if (!IS_SIGNED_32BIT(Z_LVAL_P(Z_ZV(const_addr)))) {
		dasm_put(Dst, 1749, (ZREG_R1), (unsigned int)(Z_LVAL_P(Z_ZV(const_addr))), (unsigned int)((Z_LVAL_P(Z_ZV(const_addr)))>>32));
						} else {
		dasm_put(Dst, 1756, (ZREG_R1), Z_LVAL_P(Z_ZV(const_addr)));
						}
				}
			} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else if (Z_MODE(const_addr) == IS_REG) {
				if (ZREG_R1 != Z_REG(const_addr)) {
		dasm_put(Dst, 1773, (Z_REG(const_addr)), (ZREG_R1));
				}
			} else {
				ZEND_UNREACHABLE();
			}
			if (Z_MODE(res_addr) == IS_REG) {
		dasm_put(Dst, 1773, (ZREG_R1), (Z_REG(res_addr)));
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
					}
				} else if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_GUARD)) == MAY_BE_DOUBLE) {
					if (Z_MODE(const_addr) == IS_REG) {
			if (Z_MODE(res_addr) == IS_REG) {
				if (Z_REG(const_addr) != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (Z_REG(const_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (Z_REG(const_addr)-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					} else if (Z_MODE(res_addr) == IS_REG) {
			if (Z_MODE(const_addr) != IS_REG || Z_REG(res_addr) != Z_REG(const_addr)) {
				if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(const_addr));
			} else {
		dasm_put(Dst, 1960, (Z_REG(res_addr)-ZREG_XMM0), Z_ZV(const_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(const_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(const_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(const_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (Z_REG(res_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (Z_REG(res_addr)-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else {
		dasm_put(Dst, 2000, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			}
				} else if (Z_MODE(const_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
					} else {
			if (Z_MODE(const_addr) != IS_REG || ZREG_XMM0 != Z_REG(const_addr)) {
				if (Z_MODE(const_addr) == IS_CONST_ZVAL) {
						if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1950, (ZREG_XMM0-ZREG_XMM0), Z_ZV(const_addr));
			} else {
		dasm_put(Dst, 1960, (ZREG_XMM0-ZREG_XMM0), Z_ZV(const_addr));
			}
						} else {
				if (IS_SIGNED_32BIT(Z_ZV(const_addr))) {
		dasm_put(Dst, 50, ((ptrdiff_t)Z_ZV(const_addr)));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)Z_ZV(const_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(const_addr)))>>32));
				}
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1971, (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1979, (ZREG_XMM0-ZREG_XMM0));
			}
						}
				} else if (Z_MODE(const_addr) == IS_MEM_ZVAL) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1988, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			} else {
		dasm_put(Dst, 2000, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			}
				} else if (Z_MODE(const_addr) == IS_REG) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (ZREG_XMM0-ZREG_XMM0), (Z_REG(const_addr)-ZREG_XMM0));
			}
				} else {
					ZEND_UNREACHABLE();
				}
			}
			if (Z_MODE(res_addr) == IS_REG) {
				if (ZREG_XMM0 != Z_REG(res_addr)) {
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1905, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			} else {
		dasm_put(Dst, 1915, (Z_REG(res_addr)-ZREG_XMM0), (ZREG_XMM0-ZREG_XMM0));
			}
				}
			} else {
				ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
			if (CAN_USE_AVX()) {
		dasm_put(Dst, 1924, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			} else {
		dasm_put(Dst, 1937, (ZREG_XMM0-ZREG_XMM0), (Z_REG(res_addr)), Z_OFFSET(res_addr));
			}
			}
					}
				} else if (!(MAY_BE_ANY & (MAY_BE_DOUBLE|MAY_BE_GUARD))) {
			ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				} else {
			ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1763, (ZREG_R1), (Z_REG(const_addr)), Z_OFFSET(const_addr));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1895, (ZREG_R1), (Z_REG(res_addr)), Z_OFFSET(res_addr));
				}
			}
			if ((MAY_BE_ANY & (MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)) &&
		      !(MAY_BE_ANY & MAY_BE_GUARD) &&
				has_concrete_type(MAY_BE_ANY & MAY_BE_ANY)) {
				if (Z_MODE(res_addr) == IS_MEM_ZVAL) {
					if ((MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD)) != (MAY_BE_ANY & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_GUARD))) {
						zend_uchar type = concrete_type(MAY_BE_ANY);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 1681, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info), type);
					}
				}
			} else {
			ZEND_ASSERT(Z_MODE(const_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2177, (ZREG_R0), (Z_REG(const_addr)), Z_OFFSET(const_addr)+offsetof(zval,u1.type_info));
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 2187, (ZREG_R0), (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
			}
#line 15416 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	TRY_ADDREF MAY_BE_ANY, ah, r1
			if (MAY_BE_ANY & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)) {
				if (MAY_BE_ANY & (MAY_BE_ANY-(MAY_BE_OBJECT|MAY_BE_RESOURCE))) {
		dasm_put(Dst, 2381);
				}
		dasm_put(Dst, 2171);
			}
#line 15417 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	//|.cold_code
	dasm_put(Dst, 290);
#line 15420 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|9:
	//|	// SAVE_OPLINE();
	//|	SET_EX_OPLINE opline, r0
	dasm_put(Dst, 4204);
		if (opline == last_valid_opline) {
			zend_jit_use_last_valid_opline();
		if (GCC_GLOBAL_REGS) {
	dasm_put(Dst, 8, Dt1(->opline));
		}
		} else {
			if (IS_SIGNED_32BIT(opline)) {
	dasm_put(Dst, 327, Dt1(->opline), ((ptrdiff_t)opline));
			} else {
	dasm_put(Dst, 333, (unsigned int)(((ptrdiff_t)opline)), (unsigned int)((((ptrdiff_t)opline))>>32), Dt1(->opline));
			}
			if (!GCC_GLOBAL_REGS) {
				zend_jit_reset_last_valid_opline();
			}
		}
#line 15423 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// zend_quick_get_constant(RT_CONSTANT(opline, opline->op2) + 1, opline->op1.num OPLINE_CC EXECUTE_DATA_CC);
	//|	LOAD_ADDR FCARG1a, zv
			if (IS_SIGNED_32BIT(zv)) {
	dasm_put(Dst, 702, ((ptrdiff_t)zv));
			} else {
	dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)zv)), (unsigned int)((((ptrdiff_t)zv))>>32));
			}
#line 15425 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	mov FCARG2a, opline->op1.num
	//|	EXT_CALL zend_jit_get_constant, r0
	dasm_put(Dst, 707, opline->op1.num);
			if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_get_constant)) {
	dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_get_constant));
			} else {
			if (IS_SIGNED_32BIT(zend_jit_get_constant)) {
	dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_get_constant));
			} else {
	dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_get_constant)), (unsigned int)((((ptrdiff_t)zend_jit_get_constant))>>32));
			}
	dasm_put(Dst, 60);
			}
#line 15427 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	//|	// ZEND_VM_NEXT_OPCODE_CHECK_EXCEPTION();
	//|	test r0, r0
	//|	jnz <8
	//|	jmp ->exception_handler
	//|.code
	dasm_put(Dst, 8254);
#line 15432 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static int zend_jit_in_array(dasm_State **Dst, const zend_op *opline, uint32_t op1_info, zend_jit_addr op1_addr,  zend_uchar smart_branch_opcode, uint32_t target_label, uint32_t target_label2, const void *exit_addr)
{
	HashTable *ht = Z_ARRVAL_P(RT_CONSTANT(opline, opline->op2));
	zend_jit_addr res_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FP, opline->result.var);

	ZEND_ASSERT(opline->op1_type != IS_VAR && opline->op1_type != IS_TMP_VAR);
	ZEND_ASSERT((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) == MAY_BE_STRING);

	//|	// result = zend_hash_find_ex(ht, Z_STR_P(op1), OP1_TYPE == IS_CONST);
	//|	LOAD_ADDR FCARG1a, ht
			if (IS_SIGNED_32BIT(ht)) {
	dasm_put(Dst, 702, ((ptrdiff_t)ht));
			} else {
	dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)ht)), (unsigned int)((((ptrdiff_t)ht))>>32));
			}
#line 15446 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (opline->op1_type != IS_CONST) {
		//|	GET_ZVAL_PTR FCARG2a, op1_addr
			ZEND_ASSERT(Z_MODE(op1_addr) == IS_MEM_ZVAL);
#line 15448 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL zend_hash_find, r0
		dasm_put(Dst, 7891, (Z_REG(op1_addr)), Z_OFFSET(op1_addr));
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_hash_find)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_hash_find));
				} else {
				if (IS_SIGNED_32BIT(zend_hash_find)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_hash_find));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_hash_find)), (unsigned int)((((ptrdiff_t)zend_hash_find))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 15449 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		zend_string *str = Z_STR_P(RT_CONSTANT(opline, opline->op1));
		//|	LOAD_ADDR FCARG2a, str
				if (IS_SIGNED_32BIT(str)) {
		dasm_put(Dst, 707, ((ptrdiff_t)str));
				} else {
		dasm_put(Dst, 712, (unsigned int)(((ptrdiff_t)str)), (unsigned int)((((ptrdiff_t)str))>>32));
				}
#line 15452 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	EXT_CALL _zend_hash_find_known_hash, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(_zend_hash_find_known_hash)) {
		dasm_put(Dst, 46, (ptrdiff_t)(_zend_hash_find_known_hash));
				} else {
				if (IS_SIGNED_32BIT(_zend_hash_find_known_hash)) {
		dasm_put(Dst, 50, ((ptrdiff_t)_zend_hash_find_known_hash));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)_zend_hash_find_known_hash)), (unsigned int)((((ptrdiff_t)_zend_hash_find_known_hash))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 15453 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	//|	test r0, r0
	dasm_put(Dst, 3620);
#line 15455 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	if (exit_addr) {
		if (smart_branch_opcode == ZEND_JMPZ) {
			//|	jz &exit_addr
			dasm_put(Dst, 1786, (ptrdiff_t)(exit_addr));
#line 15458 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			//|	jnz &exit_addr
			dasm_put(Dst, 1628, (ptrdiff_t)(exit_addr));
#line 15460 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	} else if (smart_branch_opcode) {
		if (smart_branch_opcode == ZEND_JMPZ) {
			//|	jz =>target_label
			dasm_put(Dst, 4659, target_label);
#line 15464 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (smart_branch_opcode == ZEND_JMPNZ) {
			//|	jnz =>target_label
			dasm_put(Dst, 1878, target_label);
#line 15466 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if (smart_branch_opcode == ZEND_JMPZNZ) {
			//|	jz =>target_label
			//|	jmp =>target_label2
			dasm_put(Dst, 6752, target_label, target_label2);
#line 15469 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else {
			ZEND_UNREACHABLE();
		}
	} else {
		//|	setnz al
		//|	movzx eax, al
		//|	lea eax, [eax + IS_FALSE]
		//|	SET_ZVAL_TYPE_INFO res_addr, eax
		dasm_put(Dst, 8267, IS_FALSE);
			ZEND_ASSERT(Z_MODE(res_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4651, (Z_REG(res_addr)), Z_OFFSET(res_addr)+offsetof(zval,u1.type_info));
#line 15477 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}

	return 1;
}

static zend_bool zend_jit_noref_guard(dasm_State **Dst, const zend_op *opline, zend_jit_addr var_addr)
{
	int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);
	const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

	if (!exit_addr) {
		return 0;
	}
	//|	IF_ZVAL_TYPE var_addr, IS_REFERENCE, &exit_addr
		ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
	dasm_put(Dst, 4157, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), IS_REFERENCE, (ptrdiff_t)(exit_addr));
#line 15491 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

	return 1;
}

static zend_bool zend_jit_fetch_reference(dasm_State **Dst, const zend_op *opline, uint8_t var_type, uint32_t *var_info_ptr, zend_jit_addr *var_addr_ptr, zend_bool add_ref_guard, zend_bool add_type_guard)
{
	zend_jit_addr var_addr = *var_addr_ptr;
	uint32_t var_info = *var_info_ptr;
	const void *exit_addr = NULL;

	if (add_ref_guard || add_type_guard) {
		int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);

		exit_addr = zend_jit_trace_get_exit_addr(exit_point);
		if (!exit_addr) {
			return 0;
		}
	}

	if (add_ref_guard) {
		//|	IF_NOT_ZVAL_TYPE var_addr, IS_REFERENCE, &exit_addr
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 5862, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), IS_REFERENCE, (ptrdiff_t)(exit_addr));
#line 15512 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	}
	if (opline->opcode == ZEND_INIT_METHOD_CALL && opline->op1_type == IS_VAR) {
		/* Hack: Convert reference to regular value to simplify JIT code for INIT_METHOD_CALL */
		if (Z_REG(var_addr) != ZREG_FCARG1a || Z_OFFSET(var_addr) != 0) {
			//|	LOAD_ZVAL_ADDR FCARG1a, var_addr
				if (Z_MODE(var_addr) == IS_CONST_ZVAL) {
					if (IS_SIGNED_32BIT(Z_ZV(var_addr))) {
			dasm_put(Dst, 702, ((ptrdiff_t)Z_ZV(var_addr)));
					} else {
			dasm_put(Dst, 874, (unsigned int)(((ptrdiff_t)Z_ZV(var_addr))), (unsigned int)((((ptrdiff_t)Z_ZV(var_addr)))>>32));
					}
				} else if (Z_MODE(var_addr) == IS_MEM_ZVAL) {
				if (Z_OFFSET(var_addr)) {
			dasm_put(Dst, 2314, (Z_REG(var_addr)), Z_OFFSET(var_addr));
				} else {
			dasm_put(Dst, 2322, (Z_REG(var_addr)));
				}
				} else {
					ZEND_UNREACHABLE();
				}
#line 15517 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
		//|	EXT_CALL zend_jit_unref_helper, r0
				if (IS_32BIT(dasm_end) && IS_32BIT(zend_jit_unref_helper)) {
		dasm_put(Dst, 46, (ptrdiff_t)(zend_jit_unref_helper));
				} else {
				if (IS_SIGNED_32BIT(zend_jit_unref_helper)) {
		dasm_put(Dst, 50, ((ptrdiff_t)zend_jit_unref_helper));
				} else {
		dasm_put(Dst, 55, (unsigned int)(((ptrdiff_t)zend_jit_unref_helper)), (unsigned int)((((ptrdiff_t)zend_jit_unref_helper))>>32));
				}
		dasm_put(Dst, 60);
				}
#line 15519 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		//|	GET_ZVAL_PTR FCARG1a, var_addr
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(var_addr)), Z_OFFSET(var_addr));
#line 15521 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, offsetof(zend_reference, val));
		*var_addr_ptr = var_addr;
	}

	if (var_type != IS_UNKNOWN) {
		var_type &= ~(IS_TRACE_REFERENCE|IS_TRACE_INDIRECT|IS_TRACE_PACKED);
	}
	if (add_type_guard
	 && var_type != IS_UNKNOWN
	 && (var_info & (MAY_BE_ANY|MAY_BE_UNDEF)) != (1 << var_type)) {
		//|	IF_NOT_ZVAL_TYPE var_addr, var_type, &exit_addr
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 5862, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), var_type, (ptrdiff_t)(exit_addr));
#line 15532 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		ZEND_ASSERT(var_info & (1 << var_type));
		if (var_type < IS_STRING) {
			var_info = (1 << var_type);
		} else if (var_type != IS_ARRAY) {
			var_info = (1 << var_type) | (var_info & (MAY_BE_RC1|MAY_BE_RCN));
		} else {
			var_info = MAY_BE_ARRAY | (var_info & (MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF|MAY_BE_ARRAY_KEY_ANY|MAY_BE_RC1|MAY_BE_RCN));
		}

		*var_info_ptr = var_info;
	} else {
		var_info &= ~MAY_BE_REF;
		*var_info_ptr = var_info;
	}
	*var_info_ptr |= MAY_BE_GUARD; /* prevent generation of specialized zval dtor */

	return 1;
}

static zend_bool zend_jit_fetch_indirect_var(dasm_State **Dst, const zend_op *opline, uint8_t var_type, uint32_t *var_info_ptr, zend_jit_addr *var_addr_ptr, zend_bool add_indirect_guard)
{
	zend_jit_addr var_addr = *var_addr_ptr;
	uint32_t var_info = *var_info_ptr;
	int32_t exit_point;
	const void *exit_addr;

	if (add_indirect_guard) {
		int32_t exit_point = zend_jit_trace_get_exit_point(opline, 0);
		const void *exit_addr = zend_jit_trace_get_exit_addr(exit_point);

		if (!exit_addr) {
			return 0;
		}
		//|	IF_NOT_ZVAL_TYPE var_addr, IS_INDIRECT, &exit_addr
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
#line 15567 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		//|	GET_ZVAL_PTR FCARG1a, var_addr
		dasm_put(Dst, 5862, (Z_REG(var_addr)), Z_OFFSET(var_addr)+offsetof(zval, u1.v.type), IS_INDIRECT, (ptrdiff_t)(exit_addr));
			ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
		dasm_put(Dst, 4219, (Z_REG(var_addr)), Z_OFFSET(var_addr));
#line 15568 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
	} else {
		/* May be already loaded into FCARG1a or RAX by previus FETCH_OBJ_W/DIM_W */
		if (opline->op1_type != IS_VAR ||
				(opline-1)->result_type != IS_VAR  ||
				(opline-1)->result.var != opline->op1.var ||
				(opline-1)->op2_type == IS_VAR ||
				(opline-1)->op2_type == IS_TMP_VAR) {
			//|	GET_ZVAL_PTR FCARG1a, var_addr
				ZEND_ASSERT(Z_MODE(var_addr) == IS_MEM_ZVAL);
			dasm_put(Dst, 4219, (Z_REG(var_addr)), Z_OFFSET(var_addr));
#line 15576 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		} else if ((opline-1)->opcode == ZEND_FETCH_DIM_W || (opline-1)->opcode == ZEND_FETCH_DIM_RW) {
			//|	mov FCARG1a, r0
			dasm_put(Dst, 2220);
#line 15578 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"
		}
	}
	*var_info_ptr &= ~MAY_BE_INDIRECT;
	var_addr = ZEND_ADDR_MEM_ZVAL(ZREG_FCARG1a, 0);
	*var_addr_ptr = var_addr;

	if (var_type != IS_UNKNOWN) {
		var_type &= ~(IS_TRACE_INDIRECT|IS_TRACE_PACKED);
	}
	if (!(var_type & IS_TRACE_REFERENCE)
	 && var_type != IS_UNKNOWN
	 && (var_info & (MAY_BE_ANY|MAY_BE_UNDEF)) != (1 << var_type)) {
		exit_point = zend_jit_trace_get_exit_point(opline, 0);
		exit_addr = zend_jit_trace_get_exit_addr(exit_point);

		if (!exit_addr) {
			return 0;
		}

		//|	IF_NOT_Z_TYPE FCARG1a, var_type, &exit_addr
		dasm_put(Dst, 8277, offsetof(zval, u1.v.type), var_type, (ptrdiff_t)(exit_addr));
#line 15598 "/www/server/php/80/src/ext/opcache/jit/zend_jit_x86.dasc"

		//var_info = zend_jit_trace_type_to_info_ex(var_type, var_info);
		ZEND_ASSERT(var_info & (1 << var_type));
		if (var_type < IS_STRING) {
			var_info = (1 << var_type);
		} else if (var_type != IS_ARRAY) {
			var_info = (1 << var_type) | (var_info & (MAY_BE_RC1|MAY_BE_RCN));
		} else {
			var_info = MAY_BE_ARRAY | (var_info & (MAY_BE_ARRAY_OF_ANY|MAY_BE_ARRAY_OF_REF|MAY_BE_ARRAY_KEY_ANY|MAY_BE_RC1|MAY_BE_RCN));
		}

		*var_info_ptr = var_info;
	}

	return 1;
}

static zend_bool zend_jit_may_reuse_reg(const zend_op *opline, const zend_ssa_op *ssa_op, zend_ssa *ssa, int def_var, int use_var)
{
	if ((ssa->var_info[def_var].type & ~MAY_BE_GUARD) != (ssa->var_info[use_var].type & ~MAY_BE_GUARD)) {
		return 0;
	}

	switch (opline->opcode) {
		case ZEND_QM_ASSIGN:
		case ZEND_SEND_VAR:
		case ZEND_ASSIGN:
		case ZEND_PRE_INC:
		case ZEND_PRE_DEC:
		case ZEND_POST_INC:
		case ZEND_POST_DEC:
			return 1;
		case ZEND_ADD:
		case ZEND_SUB:
		case ZEND_MUL:
		case ZEND_BW_OR:
		case ZEND_BW_AND:
		case ZEND_BW_XOR:
			if (def_var == ssa_op->result_def &&
			    use_var == ssa_op->op1_use) {
				return 1;
			}
			break;
		default:
			break;
	}
	return 0;
}

static zend_bool zend_jit_opline_supports_reg(const zend_op_array *op_array, zend_ssa *ssa, const zend_op *opline, const zend_ssa_op *ssa_op, zend_jit_trace_rec *trace)
{
	uint32_t op1_info, op2_info;

	switch (opline->opcode) {
		case ZEND_SEND_VAR:
		case ZEND_SEND_VAL:
		case ZEND_SEND_VAL_EX:
			return (opline->op2_type != IS_CONST);
		case ZEND_QM_ASSIGN:
		case ZEND_IS_SMALLER:
		case ZEND_IS_SMALLER_OR_EQUAL:
		case ZEND_IS_EQUAL:
		case ZEND_IS_NOT_EQUAL:
		case ZEND_IS_IDENTICAL:
		case ZEND_IS_NOT_IDENTICAL:
		case ZEND_CASE:
			return 1;
		case ZEND_RETURN:
			return (op_array->type != ZEND_EVAL_CODE && op_array->function_name);
		case ZEND_ASSIGN:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			return
				opline->op1_type == IS_CV &&
				!(op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_RESOURCE|MAY_BE_OBJECT|MAY_BE_REF)) &&
				!(op2_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE)));
		case ZEND_ADD:
		case ZEND_SUB:
		case ZEND_MUL:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			return !((op1_info | op2_info) & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF) - (MAY_BE_LONG|MAY_BE_DOUBLE)));
		case ZEND_BW_OR:
		case ZEND_BW_AND:
		case ZEND_BW_XOR:
		case ZEND_SL:
		case ZEND_SR:
		case ZEND_MOD:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			return !((op1_info | op2_info) & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF) - MAY_BE_LONG));
		case ZEND_PRE_INC:
		case ZEND_PRE_DEC:
		case ZEND_POST_INC:
		case ZEND_POST_DEC:
			op1_info = OP1_INFO();
			return opline->op1_type == IS_CV && !(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF) - MAY_BE_LONG));
		case ZEND_JMPZ:
		case ZEND_JMPNZ:
			if (JIT_G(trigger) != ZEND_JIT_ON_HOT_TRACE) {
				if (!ssa->cfg.map) {
					return 0;
				}
				if (opline > op_array->opcodes + ssa->cfg.blocks[ssa->cfg.map[opline-op_array->opcodes]].start &&
				    ((opline-1)->result_type & (IS_SMART_BRANCH_JMPZ|IS_SMART_BRANCH_JMPNZ)) != 0) {
					return 0;
				}
			}
			/* break missing intentionally */
		case ZEND_BOOL:
		case ZEND_BOOL_NOT:
		case ZEND_JMPZNZ:
		case ZEND_JMPZ_EX:
		case ZEND_JMPNZ_EX:
			return 1;
		case ZEND_FETCH_DIM_R:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (trace
			 && trace->op1_type != IS_UNKNOWN
			 && (trace->op1_type & ~(IS_TRACE_REFERENCE|IS_TRACE_INDIRECT|IS_TRACE_PACKED)) == IS_ARRAY) {
				op1_info &= ~((MAY_BE_ANY|MAY_BE_UNDEF) - MAY_BE_ARRAY);
			}
			return ((op1_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_ARRAY) &&
				(!(opline->op1_type & (IS_TMP_VAR|IS_VAR)) || !(op1_info & MAY_BE_RC1)) &&
					(((op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_LONG) ||
					 (((op2_info & (MAY_BE_ANY|MAY_BE_UNDEF)) == MAY_BE_STRING) &&
						 (!(opline->op2_type & (IS_TMP_VAR|IS_VAR)) || !(op2_info & MAY_BE_RC1))));
	}
	return 0;
}

static zend_bool zend_jit_var_supports_reg(zend_ssa *ssa, int var)
{
	if (ssa->vars[var].no_val) {
		/* we don't need the value */
		return 0;
	}

	if (!(JIT_G(opt_flags) & ZEND_JIT_REG_ALLOC_GLOBAL)) {
		/* Disable global register allocation,
		 * register allocation for SSA variables connected through Phi functions
		 */
		if (ssa->vars[var].definition_phi) {
			return 0;
		}
		if (ssa->vars[var].phi_use_chain) {
			zend_ssa_phi *phi = ssa->vars[var].phi_use_chain;
			do {
				if (!ssa->vars[phi->ssa_var].no_val) {
					return 0;
				}
				phi = zend_ssa_next_use_phi(ssa, var, phi);
			} while (phi);
		}
	}

	if (((ssa->var_info[var].type & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_DOUBLE) &&
	    ((ssa->var_info[var].type & (MAY_BE_ANY|MAY_BE_UNDEF|MAY_BE_REF)) != MAY_BE_LONG)) {
	    /* bad type */
		return 0;
	}

	return 1;
}

static zend_bool zend_jit_may_be_in_reg(const zend_op_array *op_array, zend_ssa *ssa, int var)
{
	if (!zend_jit_var_supports_reg(ssa, var)) {
		return 0;
	}

	if (ssa->vars[var].definition >= 0) {
		uint32_t def = ssa->vars[var].definition;
		if (!zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + def, ssa->ops + def, NULL)) {
			return 0;
		}
	}

	if (ssa->vars[var].use_chain >= 0) {
		int use = ssa->vars[var].use_chain;

		do {
			if (!zend_ssa_is_no_val_use(op_array->opcodes + use, ssa->ops + use, var) &&
			    !zend_jit_opline_supports_reg(op_array, ssa, op_array->opcodes + use, ssa->ops + use, NULL)) {
				return 0;
			}
			use = zend_ssa_next_use(ssa->ops, var, use);
		} while (use >= 0);
	}

	return 1;
}

static zend_bool zend_needs_extra_reg_for_const(const zend_op *opline, zend_uchar op_type, znode_op op)
{
//|.if X64
	if (op_type == IS_CONST) {
		zval *zv = RT_CONSTANT(opline, op);
		if (Z_TYPE_P(zv) == IS_DOUBLE && Z_DVAL_P(zv) != 0 && !IS_SIGNED_32BIT(zv)) {
			return 1;
		} else if (Z_TYPE_P(zv) == IS_LONG && !IS_SIGNED_32BIT(Z_LVAL_P(zv))) {
			return 1;
		}
	}
//|.endif
	return 0;
}

static zend_regset zend_jit_get_def_scratch_regset(const zend_op *opline, const zend_ssa_op *ssa_op, const zend_op_array *op_array, zend_ssa *ssa, int current_var, zend_bool last_use)
{
	uint32_t op1_info, op2_info;

	switch (opline->opcode) {
		case ZEND_FETCH_DIM_R:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (((opline->op1_type & (IS_TMP_VAR|IS_VAR)) &&
			     (op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE))) ||
			    ((opline->op2_type & (IS_TMP_VAR|IS_VAR)) &&
			     (op2_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE)))) {
				return ZEND_REGSET(ZREG_FCARG1a);
			}
			break;
		default:
			break;
	}

	return ZEND_REGSET_EMPTY;
}

static zend_regset zend_jit_get_scratch_regset(const zend_op *opline, const zend_ssa_op *ssa_op, const zend_op_array *op_array, zend_ssa *ssa, int current_var, zend_bool last_use)
{
	uint32_t op1_info, op2_info, res_info;
	zend_regset regset = ZEND_REGSET_SCRATCH;

	switch (opline->opcode) {
		case ZEND_NOP:
		case ZEND_OP_DATA:
		case ZEND_JMP:
		case ZEND_RETURN:
			regset = ZEND_REGSET_EMPTY;
			break;
		case ZEND_QM_ASSIGN:
			if (ssa_op->op1_def == current_var ||
			    ssa_op->result_def == current_var) {
				regset = ZEND_REGSET_EMPTY;
				break;
			}
			/* break missing intentionally */
		case ZEND_SEND_VAL:
		case ZEND_SEND_VAL_EX:
			if (opline->op2_type == IS_CONST) {
				break;
			}
			if (ssa_op->op1_use == current_var) {
				regset = ZEND_REGSET(ZREG_R0);
				break;
			}
			op1_info = OP1_INFO();
			if (!(op1_info & MAY_BE_UNDEF)) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_DOUBLE) {
					regset = ZEND_REGSET(ZREG_XMM0);
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_LONG) {
					regset = ZEND_REGSET(ZREG_R0);
				} else {
					regset = ZEND_REGSET_UNION(ZEND_REGSET(ZREG_R0), ZEND_REGSET(ZREG_R2));
				}
			}
			break;
		case ZEND_SEND_VAR:
			if (opline->op2_type == IS_CONST) {
				break;
			}
			if (ssa_op->op1_use == current_var ||
			    ssa_op->op1_def == current_var) {
				regset = ZEND_REGSET_EMPTY;
				break;
			}
			op1_info = OP1_INFO();
			if (!(op1_info & MAY_BE_UNDEF)) {
				if ((op1_info & (MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_DOUBLE) {
					regset = ZEND_REGSET(ZREG_XMM0);
				} else if ((op1_info & (MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_LONG) {
				} else {
					regset = ZEND_REGSET_UNION(ZEND_REGSET(ZREG_R0), ZEND_REGSET(ZREG_R2));
					if (op1_info & MAY_BE_REF) {
						ZEND_REGSET_INCL(regset, ZREG_R1);
					}
				}
			}
			break;
		case ZEND_ASSIGN:
			if (ssa_op->op2_use == current_var ||
			    ssa_op->op2_def == current_var ||
			    ssa_op->op1_def == current_var ||
			    ssa_op->result_def == current_var) {
				regset = ZEND_REGSET_EMPTY;
				break;
			}
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (opline->op1_type == IS_CV
			 && !(op2_info & MAY_BE_UNDEF)
			 && !(op1_info & (MAY_BE_STRING|MAY_BE_ARRAY|MAY_BE_OBJECT|MAY_BE_RESOURCE|MAY_BE_REF))) {
				if ((op2_info & (MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_DOUBLE) {
					regset = ZEND_REGSET(ZREG_XMM0);
				} else if ((op2_info & (MAY_BE_ANY|MAY_BE_REF)) == MAY_BE_LONG) {
					regset = ZEND_REGSET(ZREG_R0);
				} else {
					regset = ZEND_REGSET_UNION(ZEND_REGSET(ZREG_R0), ZEND_REGSET(ZREG_R2));
				}
			}
			break;
		case ZEND_PRE_INC:
		case ZEND_PRE_DEC:
		case ZEND_POST_INC:
		case ZEND_POST_DEC:
			if (ssa_op->op1_use == current_var ||
			    ssa_op->op1_def == current_var ||
			    ssa_op->result_def == current_var) {
				regset = ZEND_REGSET_EMPTY;
				break;
			}
			op1_info = OP1_INFO();
			if (opline->op1_type == IS_CV
			 && (op1_info & MAY_BE_LONG)
			 && !(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE)))) {
				regset = ZEND_REGSET_EMPTY;
				if (op1_info & MAY_BE_DOUBLE) {
					regset = ZEND_REGSET(ZREG_XMM0);
				}
				if (opline->result_type != IS_UNUSED && (op1_info & MAY_BE_LONG)) {
					ZEND_REGSET_INCL(regset, ZREG_R1);
				}
			}
			break;
		case ZEND_ADD:
		case ZEND_SUB:
		case ZEND_MUL:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (!(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) &&
			    !(op2_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE)))) {

				regset = ZEND_REGSET_EMPTY;
				if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG)) {
					if (ssa_op->result_def != current_var &&
					    (ssa_op->op1_use != current_var || !last_use)) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
					}
					res_info = RES_INFO();
					if (res_info & MAY_BE_DOUBLE) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
						ZEND_REGSET_INCL(regset, ZREG_XMM0);
						ZEND_REGSET_INCL(regset, ZREG_XMM1);
					} else if (res_info & MAY_BE_GUARD) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
					}
				}
				if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_DOUBLE)) {
					if (ssa_op->result_def != current_var) {
						ZEND_REGSET_INCL(regset, ZREG_XMM0);
					}
				}
				if ((op1_info & MAY_BE_DOUBLE) && (op2_info & MAY_BE_LONG)) {
					if (zend_is_commutative(opline->opcode)) {
						if (ssa_op->result_def != current_var) {
							ZEND_REGSET_INCL(regset, ZREG_XMM0);
						}
					} else {
						ZEND_REGSET_INCL(regset, ZREG_XMM0);
						if (ssa_op->result_def != current_var &&
						    (ssa_op->op1_use != current_var || !last_use)) {
							ZEND_REGSET_INCL(regset, ZREG_XMM1);
						}
					}
				}
				if ((op1_info & MAY_BE_DOUBLE) && (op2_info & MAY_BE_DOUBLE)) {
					if (ssa_op->result_def != current_var &&
					    (ssa_op->op1_use != current_var || !last_use) &&
					    (!zend_is_commutative(opline->opcode) || ssa_op->op2_use != current_var || !last_use)) {
						ZEND_REGSET_INCL(regset, ZREG_XMM0);
					}
				}
				if (zend_needs_extra_reg_for_const(opline, opline->op1_type, opline->op1) ||
				    zend_needs_extra_reg_for_const(opline, opline->op2_type, opline->op2)) {
					if (!ZEND_REGSET_IN(regset, ZREG_R0)) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
					} else {
						ZEND_REGSET_INCL(regset, ZREG_R1);
					}
				}
			}
			break;
		case ZEND_BW_OR:
		case ZEND_BW_AND:
		case ZEND_BW_XOR:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (!(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-MAY_BE_LONG)) &&
			    !(op2_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-MAY_BE_LONG))) {
				regset = ZEND_REGSET_EMPTY;
				if (ssa_op->result_def != current_var &&
				    (ssa_op->op1_use != current_var || !last_use)) {
					ZEND_REGSET_INCL(regset, ZREG_R0);
				}
				if (zend_needs_extra_reg_for_const(opline, opline->op1_type, opline->op1) ||
				    zend_needs_extra_reg_for_const(opline, opline->op2_type, opline->op2)) {
					if (!ZEND_REGSET_IN(regset, ZREG_R0)) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
					} else {
						ZEND_REGSET_INCL(regset, ZREG_R1);
					}
				}
			}
			break;
		case ZEND_SL:
		case ZEND_SR:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (!(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-MAY_BE_LONG)) &&
			    !(op2_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-MAY_BE_LONG))) {
				regset = ZEND_REGSET_EMPTY;
				if (ssa_op->result_def != current_var &&
				    (ssa_op->op1_use != current_var || !last_use)) {
					ZEND_REGSET_INCL(regset, ZREG_R0);
				}
				if (opline->op2_type != IS_CONST && ssa_op->op2_use != current_var) {
					ZEND_REGSET_INCL(regset, ZREG_R1);
				}
			}
			break;
		case ZEND_MOD:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (!(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-MAY_BE_LONG)) &&
			    !(op2_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-MAY_BE_LONG))) {
				regset = ZEND_REGSET_EMPTY;
				if (opline->op2_type == IS_CONST &&
				    opline->op1_type != IS_CONST &&
				    Z_TYPE_P(RT_CONSTANT(opline, opline->op2)) == IS_LONG &&
				    zend_long_is_power_of_two(Z_LVAL_P(RT_CONSTANT(opline, opline->op2))) &&
				    OP1_HAS_RANGE() &&
				    OP1_MIN_RANGE() >= 0) {
					if (ssa_op->result_def != current_var &&
					    (ssa_op->op1_use != current_var || !last_use)) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
					}
					if (sizeof(void*) == 8
					 && !IS_SIGNED_32BIT(Z_LVAL_P(RT_CONSTANT(opline, opline->op2)) - 1)) {
						if (!ZEND_REGSET_IN(regset, ZREG_R0)) {
							ZEND_REGSET_INCL(regset, ZREG_R0);
						} else {
							ZEND_REGSET_INCL(regset, ZREG_R1);
						}
					}
				} else {
					ZEND_REGSET_INCL(regset, ZREG_R0);
					ZEND_REGSET_INCL(regset, ZREG_R2);
					if (opline->op2_type == IS_CONST) {
						ZEND_REGSET_INCL(regset, ZREG_R1);
					}
				}
			}
			break;
		case ZEND_IS_SMALLER:
		case ZEND_IS_SMALLER_OR_EQUAL:
		case ZEND_IS_EQUAL:
		case ZEND_IS_NOT_EQUAL:
		case ZEND_IS_IDENTICAL:
		case ZEND_IS_NOT_IDENTICAL:
		case ZEND_CASE:
			op1_info = OP1_INFO();
			op2_info = OP2_INFO();
			if (!(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE))) &&
			    !(op2_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_LONG|MAY_BE_DOUBLE)))) {
				regset = ZEND_REGSET_EMPTY;
				if (!(opline->result_type & (IS_SMART_BRANCH_JMPZ|IS_SMART_BRANCH_JMPNZ))) {
					ZEND_REGSET_INCL(regset, ZREG_R0);
				}
				if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_LONG) &&
				    opline->op1_type != IS_CONST && opline->op2_type != IS_CONST) {
					if (ssa_op->op1_use != current_var &&
					    ssa_op->op2_use != current_var) {
						ZEND_REGSET_INCL(regset, ZREG_R0);
					}
				}
				if ((op1_info & MAY_BE_LONG) && (op2_info & MAY_BE_DOUBLE)) {
					ZEND_REGSET_INCL(regset, ZREG_XMM0);
				}
				if ((op1_info & MAY_BE_DOUBLE) && (op2_info & MAY_BE_LONG)) {
					ZEND_REGSET_INCL(regset, ZREG_XMM0);
				}
				if ((op1_info & MAY_BE_DOUBLE) && (op2_info & MAY_BE_DOUBLE)) {
					if (ssa_op->op1_use != current_var &&
					    ssa_op->op2_use != current_var) {
						ZEND_REGSET_INCL(regset, ZREG_XMM0);
					}
				}
				if (zend_needs_extra_reg_for_const(opline, opline->op1_type, opline->op1) ||
				    zend_needs_extra_reg_for_const(opline, opline->op2_type, opline->op2)) {
					ZEND_REGSET_INCL(regset, ZREG_R0);
				}
			}
			break;
		case ZEND_BOOL:
		case ZEND_BOOL_NOT:
		case ZEND_JMPZ:
		case ZEND_JMPNZ:
		case ZEND_JMPZNZ:
		case ZEND_JMPZ_EX:
		case ZEND_JMPNZ_EX:
			op1_info = OP1_INFO();
			if (!(op1_info & ((MAY_BE_ANY|MAY_BE_REF|MAY_BE_UNDEF)-(MAY_BE_NULL|MAY_BE_FALSE|MAY_BE_TRUE|MAY_BE_LONG|MAY_BE_DOUBLE)))) {
				regset = ZEND_REGSET_EMPTY;
				if (op1_info & MAY_BE_DOUBLE) {
					ZEND_REGSET_INCL(regset, ZREG_XMM0);
				}
				if (opline->opcode == ZEND_BOOL ||
				    opline->opcode == ZEND_BOOL_NOT ||
				    opline->opcode == ZEND_JMPZ_EX ||
				    opline->opcode == ZEND_JMPNZ_EX) {
					ZEND_REGSET_INCL(regset, ZREG_R0);
				}
			}
			break;
		case ZEND_DO_UCALL:
		case ZEND_DO_FCALL:
		case ZEND_DO_FCALL_BY_NAME:
		case ZEND_INCLUDE_OR_EVAL:
		case ZEND_GENERATOR_CREATE:
		case ZEND_YIELD:
		case ZEND_YIELD_FROM:
			regset = ZEND_REGSET_UNION(ZEND_REGSET_GP, ZEND_REGSET_FP);
			break;
		default:
			break;
	}

	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
		if (ssa_op == ssa->ops
		 && JIT_G(current_trace)[ZEND_JIT_TRACE_START_REC_SIZE].op == ZEND_JIT_TRACE_INIT_CALL
		 && (JIT_G(current_trace)[ZEND_JIT_TRACE_START_REC_SIZE].info & ZEND_JIT_TRACE_FAKE_INIT_CALL)) {
			ZEND_REGSET_INCL(regset, ZREG_R0);
			ZEND_REGSET_INCL(regset, ZREG_R1);
		}
	}

	/* %r0 is used to check EG(vm_interrupt) */
	if (JIT_G(trigger) == ZEND_JIT_ON_HOT_TRACE) {
		if (ssa_op == ssa->ops
		 && (JIT_G(current_trace)->stop == ZEND_JIT_TRACE_STOP_LOOP ||
			 JIT_G(current_trace)->stop == ZEND_JIT_TRACE_STOP_RECURSIVE_CALL)) {
#if ZTS
			ZEND_REGSET_INCL(regset, ZREG_R0);
#else
			if ((sizeof(void*) == 8 && !IS_SIGNED_32BIT(&EG(vm_interrupt)))) {
				ZEND_REGSET_INCL(regset, ZREG_R0);
			}
#endif
		}
	} else  {
		uint32_t b = ssa->cfg.map[ssa_op - ssa->ops];

		if ((ssa->cfg.blocks[b].flags & ZEND_BB_LOOP_HEADER) != 0
		 && ssa->cfg.blocks[b].start == ssa_op - ssa->ops) {
#if ZTS
			ZEND_REGSET_INCL(regset, ZREG_R0);
#else
			if ((sizeof(void*) == 8 && !IS_SIGNED_32BIT(&EG(vm_interrupt)))) {
				ZEND_REGSET_INCL(regset, ZREG_R0);
			}
#endif
		}
	}

	return regset;
}

#if defined(__clang__)
# pragma clang diagnostic pop
#endif

/*
 * Local variables:
 * tab-width: 4
 * c-basic-offset: 4
 * indent-tabs-mode: t
 * End:
 */

Youez - 2016 - github.com/yon3zu
LinuXploit