[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