- : "memory", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "rax" \
- );
-
-#define DTRACE_CALL8ARGS(provider, name) \
- asm volatile ("subq\t$0x10,%%rsp" "\n\t" \
- "movq\t0x0(%0),%%rdi" "\n\t" \
- "movq\t0x8(%0),%%rsi" "\n\t" \
- "movq\t0x10(%0),%%rdx" "\n\t" \
- "movq\t0x18(%0),%%rcx" "\n\t" \
- "movq\t0x20(%0),%%r8" "\n\t" \
- "movq\t0x28(%0),%%r9" "\n\t" \
- "movdqa\t0x30(%0),%%xmm1" "\n\t" \
- "movdqa\t%%xmm1,0x0(%%rsp)" "\n\t" \
- DTRACE_CALL(provider, name) \
- "addq\t$0x10,%%rsp" "\n\t" \
- : \
- : "r" (__dtrace_args) \
- : "memory", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "xmm1" \
- );
-
-#define DTRACE_CALL9ARGS(provider, name) \
- DTRACE_CALL10ARGS(provider, name)
-
-#define DTRACE_CALL10ARGS(provider, name) \
- asm volatile ("subq\t$0x20,%%rsp" "\n\t" \
- "movq\t0x0(%0),%%rdi" "\n\t" \
- "movq\t0x8(%0),%%rsi" "\n\t" \
- "movq\t0x10(%0),%%rdx" "\n\t" \
- "movq\t0x18(%0),%%rcx" "\n\t" \
- "movq\t0x20(%0),%%r8" "\n\t" \
- "movq\t0x28(%0),%%r9" "\n\t" \
- "movdqa\t0x30(%0),%%xmm1" "\n\t" \
- "movdqa\t0x40(%0),%%xmm2" "\n\t" \
- "movdqa\t%%xmm1,0x0(%%rsp)" "\n\t" \
- "movdqa\t%%xmm2,0x10(%%rsp)" "\n\t" \
- DTRACE_CALL(provider, name) \
- "addq\t$0x20,%%rsp" "\n\t" \
- : \
- : "r" (__dtrace_args) \
- : "memory", "rdi", "rsi", "rdx", "rcx", "r8", "r9", "xmm1", "xmm2" \