Changeset 86 in dev for BasicCompiler32
- Timestamp:
- Mar 30, 2007, 5:12:12 AM (18 years ago)
- Location:
- BasicCompiler32
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
BasicCompiler32/Compile_ProcOp.cpp
r85 r86 3 3 4 4 5 void SystemProc( const char *name){6 if( lstrcmp(name,"_System_GetEip")==0){5 void SystemProc( const UserProc &userProc ){ 6 if( userProc.GetName() == "_System_GetEip" ){ 7 7 //mov eax,dword ptr[esp] 8 8 OpBuffer[obp++]=(char)0x8B; … … 13 13 OpBuffer[obp++]=(char)0xC3; 14 14 } 15 else if( lstrcmp(name,"_System_InitDllGlobalVariables")==0){15 else if( userProc.GetName() == "_System_InitDllGlobalVariables" ){ 16 16 //////////////////////////////////////// 17 17 // DLLのグローバル領域をコンパイル … … 54 54 OpBuffer[obp++]=(char)0xC3; 55 55 } 56 else if( lstrcmp(name,"_System_InitStaticLocalVariables")==0){56 else if( userProc.GetName() == "_System_InitStaticLocalVariables" ){ 57 57 //静的ローカルオブジェクトのコンストラクタ呼び出し 58 58 … … 77 77 OpBuffer[obp++]=(char)0xC3; 78 78 } 79 else if( lstrcmp(name,"_System_Call_Destructor_of_GlobalObject")==0){79 else if( userProc.GetName() == "_System_Call_Destructor_of_GlobalObject" ){ 80 80 81 81 UserProc *pBackUserProc; … … 91 91 OpBuffer[obp++]=(char)0xC3; 92 92 } 93 else if( lstrcmp(name,"_System_GetSp")==0){93 else if( userProc.GetName() == "_System_GetSp" ){ 94 94 //mov eax,esp 95 95 op_mov_RR(REG_EAX,REG_ESP); … … 101 101 OpBuffer[obp++]=(char)0xC3; 102 102 } 103 else if( lstrcmp(name,"_allrem")==0){103 else if( userProc.GetName() == "_allrem" ){ 104 104 //乗除演算用の特殊関数(64ビット整数対応) 105 105 BYTE Buffer_allrem[]={ … … 110 110 obp+=178; 111 111 } 112 else if( lstrcmp(name,"_aullrem")==0){112 else if( userProc.GetName() == "_aullrem" ){ 113 113 //乗除演算用の特殊関数(64ビット整数対応) 114 114 BYTE Buffer_aullrem[]={ … … 127 127 obp+=117; 128 128 } 129 else if( lstrcmp(name,"_allmul")==0){129 else if( userProc.GetName() == "_allmul" ){ 130 130 //乗算用の特殊関数(64ビット整数対応) 131 131 BYTE Buffer_allmul[]={ … … 136 136 obp+=52; 137 137 } 138 else if( lstrcmp(name,"_alldiv")==0){138 else if( userProc.GetName() == "_alldiv" ){ 139 139 //除算用の特殊関数(64ビット整数対応) 140 140 BYTE Buffer_alldiv[]={ … … 145 145 obp+=170; 146 146 } 147 else if( lstrcmp(name,"_aulldiv")==0){147 else if( userProc.GetName() == "_aulldiv" ){ 148 148 //整数除算用の特殊関数(64ビット整数対応) 149 149 BYTE Buffer_aulldiv[]={ … … 161 161 obp+=104; 162 162 } 163 else if( lstrcmp(name,"_allshl")==0){163 else if( userProc.GetName() == "_allshl" ){ 164 164 //符号あり左ビットシフト用の特殊関数(64ビット整数対応) 165 165 BYTE Buffer_allshl[]={ … … 170 170 obp+=31; 171 171 } 172 else if( lstrcmp(name,"_allshr")==0){172 else if( userProc.GetName() == "_allshr" ){ 173 173 //符号あり右ビットシフト用の特殊関数(64ビット整数対応) 174 174 BYTE Buffer_allshr[]={ … … 179 179 obp+=33; 180 180 } 181 else if( lstrcmp(name,"_aullshr")==0){181 else if( userProc.GetName() == "_aullshr" ){ 182 182 //符号なし右ビットシフト用の特殊関数(64ビット整数対応) 183 183 BYTE Buffer_aullshr[]={ … … 204 204 obp+=31; 205 205 } 206 else if( userProc.GetName() == "InitializeUserTypes" ){ 207 } 206 208 else{ 207 209 SetError(); … … 245 247 AllLocalVarSize=0; 246 248 247 SystemProc( pUserProc->GetName().c_str());249 SystemProc(*pUserProc); 248 250 249 251 pUserProc->endOpAddress=obp; -
BasicCompiler32/MakePeHdr.cpp
r78 r86 26 26 *pSub_System_GC_malloc_ForObjectPtr, 27 27 *pSub_System_GC_free_for_SweepingDelete, 28 *pSubStaticMethod_System_TypeBase_InitializeUserTypes, 28 29 29 30 *pSub_allrem, … … 245 246 if( pSub_System_GC_free_for_SweepingDelete = GetSubHash( "_System_GC_free_for_SweepingDelete",1 ) ) 246 247 pSub_System_GC_free_for_SweepingDelete->Using(); 248 249 if( pSubStaticMethod_System_TypeBase_InitializeUserTypes = GetSubHash( "_System_TypeBase.InitializeUserTypes",1 ) ){ 250 pSubStaticMethod_System_TypeBase_InitializeUserTypes->Using(); 251 pSubStaticMethod_System_TypeBase_InitializeUserTypes->ThisIsSystemProc(); 252 } 247 253 248 254 pSub_allrem=GetSubHash("_allrem");
Note:
See TracChangeset
for help on using the changeset viewer.