Index: BasicCompiler32/NumOpe_Arithmetic.cpp
===================================================================
--- BasicCompiler32/NumOpe_Arithmetic.cpp	(revision 3)
+++ BasicCompiler32/NumOpe_Arithmetic.cpp	(revision 66)
@@ -11,9 +11,5 @@
 
 		//fistp qword ptr[esp]
-		fpu_cast();
-		OpBuffer[obp++]=(char)0xDF;
-		OpBuffer[obp++]=(char)0x3C;
-		OpBuffer[obp++]=(char)0x24;
-		fpu_cast_end();
+		op_fistp_ptr_esp( sizeof(_int64) );
 
 		//pop ebx
@@ -31,9 +27,5 @@
 
 		//fistp qword ptr[esp]
-		fpu_cast();
-		OpBuffer[obp++]=(char)0xDF;
-		OpBuffer[obp++]=(char)0x3C;
-		OpBuffer[obp++]=(char)0x24;
-		fpu_cast_end();
+		op_fistp_ptr_esp( sizeof(_int64) );
 
 		//pop ebx
@@ -84,9 +76,5 @@
 
 		//fistp qword ptr[esp]
-		fpu_cast();
-		OpBuffer[obp++]=(char)0xDF;
-		OpBuffer[obp++]=(char)0x3C;
-		OpBuffer[obp++]=(char)0x24;
-		fpu_cast_end();
+		op_fistp_ptr_esp( sizeof(_int64) );
 
 		//pop eax
@@ -104,9 +92,5 @@
 
 		//fistp qword ptr[esp]
-		fpu_cast();
-		OpBuffer[obp++]=(char)0xDF;
-		OpBuffer[obp++]=(char)0x3C;
-		OpBuffer[obp++]=(char)0x24;
-		fpu_cast_end();
+		op_fistp_ptr_esp( sizeof(_int64) );
 
 		//pop eax
@@ -510,9 +494,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 		else if(type[sp-1]==DEF_SINGLE){
@@ -521,9 +501,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 
@@ -539,9 +515,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 		else if(type[sp-2]==DEF_SINGLE){
@@ -550,9 +522,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 
@@ -786,9 +754,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 		else if(type[sp-1]==DEF_SINGLE){
@@ -797,9 +761,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 
@@ -815,9 +775,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 		else if(type[sp-2]==DEF_SINGLE){
@@ -826,9 +782,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 
@@ -1119,9 +1071,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1133,9 +1081,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1160,9 +1104,5 @@
 
 			//fistp qword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDF;
-			OpBuffer[obp++]=(char)0x3C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(_int64) );
 
 			//pop eax
@@ -1180,9 +1120,5 @@
 
 			//fistp qword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDF;
-			OpBuffer[obp++]=(char)0x3C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(_int64) );
 
 			//pop eax
@@ -1245,9 +1181,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1259,9 +1191,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1288,9 +1216,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 		else if(type[sp-2]==DEF_SINGLE){
@@ -1299,9 +1223,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 
@@ -1353,9 +1273,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1367,9 +1283,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1394,9 +1306,5 @@
 
 			//fistp qword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDF;
-			OpBuffer[obp++]=(char)0x3C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(_int64) );
 
 			//pop eax
@@ -1414,9 +1322,5 @@
 
 			//fistp qword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDF;
-			OpBuffer[obp++]=(char)0x3C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(_int64) );
 
 			//pop eax
@@ -1490,9 +1394,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1504,9 +1404,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 
 			//pop ecx
@@ -1533,9 +1429,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 		else if(type[sp-2]==DEF_SINGLE){
@@ -1544,9 +1436,5 @@
 
 			//fistp dword ptr[esp]
-			fpu_cast();
-			OpBuffer[obp++]=(char)0xDB;
-			OpBuffer[obp++]=(char)0x1C;
-			OpBuffer[obp++]=(char)0x24;
-			fpu_cast_end();
+			op_fistp_ptr_esp( sizeof(long) );
 		}
 
