Changeset 195 for src/VM/cil

Show
Ignore:
Timestamp:
09/14/08 01:45:22 (4 months ago)
Author:
hak
Message:

Ver.0.91.0.137
- Added OSX/GCC support!
- Can compile in XCode 3.1/GCC 4.0.1 & Visual Studio 2005.
- Runs in OSX 10.5.4 & Windows XP/Vista
- Number::toString support a radix.
- BRFALSE bug fix
- Minor code clean up

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • src/VM/cil/cilVMArgumentList.cpp

    r138 r195  
    246246        VMOBJECTREF pCallee = createObject( m_ridFunctionObject ); 
    247247        pCallee->setCallProperty( pStack->ridMethod ); 
    248         pObj->setProperty( NAME_BUILTIN_FUNCTION_PROPERTY_CALLEE, CVariable( pCallee ) ); 
     248         
     249        CVariable varPointer( pCallee ); 
     250        pObj->setProperty( NAME_BUILTIN_FUNCTION_PROPERTY_CALLEE, varPointer ); 
    249251 
    250252        //Set caller proeperty 
     
    276278                VMOBJECTREF pCallee = createObject( m_ridFunctionObject ); 
    277279                pCallee->setCallProperty( pStack->ridMethod ); 
    278                 pObjCaller->setProperty( NAME_BUILTIN_FUNCTION_PROPERTY_CALLEE, CVariable( pCallee ) ); 
    279  
    280                 pObj->setProperty( NAME_BUILTIN_FUNCTION_PROPERTY_CALLER, CVariable( pObjCaller) ); 
     280                CVariable varPointer( pCallee ); 
     281                pObjCaller->setProperty( NAME_BUILTIN_FUNCTION_PROPERTY_CALLEE, varPointer ); 
     282 
     283                CVariable varPointerObj( pObjCaller ); 
     284                pObj->setProperty( NAME_BUILTIN_FUNCTION_PROPERTY_CALLER, varPointerObj ); 
    281285        } 
    282286 
  • src/VM/cil/cilVMBind.cpp

    r138 r195  
    180180        assert( iLength >= 0 ); 
    181181 
     182        CVariable varInt( iLength, OPERAND_FLAG_DONTENUM ); 
    182183        var.refObject->setProperty( STRING_INTERNAL_LENGTH, 
    183                         CVariable( iLength, OPERAND_FLAG_DONTENUM ) ); 
     184                        varInt ); 
    184185 
    185186        //Store the ObjectRef to a static field 
  • src/VM/cil/cilVMExceptionHandling.cpp

    r138 r195  
    400400         
    401401        if( pstrName != NULL ) 
    402                 obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NAME, 
    403                                                                 CVariable( pstrName, 
    404                                                                 OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ) ); 
    405  
    406         obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NUMBER, 
    407                                                                 CVariable( iNumber, 
    408                                                                 OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ) ); 
     402        { 
     403                CVariable varString( pstrName, 
     404                                                        OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ); 
     405                obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NAME, varString ); 
     406        } 
     407        CVariable varInt( iNumber, 
     408                                         OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ); 
     409        obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NUMBER, varInt ); 
    409410 
    410411        //Push the ObjectRef to a eval stack 
     
    439440         
    440441        if( pstrName != NULL ) 
    441                 obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NAME, 
    442                                                                 CVariable( pstrName, 
    443                                                                 OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ) ); 
    444  
    445         obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NUMBER, 
    446                                                                 CVariable( iNumber, 
    447                                                                 OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ) ); 
     442        { 
     443                CVariable varString( pstrName, 
     444                                                        OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ); 
     445                obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NAME, varString ); 
     446        } 
     447 
     448        CVariable varInt( iNumber, 
     449                                         OPERAND_FLAG( OPERAND_FLAG_READONLY | OPERAND_FLAG_DONTENUM | OPERAND_FLAG_DONTDELETE ) ); 
     450        obj.refObject->setProperty( NAME_BUILTIN_ERROR_PROPERTY_NUMBER, varInt ); 
    448451 
    449452        //Push the ObjectRef to a eval stack 
  • src/VM/cil/cilVMILPool.cpp

    r138 r195  
    4848} 
    4949 
     50bool CCilVm::setILPool( const uint8_t* pILPool, const size_t size ) 
     51{ 
     52        if( m_status != VM_EXECUTE_INITIALIZING ) return false; 
     53         
     54        ILFRAGMENTINFO ilInfo; 
     55        m_CurrentILPool = ilInfo; 
     56         
     57        for( uint32_t i = 0; i < size; ++i ) 
     58                m_CurrentILPool.ILPool.push_back( *pILPool++ ); 
     59         
     60        m_pCurrentInstruction = &m_CurrentILPool.ILPool[ 0 ]; 
     61         
     62        return true; 
     63} 
    5064 
    5165} //namespace CRI 
  • src/VM/cil/cilVMObject.cpp

    r138 r195  
    213213        it = m_mapProperty.find( name ); 
    214214 
    215         OPERAND_TYPE op = (OPERAND_TYPE)OperandType( var.iOperandType ); 
    216  
    217215        if( it != m_mapProperty.end() ) 
    218216        { 
     
    239237        hash_map< wstring, CVariable >::iterator it; 
    240238        it = m_mapProperty.find( name ); 
    241  
    242         OPERAND_TYPE op = (OPERAND_TYPE)OperandType( var.iOperandType ); 
    243239 
    244240        if( it != m_mapProperty.end() ) 
     
    296292 
    297293        assert( iLength >= 0 ); 
    298         var.refObject->setProperty( STRING_INTERNAL_LENGTH, 
    299                        CVariable( iLength, OPERAND_FLAG_DONTENUM ) ); 
     294        CVariable varInt( iLength, OPERAND_FLAG_DONTENUM ); 
     295        var.refObject->setProperty( STRING_INTERNAL_LENGTH, varInt ); 
    300296 
    301297        //Store the ObjectRef to a static field 
  • src/VM/cil/cilVMOperatorBrFalse.cpp

    r138 r195  
    103103        { 
    104104        case OPERAND_INT: 
    105                 bTakeBranch = ( lhs.iValue != 0 ); 
     105                bTakeBranch = ( lhs.iValue == 0 ); 
    106106                break; 
    107107        case OPERAND_INT64: 
    108                 bTakeBranch = ( lhs.i64Value != 0 ); 
     108                bTakeBranch = ( lhs.i64Value == 0 ); 
    109109                break; 
    110110        case OPERAND_FLOAT: 
    111                 bTakeBranch = ( lhs.fValue != 0 ); 
     111                bTakeBranch = ( lhs.fValue == 0 ); 
    112112                break; 
    113113        case OPERAND_DOUBLE: 
    114                 bTakeBranch = ( lhs.dValue != 0 ); 
     114                bTakeBranch = ( lhs.dValue == 0 ); 
    115115                break; 
    116116        case OPERAND_STRING: 
     
    118118                break; 
    119119        case OPERAND_OBJECTREF: 
    120                 bTakeBranch = ( lhs.refObject != NULL ); 
     120                bTakeBranch = ( lhs.refObject == NULL ); 
    121121                break; 
    122122        case OPERAND_UNDEFINED: 
    123123        case OPERAND_NULL: 
    124124        case OPERAND_NAN: 
    125                 bTakeBranch = false; 
     125                bTakeBranch = true; 
    126126                break; 
    127127        case OPERAND_BOOLEAN: 
     
    132132                break; 
    133133        } 
    134         bTakeBranch = !bTakeBranch; 
    135          
    136134        if( bTakeBranch )  
    137135        { 
  • src/VM/cil/cilVMTemplate.cpp

    r1 r195  
    1818#include "stdafx.h" 
    1919#include "CriScript.h" 
    20 #include "msilVM.h" 
    2120namespace cri { 
    2221/***************************************************************************