+ " retl\n"
+);
+#elif PROCESSOR_x86_64
+__asm__ (
+#if defined(APPLE) || defined(_WIN32)
+ ".text\n"
+ ".globl _raw_makecontext\n"
+ "_raw_makecontext:\n"
+#else
+ ".text\n"
+ ".globl raw_makecontext\n"
+ ".type raw_makecontext,@function\n"
+ "raw_makecontext:\n"/* Calling convention sets the arguments in rdi, rsi, rdx and rcx, respectively */
+#endif
+ " movq %rdi,%rax\n" /* stack */
+ " addq %rsi,%rax\n" /* size */
+ " movq $0, -8(%rax)\n" /* @return for func */
+ " movq %rdx,-16(%rax)\n" /* func */
+ " movq %rcx,-24(%rax)\n" /* arg/rdi */
+ " movq $0, -32(%rax)\n" /* rsi */
+ " movq $0, -40(%rax)\n" /* rdx */
+ " movq $0, -48(%rax)\n" /* rcx */
+ " movq $0, -56(%rax)\n" /* r8 */
+ " movq $0, -64(%rax)\n" /* r9 */
+ " movq $0, -72(%rax)\n" /* rbp */
+ " movq $0, -80(%rax)\n" /* rbx */
+ " movq $0, -88(%rax)\n" /* r12 */
+ " movq $0, -96(%rax)\n" /* r13 */
+ " movq $0, -104(%rax)\n" /* r14 */
+ " movq $0, -112(%rax)\n" /* r15 */
+ " subq $112,%rax\n"
+ " retq\n"