Changeset 226 in dev for trunk/abdev/BasicCompiler64/OperatorProc.cpp
- Timestamp:
- Jul 22, 2007, 4:58:47 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/OperatorProc.cpp
r206 r226 2 2 3 3 #include <jenga/include/smoothie/LexicalAnalysis.h> 4 5 #include <Compiler.h> 4 6 5 7 #include "../BasicCompiler_Common/common.h" … … 17 19 if( method ){ 18 20 //mov rcx,reg 19 op_mov_RR(REG_RCX,reg);21 compiler.codeGenerator.op_mov_RR(REG_RCX,reg); 20 22 21 23 //call DestructorProcAddr 22 op_call( &method->GetUserProc() );24 compiler.codeGenerator.op_call( &method->GetUserProc() ); 23 25 } 24 26 25 27 //mov rcx,reg 26 op_mov_RR(REG_RCX,reg);28 compiler.codeGenerator.op_mov_RR(REG_RCX,reg); 27 29 28 30 //call free 29 31 extern const UserProc *pSub_free; 30 op_call(pSub_free);32 compiler.codeGenerator.op_call(pSub_free); 31 33 } 32 34 … … 119 121 120 122 //mov rcx,object_size 121 op_mov_RV(sizeof(_int64),REG_RCX,object_size);123 compiler.codeGenerator.op_mov_RV(sizeof(_int64),REG_RCX,object_size); 122 124 123 125 //call calloc 124 126 extern const UserProc *pSub_calloc; 125 op_call(pSub_calloc);127 compiler.codeGenerator.op_call(pSub_calloc); 126 128 127 129 //mov r13,rax 128 op_mov_RR(REG_R13,REG_RAX);130 compiler.codeGenerator.op_mov_RR(REG_R13,REG_RAX); 129 131 130 132 ///////////////////////////////////////////// … … 169 171 if(reg1==REG_RDX||reg1==REG_R8){ 170 172 //mov r14,reg1 171 op_mov_RR(REG_R14,reg1);173 compiler.codeGenerator.op_mov_RR(REG_R14,reg1); 172 174 reg1=REG_R14; 173 175 } … … 177 179 if( pUserProc->ReturnType().IsStruct() ){ 178 180 //mov r8,reg2 179 op_mov_RR(REG_R8,reg2);181 compiler.codeGenerator.op_mov_RR(REG_R8,reg2); 180 182 } 181 183 else{ 182 184 //mov rdx,reg2 183 op_mov_RR(REG_RDX,reg2);185 compiler.codeGenerator.op_mov_RR(REG_RDX,reg2); 184 186 } 185 187 } … … 187 189 if( pUserProc->ReturnType().IsStruct() ){ 188 190 //mov rdx,r13 189 op_mov_RR(REG_RDX,REG_R13);191 compiler.codeGenerator.op_mov_RR(REG_RDX,REG_R13); 190 192 } 191 193 192 194 //mov rcx,reg1 193 op_mov_RR(REG_RCX,reg1);195 compiler.codeGenerator.op_mov_RR(REG_RCX,reg1); 194 196 195 197 //call operator_proc 196 op_call(pUserProc);198 compiler.codeGenerator.op_call(pUserProc); 197 199 198 200 if( !pUserProc->ReturnType().IsNull() ){ … … 200 202 201 203 //mov r13,rax 202 op_mov_RR(REG_R13,REG_RAX);204 compiler.codeGenerator.op_mov_RR(REG_R13,REG_RAX); 203 205 } 204 206 … … 249 251 250 252 //mov reg1,r13 251 op_mov_RR(reg1,REG_R13);253 compiler.codeGenerator.op_mov_RR(reg1,REG_R13); 252 254 } 253 255 … … 338 340 339 341 //mov reg,rax 340 op_mov_RR(reg,REG_RAX);342 compiler.codeGenerator.op_mov_RR(reg,REG_RAX); 341 343 342 344 /////////////////////////////////////////////
Note:
See TracChangeset
for help on using the changeset viewer.