Changeset 226 in dev for trunk/abdev/BasicCompiler64/Compile_Statement.cpp
- Timestamp:
- Jul 22, 2007, 4:58:47 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/Compile_Statement.cpp
r224 r226 113 113 if( resultType.IsStruct() ){ 114 114 //mov r14,rax 115 op_mov_RR(REG_R14,REG_RAX);115 compiler.codeGenerator.op_mov_RR(REG_R14,REG_RAX); 116 116 117 117 FreeTempObject(REG_R14,&resultType.GetClass()); … … 166 166 167 167 //cmp rax,0 168 op_cmp_value(resultType.GetSize(),REG_RAX,0);168 compiler.codeGenerator.op_cmp_value(resultType.GetSize(),REG_RAX,0); 169 169 } 170 170 } … … 421 421 422 422 //cmp rax,0 423 op_cmp_value(resultType.GetSize(),REG_RAX,0);423 compiler.codeGenerator.op_cmp_value(resultType.GetSize(),REG_RAX,0); 424 424 425 425 //je [カウンタ減少の場合の判定] … … 451 451 452 452 //cmp rax,0 453 op_cmp_value(resultType.GetSize(),REG_RAX,0);453 compiler.codeGenerator.op_cmp_value(resultType.GetSize(),REG_RAX,0); 454 454 455 455 ErrorStep: … … 761 761 if(reg2!=REG_RDX){ 762 762 //mov rdx,reg2 763 op_mov_RR(REG_RDX,reg2);763 compiler.codeGenerator.op_mov_RR(REG_RDX,reg2); 764 764 } 765 765 … … 768 768 769 769 //call operator_proc ※ ==演算子 770 op_call(pUserProc);770 compiler.codeGenerator.op_call(pUserProc); 771 771 772 772 //test rax,rax 773 op_test(REG_RAX,REG_RAX);773 compiler.codeGenerator.op_test(REG_RAX,REG_RAX); 774 774 775 775 //jne ... … … 788 788 789 789 //comiss xmm_reg1,xmm_reg2 790 op_comisd(xmm_reg,REG_XMM4);790 compiler.codeGenerator.op_comisd(xmm_reg,REG_XMM4); 791 791 } 792 792 else if(type1.IsSingle()){ … … 800 800 801 801 //comiss xmm_reg1,xmm_reg2 802 op_comiss(xmm_reg,REG_XMM4);802 compiler.codeGenerator.op_comiss(xmm_reg,REG_XMM4); 803 803 } 804 804 else{ … … 811 811 812 812 //cmp reg2,r14 813 op_cmp_reg(GetTypeSize(i2,-1),reg2,REG_R14);813 compiler.codeGenerator.op_cmp_reg(GetTypeSize(i2,-1),reg2,REG_R14); 814 814 } 815 815 … … 893 893 //call _System_GetEip 894 894 extern const UserProc *pSub_System_GetEip; 895 op_call(pSub_System_GetEip);895 compiler.codeGenerator.op_call(pSub_System_GetEip); 896 896 897 897 //add rax,offset(Gosubステートメントの最終ポイント) 898 898 int schedule=obp,schedule2; 899 op_add_RV(REG_RAX,0);899 compiler.codeGenerator.op_add_RV(REG_RAX,0); 900 900 schedule2=obp-sizeof(long); 901 901 … … 1032 1032 1033 1033 //movsd qword ptr[reg_ptr],xmm0 1034 op_movsd_MR(REG_XMM0,reg_ptr,0,MOD_BASE);1034 compiler.codeGenerator.op_movsd_MR(REG_XMM0,reg_ptr,0,MOD_BASE); 1035 1035 } 1036 1036 else if(type==DEF_SINGLE){ … … 1038 1038 1039 1039 //movss dword ptr[reg_ptr],xmm0 1040 op_movss_MR(REG_XMM0,reg_ptr,0,MOD_BASE);1040 compiler.codeGenerator.op_movss_MR(REG_XMM0,reg_ptr,0,MOD_BASE); 1041 1041 } 1042 1042 else{ … … 1044 1044 1045 1045 //mov ptr[reg_ptr],rcx 1046 op_mov_MR(GetTypeSize(type,-1),REG_RCX,reg_ptr,0,MOD_BASE);1047 } 1048 } 1046 compiler.codeGenerator.op_mov_MR(GetTypeSize(type,-1),REG_RCX,reg_ptr,0,MOD_BASE); 1047 } 1048 }
Note:
See TracChangeset
for help on using the changeset viewer.