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

Diff of /pnet/engine/cvm.c

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

revision 1.54 by ktreichel, Sun Oct 16 12:33:56 2005 UTC revision 1.55 by ktreichel, Tue Oct 18 19:00:57 2005 UTC
# Line 141  extern "C" { Line 141  extern "C" {
141          #define IL_MEMCMP(dst,src,len)                  (ILMemCmp((dst), (src), (len)))          #define IL_MEMCMP(dst,src,len)                  (ILMemCmp((dst), (src), (len)))
142  #endif  #endif
143    
144    /*
145     * Defining macros to declare variables in the interpreter loop volatile.
146     * This is done to fix problems with gcc's optimized code.
147     */
148    #ifdef __GNUC__
149    #if (__GNUC__ == 4) && defined(CVM_X86)
150    #define IL_PC_VOLATILE volatile
151    #define IL_STACKTOP_VOLATILE volatile
152    #define IL_FRAME_VOLATILE volatile
153    #define IL_STACKMAX_VOLATILE volatile
154    #define IL_METHOD_VOLATILE volatile
155    #define IL_METHODTOCALL_VOLATILE volatile
156    #define IL_CALLFRAME_VOLATILE volatile
157    #define IL_TEMPPTR_VOLATILE volatile
158    #endif
159    #if (__GNUC__ == 4) && defined(CVM_X86_64)
160    #define IL_PC_VOLATILE volatile
161    #define IL_STACKTOP_VOLATILE volatile
162    #define IL_FRAME_VOLATILE volatile
163    #define IL_STACKMAX_VOLATILE volatile
164    #define IL_METHOD_VOLATILE volatile
165    #define IL_METHODTOCALL_VOLATILE volatile
166    #define IL_CALLFRAME_VOLATILE volatile
167    #define IL_TEMPPTR_VOLATILE volatile
168    #endif
169    #endif
170    #ifndef IL_PC_VOLATILE
171    #define IL_PC_VOLATILE
172    #endif
173    #ifndef IL_STACKTOP_VOLATILE
174    #define IL_STACKTOP_VOLATILE
175    #endif
176    #ifndef IL_FRAME_VOLATILE
177    #define IL_FRAME_VOLATILE
178    #endif
179    #ifndef IL_STACKMAX_VOLATILE
180    #define IL_STACKMAX_VOLATILE
181    #endif
182    #ifndef IL_METHOD_VOLATILE
183    #define IL_METHOD_VOLATILE
184    #endif
185    #ifndef IL_METHODTOCALL_VOLATILE
186    #define IL_METHODTOCALL_VOLATILE
187    #endif
188    #ifndef IL_CALLFRAME_VOLATILE
189    #define IL_CALLFRAME_VOLATILE
190    #endif
191    #ifndef IL_TEMPPTR_VOLATILE
192    #define IL_TEMPPTR_VOLATILE
193    #endif
194    
195  #if defined(IL_USE_INTERRUPT_BASED_X)  #if defined(IL_USE_INTERRUPT_BASED_X)
196          #if defined(IL_INTERRUPT_HAVE_X86_CONTEXT) && defined(REGISTER_ASM_X86)          #if defined(IL_INTERRUPT_HAVE_X86_CONTEXT) && defined(REGISTER_ASM_X86)
197                  /* If the interrupt subsystem can provide us the x86 registers at the                  /* If the interrupt subsystem can provide us the x86 registers at the
# Line 518  CVM_DEFINE_TABLES(); Line 569  CVM_DEFINE_TABLES();
569    
570  int _ILCVMInterpreter(ILExecThread *thread)  int _ILCVMInterpreter(ILExecThread *thread)
571  {  {
572          REGISTER_ASM_PC(unsigned char *volatile pc);          REGISTER_ASM_PC(unsigned char *IL_PC_VOLATILE pc);
573          REGISTER_ASM_STACK(CVMWord *stacktop);          REGISTER_ASM_STACK(CVMWord *IL_STACKTOP_VOLATILE stacktop);
574          REGISTER_ASM_FRAME(CVMWord *frame);          REGISTER_ASM_FRAME(CVMWord *IL_FRAME_VOLATILE frame);
575          int divResult;          int divResult;
576          CVMWord  *volatile stackmax;          CVMWord  *IL_STACKMAX_VOLATILE stackmax;
577          ILMethod *volatile method;          ILMethod *IL_METHOD_VOLATILE method;
578          void *nativeArgs[CVM_MAX_NATIVE_ARGS + 1];          void *nativeArgs[CVM_MAX_NATIVE_ARGS + 1];
579    
580          /* Define local variables that are used by the instruction categories */          /* Define local variables that are used by the instruction categories */

Legend:
Removed from v.1.54  
changed lines
  Added in v.1.55

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