+#if defined(__native_client__)
+#define MONO_CONTEXT_GET_CURRENT(ctx) \
+ __asm__ __volatile__( \
+ "movq $0x0, %%nacl:0x00(%%r15, %0, 1)\n" \
+ "movq %%rbx, %%nacl:0x08(%%r15, %0, 1)\n" \
+ "movq %%rcx, %%nacl:0x10(%%r15, %0, 1)\n" \
+ "movq %%rdx, %%nacl:0x18(%%r15, %0, 1)\n" \
+ "movq %%rbp, %%nacl:0x20(%%r15, %0, 1)\n" \
+ "movq %%rsp, %%nacl:0x28(%%r15, %0, 1)\n" \
+ "movq %%rsi, %%nacl:0x30(%%r15, %0, 1)\n" \
+ "movq %%rdi, %%nacl:0x38(%%r15, %0, 1)\n" \
+ "movq %%r8, %%nacl:0x40(%%r15, %0, 1)\n" \
+ "movq %%r9, %%nacl:0x48(%%r15, %0, 1)\n" \
+ "movq %%r10, %%nacl:0x50(%%r15, %0, 1)\n" \
+ "movq %%r11, %%nacl:0x58(%%r15, %0, 1)\n" \
+ "movq %%r12, %%nacl:0x60(%%r15, %0, 1)\n" \
+ "movq %%r13, %%nacl:0x68(%%r15, %0, 1)\n" \
+ "movq %%r14, %%nacl:0x70(%%r15, %0, 1)\n" \
+ "movq %%r15, %%nacl:0x78(%%r15, %0, 1)\n" \
+ "leaq (%%rip), %%rdx\n" \
+ "movq %%rdx, %%nacl:0x80(%%r15, %0, 1)\n" \
+ : \
+ : "a" ((int64_t)&(ctx)) \
+ : "rdx", "memory")
+#else