projects
/
mono.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
616fab4
)
[jit] Don't emit a redundant move in lazy fetch trampolines on AMD64. (#5346)
author
vkargov
<kargov@gmail.com>
Fri, 18 Aug 2017 15:09:30 +0000
(08:09 -0700)
committer
Zoltan Varga
<vargaz@gmail.com>
Fri, 18 Aug 2017 15:09:30 +0000
(11:09 -0400)
mono/mini/tramp-amd64.c
patch
|
blob
|
history
diff --git
a/mono/mini/tramp-amd64.c
b/mono/mini/tramp-amd64.c
index 53e3bc2e834c53dd39f310e66e6f4da222d49f72..ea912ba6ce94a94a9c7e0735b15c05a0c24fa550 100644
(file)
--- 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);
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));
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));