[mono/mono] 45ce641f: [jit] Remove OP_JMP implementation from the x86 backend, its not used there.

"Zoltan Varga ([email protected])" <[email protected]> Sat, 2 Nov 2013 22:45:58 +0000
Newsgroups gmane.comp.gnome.mono.patches
Message-ID <000001421afe8a81-ae4fc054-16bf-4b27-91f2-f4c118fa8777-000000@email.amazonses.com>
   Branch: refs/heads/master
     Home: https://github.com/mono/mono
  Compare: https://github.com/mono/mono/compare/90e0dbcc1731...45ce641f284f

   Commit: 45ce641f284f860b7ee0ce0bc5df23f65905fb36
   Author: Zoltan Varga <[email protected]> (vargaz)
     Date: 2013-11-02 22:45:08 GMT
      URL: https://github.com/mono/mono/commit/45ce641f284f860b7ee0ce0bc5df23f65905fb36

[jit] Remove OP_JMP implementation from the x86 backend, its not used there.

Changed paths:
  M mono/mini/cpu-amd64.md
  M mono/mini/cpu-x86.md
  M mono/mini/mini-amd64.c
  M mono/mini/mini-x86.c

Modified: mono/mini/cpu-amd64.md
===================================================================
@@ -62,7 +62,6 @@
 #
 
 break: len:2
-jmp: len:120
 tailcall: len:120 clob:c
 br: len:6
 label: len:0

Modified: mono/mini/cpu-x86.md
===================================================================
@@ -63,7 +63,6 @@
 # See the code in mini-x86.c for more details on how the specifiers are used.
 #
 break: len:1
-jmp: len:32 clob:c
 call: dest:a clob:c len:17
 tailcall: len:120 clob:c
 br: len:5

Modified: mono/mini/mini-amd64.c
===================================================================
@@ -2447,7 +2447,7 @@
 	}
 
 #ifdef HOST_WIN32
-	if (call->inst.opcode != OP_JMP && OP_TAILCALL != call->inst.opcode) {
+	if (call->inst.opcode != OP_TAILCALL) {
 		MONO_EMIT_NEW_BIALU_IMM (cfg, OP_SUB_IMM, X86_ESP, X86_ESP, 0x20);
 	}
 #endif
@@ -7174,7 +7174,7 @@
 	if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
 		code = mono_arch_instrument_epilog (cfg, mono_trace_leave_method, code, TRUE);
 
-	/* the code restoring the registers must be kept in sync with OP_JMP */
+	/* the code restoring the registers must be kept in sync with OP_TAILCALL */
 	pos = 0;
 	
 	if (method->save_lmf) {

Modified: mono/mini/mini-x86.c
===================================================================
@@ -3119,48 +3119,6 @@ enum {
 		case OP_MOVE:
 			x86_mov_reg_reg (code, ins->dreg, ins->sreg1, 4);
 			break;
-		case OP_JMP: {
-			/*
-			 * Note: this 'frame destruction' logic is useful for tail calls, too.
-			 * Keep in sync with the code in emit_epilog.
-			 */
-			int pos = 0;
-
-			/* FIXME: no tracing support... */
-			if (cfg->prof_options & MONO_PROFILE_ENTER_LEAVE)
-				code = mono_arch_instrument_epilog (cfg, mono_profiler_method_leave, code, FALSE);
-			/* reset offset to make max_len work */
-			offset = code - cfg->native_code;
-
-			g_assert (!cfg->method->save_lmf);
-
-			code = emit_load_volatile_arguments (cfg, code);
-
-			if (cfg->used_int_regs & (1 << X86_EBX))
-				pos -= 4;
-			if (cfg->used_int_regs & (1 << X86_EDI))
-				pos -= 4;
-			if (cfg->used_int_regs & (1 << X86_ESI))
-				pos -= 4;
-			if (pos)
-				x86_lea_membase (code, X86_ESP, X86_EBP, pos);
-	
-			if (cfg->used_int_regs & (1 << X86_ESI))
-				x86_pop_reg (code, X86_ESI);
-			if (cfg->used_int_regs & (1 << X86_EDI))
-				x86_pop_reg (code, X86_EDI);
-			if (cfg->used_int_regs & (1 << X86_EBX))
-				x86_pop_reg (code, X86_EBX);
-	
-			/* restore ESP/EBP */
-			x86_leave (code);
-			offset = code - cfg->native_code;
-			mono_add_patch_info (cfg, offset, MONO_PATCH_INFO_METHOD_JUMP, ins->inst_p0);
-			x86_jump32 (code, 0);
-
-			cfg->disable_aot = TRUE;
-			break;
-		}
 		case OP_TAILCALL: {
 			MonoCallInst *call = (MonoCallInst*)ins;
 			int pos = 0, i;
@@ -5421,7 +5379,7 @@ enum {
 	if (mono_jit_trace_calls != NULL && mono_trace_eval (method))
 		code = mono_arch_instrument_epilog (cfg, mono_trace_leave_method, code, TRUE);
 
-	/* the code restoring the registers must be kept in sync with OP_JMP */
+	/* the code restoring the registers must be kept in sync with OP_TAILCALL */
 	pos = 0;
 	
 	if (method->save_lmf) {


_______________________________________________
Mono-patches maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-patches