Changeset 358 in dev
- Timestamp:
- Nov 6, 2007, 2:35:15 AM (17 years ago)
- Location:
- trunk/abdev
- Files:
-
- 10 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler32/Compile_Func.cpp
r357 r358 20 20 if( lstrcmpi( FuncName, "_System_GetNowScopeCatchAddresses" ) == 0 )return FUNC_SYSTEM_GET_NOW_SCOPE_CATCH_ADDRESS; 21 21 if( lstrcmpi( FuncName, "_System_GetBp" ) == 0 ) return FUNC_SYSTEM_GET_BP; 22 if( lstrcmpi( FuncName, "_System_GetSp" ) == 0 ) return FUNC_SYSTEM_GET_SP; 22 23 if( lstrcmpi( FuncName, "GetDouble" ) == 0 ) return FUNC_GETDOUBLE; 23 24 if( lstrcmpi( FuncName, "GetSingle" ) == 0 ) return FUNC_GETSINGLE; … … 582 583 compiler.codeGenerator.op_mov_RR(REG_EAX,REG_EBP); 583 584 } 585 void Opcode_Func_System_Get_Sp() 586 { 587 //mov eax,esp 588 compiler.codeGenerator.op_mov_RR(REG_EAX,REG_ESP); 589 } 584 590 585 591 void Opcode_Func_GetPtrData(const char *Parameter,const int type){ … … 679 685 case FUNC_SYSTEM_GET_NOW_SCOPE_CATCH_ADDRESS: 680 686 if( isCallOn ) Exception::Opcode_Func_System_GetNowScopeCatchAddress(); 681 resultType.SetBasicType( DEF_ LONG);687 resultType.SetBasicType( DEF_PTR_VOID ); 682 688 break; 683 689 case FUNC_SYSTEM_GET_BP: … … 685 691 resultType.SetBasicType( DEF_LONG ); 686 692 break; 693 case FUNC_SYSTEM_GET_SP: 694 if( isCallOn ) Opcode_Func_System_Get_Sp(); 695 resultType.SetBasicType( DEF_LONG ); 696 break; 687 697 688 698 case FUNC_GETDOUBLE: -
trunk/abdev/BasicCompiler32/Compile_ProcOp.cpp
r355 r358 100 100 UserProc::CompileStartForUserProc( pBackUserProc ); 101 101 102 103 //ret104 compiler.codeGenerator.op_ret();105 }106 else if( userProc.GetName() == "_System_GetSp" ){107 //mov eax,esp108 compiler.codeGenerator.op_mov_RR(REG_EAX,REG_ESP);109 110 //add eax,PTR_SIZE111 compiler.codeGenerator.op_add_RV8(REG_EAX,PTR_SIZE);112 102 113 103 //ret -
trunk/abdev/BasicCompiler32/FunctionValue.h
r357 r358 19 19 #define FUNC_SYSTEM_GET_NOW_SCOPE_CATCH_ADDRESS 0x0623 20 20 #define FUNC_SYSTEM_GET_BP 0x0624 21 #define FUNC_SYSTEM_GET_SP 0x0625 21 22 22 23 //ポインタ -
trunk/abdev/BasicCompiler32/MakePeHdr.cpp
r357 r358 33 33 *pSub_System_Call_Destructor_of_GlobalObject, 34 34 *pSub_System_End, 35 *pSub_System_GetSp,36 35 *pSub_pow, 37 36 *pSub_calloc, … … 252 251 if(pSub_System_End=GetSubHash("_System_End",1)){ 253 252 pSub_System_End->Using(); 254 }255 256 if(pSub_System_GetSp=GetSubHash("_System_GetSp",1)){257 pSub_System_GetSp->Using();258 pSub_System_GetSp->ThisIsSystemProc();259 253 } 260 254 -
trunk/abdev/BasicCompiler64/Compile_Func.cpp
r357 r358 17 17 if( lstrcmpi( FuncName, "__delegate_staticmethod_call" ) == 0 ) return FUNC_DELEGATE_STATICMETHOD_CALL; 18 18 if( lstrcmpi( FuncName, "_System_GetNowScopeCatchAddresses" ) == 0 )return FUNC_SYSTEM_GET_NOW_SCOPE_CATCH_ADDRESS; 19 if( lstrcmpi( FuncName, "_System_GetBp" ) == 0 ) return FUNC_SYSTEM_GET_BP; 20 if( lstrcmpi( FuncName, "_System_GetSp" ) == 0 ) return FUNC_SYSTEM_GET_SP; 19 21 if( lstrcmpi( FuncName, "GetDouble" ) == 0 ) return FUNC_GETDOUBLE; 20 22 if( lstrcmpi( FuncName, "GetSingle" ) == 0 ) return FUNC_GETSINGLE; … … 447 449 compiler.codeGenerator.op_mov_RR(REG_RAX,REG_RBP); 448 450 } 451 void Opcode_Func_System_Get_Sp() 452 { 453 //mov rax,rsp 454 compiler.codeGenerator.op_mov_RR(REG_RAX,REG_RSP); 455 } 449 456 450 457 void Opcode_Func_GetPtrData( const char *Parameter, const int type ){ … … 501 508 case FUNC_SYSTEM_GET_NOW_SCOPE_CATCH_ADDRESS: 502 509 if( isCallOn ) Exception::Opcode_Func_System_GetNowScopeCatchAddress(); 503 resultType.SetBasicType( DEF_ LONG);510 resultType.SetBasicType( DEF_PTR_VOID ); 504 511 break; 505 512 case FUNC_SYSTEM_GET_BP: 506 513 if( isCallOn ) Opcode_Func_System_Get_Bp(); 507 resultType.SetBasicType( DEF_LONG ); 514 resultType.SetBasicType( DEF_INT64 ); 515 break; 516 case FUNC_SYSTEM_GET_SP: 517 if( isCallOn ) Opcode_Func_System_Get_Sp(); 518 resultType.SetBasicType( DEF_INT64 ); 508 519 break; 509 520 -
trunk/abdev/BasicCompiler64/Compile_ProcOp.cpp
r355 r358 117 117 //add rsp,8 118 118 compiler.codeGenerator.op_add_RV(REG_RSP,0x8); 119 120 //ret121 compiler.codeGenerator.op_ret();122 }123 else if( userProc.GetName() == "_System_GetSp" ){124 //mov rax,rsp125 compiler.codeGenerator.op_mov_RR(REG_RAX,REG_RSP);126 127 //add rax,PTR_SIZE128 compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);129 119 130 120 //ret -
trunk/abdev/BasicCompiler64/FunctionValue.h
r357 r358 18 18 #define FUNC_SYSTEM_GET_NOW_SCOPE_CATCH_ADDRESS 0x0623 19 19 #define FUNC_SYSTEM_GET_BP 0x0624 20 #define FUNC_SYSTEM_GET_SP 0x0625 20 21 21 22 //ポインタ -
trunk/abdev/BasicCompiler64/MakePeHdr.cpp
r357 r358 33 33 *pSub_System_Call_Destructor_of_GlobalObject, 34 34 *pSub_System_End, 35 *pSub_System_GetSp,36 35 *pSub_pow, 37 36 *pSub_calloc, … … 245 244 if(pSub_System_End=GetSubHash("_System_End",1)){ 246 245 pSub_System_End->Using(); 247 }248 249 if(pSub_System_GetSp=GetSubHash("_System_GetSp",1)){250 pSub_System_GetSp->Using();251 pSub_System_GetSp->ThisIsSystemProc();252 246 } 253 247 -
trunk/abdev/BasicCompiler_Common/include/ver.h
r355 r358 6 6 // バージョン付加文字列 7 7 #ifdef _AMD64_ 8 #define VER_INFO "(x64) (rev.3 67)"8 #define VER_INFO "(x64) (rev.373)" 9 9 #else 10 #define VER_INFO "(rev.3 67)"10 #define VER_INFO "(rev.373)" 11 11 #endif -
trunk/abdev/BasicCompiler_Common/src/Exception.cpp
r357 r358 51 51 52 52 char temporary[1024]; 53 lstrcpy( temporary, " _System_pobj_AllThreads->GetCurrentException()->BeginTryScope( _System_GetNowScopeCatchAddresses() As VoidPtr, _System_GetBp() As LONG_PTR, _System_GetSp() As LONG_PTR )" );53 lstrcpy( temporary, "ExceptionService.BeginTryScope( _System_GetNowScopeCatchAddresses() As VoidPtr, _System_GetBp() As LONG_PTR, _System_GetSp() As LONG_PTR )" ); 54 54 MakeMiddleCode( temporary ); 55 55 ChangeOpcode( temporary );
Note:
See TracChangeset
for help on using the changeset viewer.