Changeset 930 in svn for trunk/processor


Ignore:
Timestamp:
2012-06-26T13:53:44Z (8 years ago)
Author:
Xuefer
Message:

fix disassembler for 2.4 literal

Location:
trunk/processor
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/processor/hashtable.m4

    r844 r930  
    3737                ALLOC_INIT_ZVAL(zv);
    3838                array_init(zv);
    39                 FUNC_NAME (zv, (($2*)b->pData) TSRMLS_CC);
     39                FUNC_NAME (dasm, zv, (($2*)b->pData) TSRMLS_CC);
    4040                keysize = BUCKET_KEY_SIZE(b) + 2;
    4141                if (keysize > bufsize) {
  • trunk/processor/head.m4

    r917 r930  
    107107};
    108108/* }}} */
     109/* export: typedef struct _xc_dasm_t { const zend_op_array *active_op_array_src; } xc_dasm_t; :export {{{ */
     110/* }}} */
    109111/* {{{ memsetptr */
    110112IFAUTOCHECK(`dnl
  • trunk/processor/processor.m4

    r917 r930  
    161161    IFDASM(`
    162162        pushdefFUNC_NAME(`zval')
    163         FUNC_NAME (dst, src[0] TSRMLS_CC);
     163        FUNC_NAME (dasm, dst, src[0] TSRMLS_CC);
    164164        popdef(`FUNC_NAME')
    165165    ', `
     
    321321    IFDASM(`
    322322        pushdefFUNC_NAME(`zend_trait_alias')
    323         FUNC_NAME (dst, src[0] TSRMLS_CC);
     323        FUNC_NAME (dasm, dst, src[0] TSRMLS_CC);
    324324        popdef(`FUNC_NAME')
    325325    ', `
     
    334334    IFDASM(`
    335335        pushdefFUNC_NAME(`zend_trait_precedence')
    336         FUNC_NAME (dst, src[0] TSRMLS_CC);
     336        FUNC_NAME (dasm, dst, src[0] TSRMLS_CC);
    337337        popdef(`FUNC_NAME')
    338338    ', `
     
    523523                    zval *zv;
    524524                    ALLOC_INIT_ZVAL(zv);
    525                     *zv = src->$1.literal->constant;
     525                    *zv = dasm->active_op_array_src->literals[src->$1.constant].constant;
    526526                    zval_copy_ctor(zv);
    527527                    add_assoc_zval_ex(dst, ZEND_STRS("$1.constant"), zv);
     
    695695        processor->active_op_array_src = src;
    696696    ')
     697    IFDASM(`
     698        dasm->active_op_array_src = src;
     699    ')
    697700    {
    698701    IFRESTORE(`
     
    737740                pushdef(`UNION_znode_op_literal', `
    738741                    if (opline->$1_type == IS_CONST) {
    739                         opline->$1.constant = opline->$1.literal - src->literals;
    740                         opline->$1.literal = &dst->literals[opline->$1.constant];
     742                        opline->$1.literal = &dst->literals[opline->$1.literal - src->literals];
    741743                    }
    742744                ')
     
    751753#endif
    752754                    case ZEND_JMP:
    753                         Z_OP(opline->op1).jmp_addr = dst->opcodes + (Z_OP(opline->op1).jmp_addr - src->opcodes);
     755                        Z_OP(opline->op1).jmp_addr = &dst->opcodes[Z_OP(opline->op1).jmp_addr - src->opcodes];
    754756                        break;
    755757
     
    764766            case ZEND_JMP_SET_VAR:
    765767#endif
    766                         Z_OP(opline->op2).jmp_addr = dst->opcodes + (Z_OP(opline->op2).jmp_addr - src->opcodes);
     768                        Z_OP(opline->op2).jmp_addr = &dst->opcodes[Z_OP(opline->op2).jmp_addr - src->opcodes];
    767769                        break;
    768770
     
    971973        processor->active_op_array_src = NULL;
    972974    ')
     975    IFDASM(`
     976        dasm->active_op_array_src = NULL;
     977    ')
    973978')
    974979dnl }}}
  • trunk/processor/struct.m4

    r917 r930  
    1212        IFSTORE(  `xc_processor_t *processor, $1 *dst, const $1 * const src')
    1313        IFRESTORE(`xc_processor_t *processor, $1 *dst, const $1 * const src')
    14         IFDASM(   `zval *dst, const $1 * const src')
     14        IFDASM(   `xc_dasm_t *dasm, zval *dst, const $1 * const src')
    1515        IFASM(    `$1 *dst, const $1 * const src')
    1616        TSRMLS_DC
     
    137137        IFSTORE(  `processor, $6 $2, $6 $3')
    138138        IFRESTORE(`processor, $6 $2, $6 $3')
    139         IFDASM(   `zv, $6 $3')
     139        IFDASM(   `dasm, zv, $6 $3')
    140140        IFASM(    `$6 $2, $6 $3')
    141141        TSRMLS_CC
     
    192192                ALLOC_INIT_ZVAL(zv);
    193193                array_init(zv);
    194                 FUNC_NAME (zv, &(SRC(`$4[LOOPCOUNTER]')) TSRMLS_CC);
     194                FUNC_NAME (dasm, zv, &(SRC(`$4[LOOPCOUNTER]')) TSRMLS_CC);
    195195                add_next_index_zval(arr, zv);
    196196            }
Note: See TracChangeset for help on using the changeset viewer.