From 25436acaa90e6d4fa518a97bd52eac96f6381cd2 Mon Sep 17 00:00:00 2001 From: vkargov Date: Fri, 18 Aug 2017 08:09:30 -0700 Subject: [PATCH] [jit] Don't emit a redundant move in lazy fetch trampolines on AMD64. (#5346) --- mono/mini/tramp-amd64.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mono/mini/tramp-amd64.c b/mono/mini/tramp-amd64.c index 53e3bc2e834..ea912ba6ce9 100644 --- a/mono/mini/tramp-amd64.c +++ b/mono/mini/tramp-amd64.c @@ -705,8 +705,10 @@ mono_arch_create_rgctx_lazy_fetch_trampoline (guint32 slot, MonoTrampInfo **info g_free (rgctx_null_jumps); - /* move the rgctx pointer to the VTABLE register */ - amd64_mov_reg_reg (code, MONO_ARCH_VTABLE_REG, AMD64_ARG_REG1, sizeof(gpointer)); + if (MONO_ARCH_VTABLE_REG != AMD64_ARG_REG1) { + /* move the rgctx pointer to the VTABLE register */ + amd64_mov_reg_reg (code, MONO_ARCH_VTABLE_REG, AMD64_ARG_REG1, sizeof(gpointer)); + } if (aot) { code = mono_arch_emit_load_aotconst (buf, code, &ji, MONO_PATCH_INFO_JIT_ICALL_ADDR, g_strdup_printf ("specific_trampoline_lazy_fetch_%u", slot)); -- 2.25.1