/[dotgnu-pnet]/pnet/engine/cvmc_obj.c
ViewVC logotype

Diff of /pnet/engine/cvmc_obj.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.19 by rweather, Sat Mar 6 09:47:38 2004 UTC revision 1.20 by ktreichel, Tue Aug 23 10:45:52 2005 UTC
# Line 151  static void CVMLoadField(ILCoder *coder, Line 151  static void CVMLoadField(ILCoder *coder,
151             to the start of the managed value on the stack */             to the start of the managed value on the stack */
152          if(ptrType == ILEngineType_MV)          if(ptrType == ILEngineType_MV)
153          {          {
154                  ptrSize = GetTypeSize(objectType);                  ptrSize = GetTypeSize(_ILCoderToILCVMCoder(coder)->process, objectType);
155                  CVM_OUT_WIDE(COP_MADDR, ptrSize);                  CVM_OUT_WIDE(COP_MADDR, ptrSize);
156          }          }
157          else          else
# Line 251  static void CVMLoadField(ILCoder *coder, Line 251  static void CVMLoadField(ILCoder *coder,
251          {          {
252                  /* Access a value type */                  /* Access a value type */
253                  CVMLoadValueField(coder, offset,                  CVMLoadValueField(coder, offset,
254                                                    _ILSizeOfTypeLocked(fieldType), mayBeNull);                                                    _ILSizeOfTypeLocked(((ILCVMCoder *)coder)->process,
255                                                                                                    fieldType), mayBeNull);
256          }          }
257          else          else
258          {          {
# Line 264  static void CVMLoadField(ILCoder *coder, Line 265  static void CVMLoadField(ILCoder *coder,
265             to remove the managed value */             to remove the managed value */
266          if(ptrType == ILEngineType_MV)          if(ptrType == ILEngineType_MV)
267          {          {
268                  fieldSize = GetStackTypeSize(fieldType);                  fieldSize = GetStackTypeSize(_ILCoderToILCVMCoder(coder)->process,
269                                                                             fieldType);
270                  CVM_OUT_DWIDE(COP_SQUASH, fieldSize, ptrSize);                  CVM_OUT_DWIDE(COP_SQUASH, fieldSize, ptrSize);
271                  CVM_ADJUST(-((ILInt32)ptrSize));                  CVM_ADJUST(-((ILInt32)ptrSize));
272          }          }
# Line 627  static void CVMStoreFieldReverse(ILCoder Line 629  static void CVMStoreFieldReverse(ILCoder
629          }          }
630          else if(ILType_IsValueType(fieldType))          else if(ILType_IsValueType(fieldType))
631          {          {
632                  size = _ILSizeOfTypeLocked(fieldType);                  size = _ILSizeOfTypeLocked(_ILCoderToILCVMCoder(coder)->process,
633                                                                       fieldType);
634                  CVM_OUT_WIDE(COP_MWRITE_R, size);                  CVM_OUT_WIDE(COP_MWRITE_R, size);
635          }          }
636          else          else
# Line 777  static void CVMStoreField(ILCoder *coder Line 780  static void CVMStoreField(ILCoder *coder
780          else if(ILType_IsValueType(fieldType))          else if(ILType_IsValueType(fieldType))
781          {          {
782                  /* Store a managed value */                  /* Store a managed value */
783                  size = _ILSizeOfTypeLocked(fieldType);                  size = _ILSizeOfTypeLocked(_ILCoderToILCVMCoder(coder)->process,
784                                                                       fieldType);
785                  CVM_OUT_WIDE(COP_MWRITE, size);                  CVM_OUT_WIDE(COP_MWRITE, size);
786          }          }
787          else          else
# Line 791  static void CVMCoder_StoreField(ILCoder Line 795  static void CVMCoder_StoreField(ILCoder
795                                                              ILType *objectType, ILField *field,                                                              ILType *objectType, ILField *field,
796                                                              ILType *fieldType, ILEngineType valueType)                                                              ILType *fieldType, ILEngineType valueType)
797  {  {
798          ILUInt32 valueSize = GetStackTypeSize(fieldType);          ILUInt32 valueSize = GetStackTypeSize(((ILCVMCoder *)coder)->process, fieldType);
799    
800  #ifdef IL_NATIVE_INT64  #ifdef IL_NATIVE_INT64
801          /* Convert I4 to I if necessary */          /* Convert I4 to I if necessary */
# Line 811  static void CVMCoder_StoreField(ILCoder Line 815  static void CVMCoder_StoreField(ILCoder
815  static void CVMCoder_StoreStaticField(ILCoder *coder, ILField *field,  static void CVMCoder_StoreStaticField(ILCoder *coder, ILField *field,
816                                                                    ILType *fieldType, ILEngineType valueType)                                                                    ILType *fieldType, ILEngineType valueType)
817  {  {
818          ILUInt32 valueSize = GetStackTypeSize(fieldType);          ILUInt32 valueSize = GetStackTypeSize(_ILCoderToILCVMCoder(coder)->process,
819                                                                                      fieldType);
820          ILClass *classInfo;          ILClass *classInfo;
821  #ifdef IL_CONFIG_PINVOKE  #ifdef IL_CONFIG_PINVOKE
822          ILPInvoke *pinvoke;          ILPInvoke *pinvoke;
# Line 899  static void CVMCoder_CopyObject(ILCoder Line 904  static void CVMCoder_CopyObject(ILCoder
904          }          }
905    
906          /* Copy the memory block */          /* Copy the memory block */
907          size = _ILSizeOfTypeLocked(ILType_FromValueType(classInfo));          size = _ILSizeOfTypeLocked(_ILCoderToILCVMCoder(coder)->process,
908                                                                    ILType_FromValueType(classInfo));
909          CVM_OUT_WIDE(COP_MEMCPY, size);          CVM_OUT_WIDE(COP_MEMCPY, size);
910          CVM_ADJUST(-2);          CVM_ADJUST(-2);
911  }  }
# Line 954  static void CVMCoder_InitObject(ILCoder Line 960  static void CVMCoder_InitObject(ILCoder
960          }          }
961    
962          /* Initialize the block to all-zeroes */          /* Initialize the block to all-zeroes */
963          size = _ILSizeOfTypeLocked(ILType_FromValueType(classInfo));          size = _ILSizeOfTypeLocked(_ILCoderToILCVMCoder(coder)->process,
964                                                                    ILType_FromValueType(classInfo));
965          CVM_OUT_WIDE(COP_MEMZERO, size);          CVM_OUT_WIDE(COP_MEMZERO, size);
966          CVM_ADJUST(-1);          CVM_ADJUST(-1);
967  }  }
# Line 1074  static void CVMCoder_PushToken(ILCoder * Line 1081  static void CVMCoder_PushToken(ILCoder *
1081    
1082  static void CVMCoder_SizeOf(ILCoder *coder, ILType *type)  static void CVMCoder_SizeOf(ILCoder *coder, ILType *type)
1083  {  {
1084          ILUInt32 size = _ILSizeOfTypeLocked(type);          ILUInt32 size = _ILSizeOfTypeLocked(_ILCoderToILCVMCoder(coder)->process,
1085                                                                                    type);
1086          if(size <= 8)          if(size <= 8)
1087          {          {
1088                  CVM_OUT_NONE(COP_LDC_I4_0 + size);                  CVM_OUT_NONE(COP_LDC_I4_0 + size);

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26