Pārlūkot izejas kodu

2008-06-03 Zoltan Varga <[email protected]>

	* tramp-*.c (mono_arch_create_trampoline_code): Call the _force_ variant of
	interruption_checkpoint.

svn path=/trunk/mono/; revision=104765
Zoltan Varga 17 gadi atpakaļ
vecāks
revīzija
97c836c457

+ 4 - 0
mono/mini/ChangeLog

@@ -1,3 +1,7 @@
+2008-06-03  Zoltan Varga  <[email protected]>
+
+	* tramp-*.c (mono_arch_create_trampoline_code): Call the _force_ variant of
+	interruption_checkpoint.
 
 Tue Jun 3 13:07:03 CEST 2008 Paolo Molaro <[email protected]>
 

+ 4 - 1
mono/mini/tramp-amd64.c

@@ -398,8 +398,11 @@ mono_arch_create_trampoline_code (MonoTrampolineType tramp_type)
 
 	/* Check for thread interruption */
 	/* This is not perf critical code so no need to check the interrupt flag */
+	/* 
+	 * Have to call the _force_ variant, since there could be a protected wrapper on the top of the stack.
+	 */
 	amd64_mov_membase_reg (code, AMD64_RBP, res_offset, AMD64_RAX, 8);
-	amd64_mov_reg_imm (code, AMD64_RAX, (guint8*)mono_thread_interruption_checkpoint);
+	amd64_mov_reg_imm (code, AMD64_RAX, (guint8*)mono_thread_force_interruption_checkpoint);
 	amd64_call_reg (code, AMD64_RAX);
 	amd64_mov_reg_membase (code, AMD64_RAX, AMD64_RBP, res_offset, 8);	
 

+ 1 - 1
mono/mini/tramp-ia64.c

@@ -308,7 +308,7 @@ mono_arch_create_trampoline_code (MonoTrampolineType tramp_type)
 	/* This is not perf critical code so no need to check the interrupt flag */
 	ia64_mov (code, l2, IA64_R8);
 
-	tramp = (guint8*)mono_thread_interruption_checkpoint;
+	tramp = (guint8*)mono_thread_force_interruption_checkpoint;
 	ia64_movl (code, l0, tramp);
 	ia64_ld8_inc_imm (code, l1, l0, 8);
 	ia64_mov_to_br (code, IA64_B6, l1);

+ 1 - 1
mono/mini/tramp-sparc.c

@@ -181,7 +181,7 @@ mono_arch_create_trampoline_code (MonoTrampolineType tramp_type)
 	sparc_sti_imm (code, sparc_o0, sparc_sp, MONO_SPARC_STACK_BIAS + 304);
 
 	/* Check for thread interruption */
-	sparc_set (code, (guint8*)mono_thread_interruption_checkpoint, sparc_o7);
+	sparc_set (code, (guint8*)mono_thread_force_interruption_checkpoint, sparc_o7);
 	sparc_jmpl (code, sparc_o7, sparc_g0, sparc_o7);
 	sparc_nop (code);
 

+ 1 - 1
mono/mini/tramp-x86.c

@@ -337,7 +337,7 @@ mono_arch_create_trampoline_code (MonoTrampolineType tramp_type)
 	/* Check for thread interruption */
 	/* This is not perf critical code so no need to check the interrupt flag */
 	x86_push_reg (buf, X86_EAX);
-	x86_call_code (buf, (guint8*)mono_thread_interruption_checkpoint);
+	x86_call_code (buf, (guint8*)mono_thread_force_interruption_checkpoint);
 	x86_pop_reg (buf, X86_EAX);
 
 	/* Restore LMF */