Index: trunk/abdev/BasicCompiler64/Compile_Object.cpp
===================================================================
--- trunk/abdev/BasicCompiler64/Compile_Object.cpp	(revision 206)
+++ trunk/abdev/BasicCompiler64/Compile_Object.cpp	(revision 226)
@@ -1,3 +1,5 @@
 #include "stdafx.h"
+
+#include <Compiler.h>
 
 #include "../BasicCompiler_Common/common.h"
@@ -113,19 +115,19 @@
 		//※添え字上限値であることを考慮
 		//add rax,1
-		op_add_RV(REG_RAX,1);
+		compiler.codeGenerator.op_add_RV(REG_RAX,1);
 
 		//オブジェクトの個数をrbxに一時保持
 		//※rbxは関数が呼ばれても不変
 		//mov rbx,rax
-		op_mov_RR(REG_RBX,REG_RAX);
+		compiler.codeGenerator.op_mov_RR(REG_RBX,REG_RAX);
 
 		//imul rax,size
-		op_imul_RV(sizeof(_int64),REG_RAX,typeSize);
+		compiler.codeGenerator.op_imul_RV(sizeof(_int64),REG_RAX,typeSize);
 
 		//add rax,OBJECT_HEAD_SIZE
-		op_add_RV(REG_RAX,OBJECT_HEAD_SIZE);
+		compiler.codeGenerator.op_add_RV(REG_RAX,OBJECT_HEAD_SIZE);
 
 		//mov rcx,rax
-		op_mov_RR(REG_RCX,REG_RAX);
+		compiler.codeGenerator.op_mov_RR(REG_RCX,REG_RAX);
 	}
 	else{
@@ -133,8 +135,8 @@
 		//※rbxは関数が呼ばれても不変
 		//mov rbx,1
-		op_mov_RV(sizeof(_int64),REG_RBX,1);
+		compiler.codeGenerator.op_mov_RV(sizeof(_int64),REG_RBX,1);
 
 		//mov rcx,typeSize+OBJECT_HEAD_SIZE
-		op_mov_RV(sizeof(_int64),REG_RCX,typeSize+OBJECT_HEAD_SIZE);
+		compiler.codeGenerator.op_mov_RV(sizeof(_int64),REG_RCX,typeSize+OBJECT_HEAD_SIZE);
 	}
 
@@ -145,5 +147,5 @@
 		//call _System_GC_malloc_ForObject
 		extern const UserProc *pSub_System_GC_malloc_ForObject;
-		op_call(pSub_System_GC_malloc_ForObject);
+		compiler.codeGenerator.op_call(pSub_System_GC_malloc_ForObject);
 	}
 	else{
@@ -153,5 +155,5 @@
 		//call _System_GC_malloc_ForObjectPtr
 		extern const UserProc *pSub_System_GC_malloc_ForObjectPtr;
-		op_call(pSub_System_GC_malloc_ForObjectPtr);
+		compiler.codeGenerator.op_call(pSub_System_GC_malloc_ForObjectPtr);
 	}
 
@@ -168,15 +170,15 @@
 
 	//mov qword ptr[rax],rbx（オブジェクトの個数）
-	op_mov_MR(sizeof(_int64),REG_RBX,REG_RAX,0,MOD_BASE);
-
-	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_mov_MR(sizeof(_int64),REG_RBX,REG_RAX,0,MOD_BASE);
+
+	//add rax,PTR_SIZE
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
 	//mov qword ptr[rax],typeSize（オブジェクトのサイズ）
-	op_mov_MV(sizeof(_int64),REG_RAX,0,NON_OFFSET,typeSize);
-
-	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_mov_MV(sizeof(_int64),REG_RAX,0,NON_OFFSET,typeSize);
+
+	//add rax,PTR_SIZE
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
@@ -185,5 +187,5 @@
 
 	//mov rcx,DestructorProcAddr（デストラクタの関数ポインタ）
-	op_mov_RV(sizeof(_int64),REG_RCX,0);
+	compiler.codeGenerator.op_mov_RV(sizeof(_int64),REG_RCX,0);
 	obp-=sizeof(long);
 	pobj_SubAddrSchedule->add(&method->GetUserProc(),0);
@@ -192,13 +194,13 @@
 
 	//mov qword ptr[rax],rcx
-	op_mov_MR(sizeof(_int64),REG_RCX,REG_RAX,0,MOD_BASE);
-
-	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_mov_MR(sizeof(_int64),REG_RCX,REG_RAX,0,MOD_BASE);
+
+	//add rax,PTR_SIZE
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
 	// リザーブ領域
 	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
@@ -229,5 +231,5 @@
 
 	//sub rax,OBJECT_HEAD_SIZE
-	op_sub_RV(sizeof(_int64),REG_RAX,OBJECT_HEAD_SIZE);
+	compiler.codeGenerator.op_sub_RV(sizeof(_int64),REG_RAX,OBJECT_HEAD_SIZE);
 
 	//mov qword ptr[rsp+offset],rax     ※スタックフレームを利用
@@ -236,31 +238,31 @@
 
 	//mov rbx,qword ptr[rax]（オブジェクトの個数）
-	op_mov_RM(sizeof(_int64),REG_RBX,REG_RAX,0,MOD_BASE);
-
-	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_RBX,REG_RAX,0,MOD_BASE);
+
+	//add rax,PTR_SIZE
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
 	//mov rsi,qword ptr[rax]（オブジェクトのサイズ）
-	op_mov_RM(sizeof(_int64),REG_RSI,REG_RAX,0,MOD_BASE);
-
-	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_RSI,REG_RAX,0,MOD_BASE);
+
+	//add rax,PTR_SIZE
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
 	//mov rdi,qword ptr[rax]（デストラクタの関数ポインタ）
-	op_mov_RM(sizeof(_int64),REG_RDI,REG_RAX,0,MOD_BASE);
-
-	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_mov_RM(sizeof(_int64),REG_RDI,REG_RAX,0,MOD_BASE);
+
+	//add rax,PTR_SIZE
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
 	// リザーブ領域
 	//add rax,PTR_SIZE
-	op_add_RV(REG_RAX,PTR_SIZE);
+	compiler.codeGenerator.op_add_RV(REG_RAX,PTR_SIZE);
 
 
 	//mov rcx,rax
-	op_mov_RR(REG_RCX,REG_RAX);
+	compiler.codeGenerator.op_mov_RR(REG_RCX,REG_RAX);
 
 
@@ -280,8 +282,8 @@
 
 	//add rcx,rsi
-	op_add64_reg(REG_RCX,REG_RSI);
+	compiler.codeGenerator.op_add64_reg(REG_RCX,REG_RSI);
 
 	//sub rbx,1
-	op_sub_RV(sizeof(_int64),REG_RBX,1);
+	compiler.codeGenerator.op_sub_RV(sizeof(_int64),REG_RBX,1);
 
 	//jnz ↑
@@ -302,10 +304,10 @@
 		//call _System_GC_free_for_SweepingDelete
 		extern const UserProc *pSub_System_GC_free_for_SweepingDelete;
-		op_call(pSub_System_GC_free_for_SweepingDelete);
+		compiler.codeGenerator.op_call(pSub_System_GC_free_for_SweepingDelete);
 	}
 	else{
 		//call free
 		extern const UserProc *pSub_free;
-		op_call(pSub_free);
+		compiler.codeGenerator.op_call(pSub_free);
 	}
 }
