+#ifdef __x86_64__
+ {
+ MonoMethodSignature *fsig = mono_method_signature (cmethod);
+ int i, n;
+
+ /* FIXME: Remove OP_JMP from mini-amd64.c when the old JIT is removed */
+
+ /* Handle tail calls similarly to calls */
+ n = fsig->param_count + fsig->hasthis;
+
+ MONO_INST_NEW_CALL (cfg, call, OP_TAILCALL);
+ call->method = cmethod;
+ call->tail_call = TRUE;
+ call->signature = mono_method_signature (cmethod);
+ call->args = mono_mempool_alloc (cfg->mempool, sizeof (MonoInst*) * n);
+ call->inst.inst_p0 = cmethod;
+ for (i = 0; i < n; ++i)
+ EMIT_NEW_ARGLOAD (cfg, call->args [i], i);
+
+ mono_arch_emit_call (cfg, call);
+ MONO_ADD_INS (bblock, (MonoInst*)call);
+ }
+#else
+ MONO_INST_NEW_CALL (cfg, call, OP_JMP);
+ ins = (MonoInst*)call;