|
|
@@ -46,6 +46,65 @@
|
|
|
#define _ASM_SI __ASM_REG(si)
|
|
|
#define _ASM_DI __ASM_REG(di)
|
|
|
|
|
|
+#ifndef __x86_64__
|
|
|
+/* 32 bit */
|
|
|
+
|
|
|
+#define _ASM_ARG1 _ASM_AX
|
|
|
+#define _ASM_ARG2 _ASM_DX
|
|
|
+#define _ASM_ARG3 _ASM_CX
|
|
|
+
|
|
|
+#define _ASM_ARG1L eax
|
|
|
+#define _ASM_ARG2L edx
|
|
|
+#define _ASM_ARG3L ecx
|
|
|
+
|
|
|
+#define _ASM_ARG1W ax
|
|
|
+#define _ASM_ARG2W dx
|
|
|
+#define _ASM_ARG3W cx
|
|
|
+
|
|
|
+#define _ASM_ARG1B al
|
|
|
+#define _ASM_ARG2B dl
|
|
|
+#define _ASM_ARG3B cl
|
|
|
+
|
|
|
+#else
|
|
|
+/* 64 bit */
|
|
|
+
|
|
|
+#define _ASM_ARG1 _ASM_DI
|
|
|
+#define _ASM_ARG2 _ASM_SI
|
|
|
+#define _ASM_ARG3 _ASM_DX
|
|
|
+#define _ASM_ARG4 _ASM_CX
|
|
|
+#define _ASM_ARG5 r8
|
|
|
+#define _ASM_ARG6 r9
|
|
|
+
|
|
|
+#define _ASM_ARG1Q rdi
|
|
|
+#define _ASM_ARG2Q rsi
|
|
|
+#define _ASM_ARG3Q rdx
|
|
|
+#define _ASM_ARG4Q rcx
|
|
|
+#define _ASM_ARG5Q r8
|
|
|
+#define _ASM_ARG6Q r9
|
|
|
+
|
|
|
+#define _ASM_ARG1L edi
|
|
|
+#define _ASM_ARG2L esi
|
|
|
+#define _ASM_ARG3L edx
|
|
|
+#define _ASM_ARG4L ecx
|
|
|
+#define _ASM_ARG5L r8d
|
|
|
+#define _ASM_ARG6L r9d
|
|
|
+
|
|
|
+#define _ASM_ARG1W di
|
|
|
+#define _ASM_ARG2W si
|
|
|
+#define _ASM_ARG3W dx
|
|
|
+#define _ASM_ARG4W cx
|
|
|
+#define _ASM_ARG5W r8w
|
|
|
+#define _ASM_ARG6W r9w
|
|
|
+
|
|
|
+#define _ASM_ARG1B dil
|
|
|
+#define _ASM_ARG2B sil
|
|
|
+#define _ASM_ARG3B dl
|
|
|
+#define _ASM_ARG4B cl
|
|
|
+#define _ASM_ARG5B r8b
|
|
|
+#define _ASM_ARG6B r9b
|
|
|
+
|
|
|
+#endif
|
|
|
+
|
|
|
/*
|
|
|
* Macros to generate condition code outputs from inline assembly,
|
|
|
* The output operand must be type "bool".
|