Changeset 226 in dev for trunk/abdev/BasicCompiler64/stack_frame.cpp
- Timestamp:
- Jul 22, 2007, 4:58:47 AM (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/abdev/BasicCompiler64/stack_frame.cpp
r220 r226 1 1 #include "stdafx.h" 2 3 #include <Compiler.h> 2 4 3 5 #include "../BasicCompiler_Common/common.h" … … 42 44 void CStackFrame::mov_sp( int reg ){ 43 45 //mov reg,rsp 44 op_mov_RR( reg, REG_RSP );46 compiler.codeGenerator.op_mov_RR( reg, REG_RSP ); 45 47 46 48 //add reg,now_sp 47 op_add_RV( reg, now_sp );49 compiler.codeGenerator.op_add_RV( reg, now_sp ); 48 50 49 51 //スケジュールをセット … … 59 61 60 62 //mov qword ptr[rsp+offset],reg 61 op_mov_MR(sizeof(_int64),reg,REG_RSP,now_sp,MOD_BASE_DISP32);63 compiler.codeGenerator.op_mov_MR(sizeof(_int64),reg,REG_RSP,now_sp,MOD_BASE_DISP32); 62 64 63 65 //スケジュールをセット … … 74 76 if(varSize==sizeof(double)){ 75 77 //movlpd qword ptr[rsp+offset],xmm_reg 76 op_movlpd_MR(xmm_reg,REG_RSP,now_sp,MOD_BASE_DISP32);78 compiler.codeGenerator.op_movlpd_MR(xmm_reg,REG_RSP,now_sp,MOD_BASE_DISP32); 77 79 } 78 80 if(varSize==sizeof(float)){ … … 94 96 void CStackFrame::ref_offset_data( int reg, int sp_offset ){ 95 97 //mov reg,qword ptr[rsp+offset] ※スタックフレームを利用 96 op_mov_RM(sizeof(_int64),reg,REG_RSP,sp_offset,MOD_BASE_DISP32);98 compiler.codeGenerator.op_mov_RM(sizeof(_int64),reg,REG_RSP,sp_offset,MOD_BASE_DISP32); 97 99 98 100 //スケジュールをセット … … 107 109 if(varSize==sizeof(double)){ 108 110 //movlpd xmm_reg,qword ptr[rsp+offset] 109 op_movlpd_RM(xmm_reg,REG_RSP,now_sp,MOD_BASE_DISP32);111 compiler.codeGenerator.op_movlpd_RM(xmm_reg,REG_RSP,now_sp,MOD_BASE_DISP32); 110 112 } 111 113 if(varSize==sizeof(float)){
Note:
See TracChangeset
for help on using the changeset viewer.